| @ -0,0 +1,9 @@ | |||||
| # See https://git-scm.com/docs/gitattributes for more about git attribute files. | |||||
| # Mark the database schema as having been generated. | |||||
| db/schema.rb linguist-generated | |||||
| # Mark any vendored files as having been vendored. | |||||
| vendor/* linguist-vendored | |||||
| config/credentials/*.yml.enc diff=rails_credentials | |||||
| config/credentials.yml.enc diff=rails_credentials | |||||
| @ -0,0 +1,50 @@ | |||||
| # See https://help.github.com/articles/ignoring-files for more about ignoring files. | |||||
| # | |||||
| # If you find yourself ignoring temporary files generated by your text editor | |||||
| # or operating system, you probably want to add a global ignore instead: | |||||
| # git config --global core.excludesfile '~/.gitignore_global' | |||||
| # Ignore bundler config. | |||||
| /.bundle | |||||
| # Ignore all environment files (except templates). | |||||
| /.env* | |||||
| !/.env*.erb | |||||
| # Ignore all logfiles and tempfiles. | |||||
| /log/* | |||||
| /tmp/* | |||||
| !/log/.keep | |||||
| !/tmp/.keep | |||||
| # Ignore pidfiles, but keep the directory. | |||||
| /tmp/pids/* | |||||
| !/tmp/pids/ | |||||
| !/tmp/pids/.keep | |||||
| # Ignore storage (uploaded files in development and any SQLite databases). | |||||
| /storage/* | |||||
| !/storage/.keep | |||||
| /tmp/storage/* | |||||
| !/tmp/storage/ | |||||
| !/tmp/storage/.keep | |||||
| /public/assets | |||||
| # Ignore master key for decrypting credentials and more. | |||||
| /config/master.key | |||||
| /config/credentials.yml.enc | |||||
| /config/database.yml | |||||
| /config/ssl | |||||
| /Procfile.dev | |||||
| /vendor/* | |||||
| !/vendor/.keep | |||||
| !/vendor/javascript | |||||
| /node_modules | |||||
| /data.ms | |||||
| /dump.rdb | |||||
| /.ruby-lsp | |||||
| @ -0,0 +1 @@ | |||||
| ruby-3.3.0 | |||||
| @ -0,0 +1,64 @@ | |||||
| source "https://rubygems.org" | |||||
| ruby "3.3.0" | |||||
| # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" | |||||
| gem "rails", "~> 7.1.3", ">= 7.1.3.2" | |||||
| # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] | |||||
| gem "sprockets-rails" | |||||
| # Use postgresql as the database for Active Record | |||||
| gem "pg", "~> 1.1" | |||||
| # Use the Puma web server [https://github.com/puma/puma] | |||||
| gem "puma", ">= 5.0" | |||||
| # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails] | |||||
| gem "importmap-rails" | |||||
| # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev] | |||||
| gem "turbo-rails" | |||||
| # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev] | |||||
| gem "stimulus-rails" | |||||
| # Build JSON APIs with ease [https://github.com/rails/jbuilder] | |||||
| gem "jbuilder" | |||||
| # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis] | |||||
| # gem "kredis" | |||||
| # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword] | |||||
| # gem "bcrypt", "~> 3.1.7" | |||||
| # Windows does not include zoneinfo files, so bundle the tzinfo-data gem | |||||
| gem "tzinfo-data", platforms: %i[ windows jruby ] | |||||
| # Reduces boot times through caching; required in config/boot.rb | |||||
| gem "bootsnap", require: false | |||||
| # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] | |||||
| # gem "image_processing", "~> 1.2" | |||||
| group :development, :test do | |||||
| # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem | |||||
| gem "debug", platforms: %i[ mri windows ] | |||||
| end | |||||
| group :development do | |||||
| # Use console on exceptions pages [https://github.com/rails/web-console] | |||||
| gem "web-console" | |||||
| # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler] | |||||
| # gem "rack-mini-profiler" | |||||
| # Speed up commands on slow machines / big apps [https://github.com/rails/spring] | |||||
| # gem "spring" | |||||
| end | |||||
| group :test do | |||||
| # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] | |||||
| gem "capybara" | |||||
| gem "selenium-webdriver" | |||||
| end | |||||
| @ -0,0 +1,272 @@ | |||||
| GEM | |||||
| remote: https://rubygems.org/ | |||||
| specs: | |||||
| actioncable (7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| nio4r (~> 2.0) | |||||
| websocket-driver (>= 0.6.1) | |||||
| zeitwerk (~> 2.6) | |||||
| actionmailbox (7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| activejob (= 7.1.3.2) | |||||
| activerecord (= 7.1.3.2) | |||||
| activestorage (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| mail (>= 2.7.1) | |||||
| net-imap | |||||
| net-pop | |||||
| net-smtp | |||||
| actionmailer (7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| actionview (= 7.1.3.2) | |||||
| activejob (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| mail (~> 2.5, >= 2.5.4) | |||||
| net-imap | |||||
| net-pop | |||||
| net-smtp | |||||
| rails-dom-testing (~> 2.2) | |||||
| actionpack (7.1.3.2) | |||||
| actionview (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| nokogiri (>= 1.8.5) | |||||
| racc | |||||
| rack (>= 2.2.4) | |||||
| rack-session (>= 1.0.1) | |||||
| rack-test (>= 0.6.3) | |||||
| rails-dom-testing (~> 2.2) | |||||
| rails-html-sanitizer (~> 1.6) | |||||
| actiontext (7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| activerecord (= 7.1.3.2) | |||||
| activestorage (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| globalid (>= 0.6.0) | |||||
| nokogiri (>= 1.8.5) | |||||
| actionview (7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| builder (~> 3.1) | |||||
| erubi (~> 1.11) | |||||
| rails-dom-testing (~> 2.2) | |||||
| rails-html-sanitizer (~> 1.6) | |||||
| activejob (7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| globalid (>= 0.3.6) | |||||
| activemodel (7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| activerecord (7.1.3.2) | |||||
| activemodel (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| timeout (>= 0.4.0) | |||||
| activestorage (7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| activejob (= 7.1.3.2) | |||||
| activerecord (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| marcel (~> 1.0) | |||||
| activesupport (7.1.3.2) | |||||
| base64 | |||||
| bigdecimal | |||||
| concurrent-ruby (~> 1.0, >= 1.0.2) | |||||
| connection_pool (>= 2.2.5) | |||||
| drb | |||||
| i18n (>= 1.6, < 2) | |||||
| minitest (>= 5.1) | |||||
| mutex_m | |||||
| tzinfo (~> 2.0) | |||||
| addressable (2.8.6) | |||||
| public_suffix (>= 2.0.2, < 6.0) | |||||
| base64 (0.2.0) | |||||
| bigdecimal (3.1.7) | |||||
| bindex (0.8.1) | |||||
| bootsnap (1.18.3) | |||||
| msgpack (~> 1.2) | |||||
| builder (3.2.4) | |||||
| capybara (3.40.0) | |||||
| addressable | |||||
| matrix | |||||
| mini_mime (>= 0.1.3) | |||||
| nokogiri (~> 1.11) | |||||
| rack (>= 1.6.0) | |||||
| rack-test (>= 0.6.3) | |||||
| regexp_parser (>= 1.5, < 3.0) | |||||
| xpath (~> 3.2) | |||||
| concurrent-ruby (1.2.3) | |||||
| connection_pool (2.4.1) | |||||
| crass (1.0.6) | |||||
| date (3.3.4) | |||||
| debug (1.9.2) | |||||
| irb (~> 1.10) | |||||
| reline (>= 0.3.8) | |||||
| drb (2.2.1) | |||||
| erubi (1.12.0) | |||||
| globalid (1.2.1) | |||||
| activesupport (>= 6.1) | |||||
| i18n (1.14.4) | |||||
| concurrent-ruby (~> 1.0) | |||||
| importmap-rails (2.0.1) | |||||
| actionpack (>= 6.0.0) | |||||
| activesupport (>= 6.0.0) | |||||
| railties (>= 6.0.0) | |||||
| io-console (0.7.2) | |||||
| irb (1.12.0) | |||||
| rdoc | |||||
| reline (>= 0.4.2) | |||||
| jbuilder (2.11.5) | |||||
| actionview (>= 5.0.0) | |||||
| activesupport (>= 5.0.0) | |||||
| loofah (2.22.0) | |||||
| crass (~> 1.0.2) | |||||
| nokogiri (>= 1.12.0) | |||||
| mail (2.8.1) | |||||
| mini_mime (>= 0.1.1) | |||||
| net-imap | |||||
| net-pop | |||||
| net-smtp | |||||
| marcel (1.0.4) | |||||
| matrix (0.4.2) | |||||
| mini_mime (1.1.5) | |||||
| minitest (5.22.3) | |||||
| msgpack (1.7.2) | |||||
| mutex_m (0.2.0) | |||||
| net-imap (0.4.10) | |||||
| date | |||||
| net-protocol | |||||
| net-pop (0.1.2) | |||||
| net-protocol | |||||
| net-protocol (0.2.2) | |||||
| timeout | |||||
| net-smtp (0.5.0) | |||||
| net-protocol | |||||
| nio4r (2.7.1) | |||||
| nokogiri (1.16.4-aarch64-linux) | |||||
| racc (~> 1.4) | |||||
| nokogiri (1.16.4-arm-linux) | |||||
| racc (~> 1.4) | |||||
| nokogiri (1.16.4-arm64-darwin) | |||||
| racc (~> 1.4) | |||||
| nokogiri (1.16.4-x86-linux) | |||||
| racc (~> 1.4) | |||||
| nokogiri (1.16.4-x86_64-darwin) | |||||
| racc (~> 1.4) | |||||
| nokogiri (1.16.4-x86_64-linux) | |||||
| racc (~> 1.4) | |||||
| pg (1.5.6) | |||||
| psych (5.1.2) | |||||
| stringio | |||||
| public_suffix (5.0.5) | |||||
| puma (6.4.2) | |||||
| nio4r (~> 2.0) | |||||
| racc (1.7.3) | |||||
| rack (3.0.10) | |||||
| rack-session (2.0.0) | |||||
| rack (>= 3.0.0) | |||||
| rack-test (2.1.0) | |||||
| rack (>= 1.3) | |||||
| rackup (2.1.0) | |||||
| rack (>= 3) | |||||
| webrick (~> 1.8) | |||||
| rails (7.1.3.2) | |||||
| actioncable (= 7.1.3.2) | |||||
| actionmailbox (= 7.1.3.2) | |||||
| actionmailer (= 7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| actiontext (= 7.1.3.2) | |||||
| actionview (= 7.1.3.2) | |||||
| activejob (= 7.1.3.2) | |||||
| activemodel (= 7.1.3.2) | |||||
| activerecord (= 7.1.3.2) | |||||
| activestorage (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| bundler (>= 1.15.0) | |||||
| railties (= 7.1.3.2) | |||||
| rails-dom-testing (2.2.0) | |||||
| activesupport (>= 5.0.0) | |||||
| minitest | |||||
| nokogiri (>= 1.6) | |||||
| rails-html-sanitizer (1.6.0) | |||||
| loofah (~> 2.21) | |||||
| nokogiri (~> 1.14) | |||||
| railties (7.1.3.2) | |||||
| actionpack (= 7.1.3.2) | |||||
| activesupport (= 7.1.3.2) | |||||
| irb | |||||
| rackup (>= 1.0.0) | |||||
| rake (>= 12.2) | |||||
| thor (~> 1.0, >= 1.2.2) | |||||
| zeitwerk (~> 2.6) | |||||
| rake (13.2.1) | |||||
| rdoc (6.6.3.1) | |||||
| psych (>= 4.0.0) | |||||
| regexp_parser (2.9.0) | |||||
| reline (0.5.2) | |||||
| io-console (~> 0.5) | |||||
| rexml (3.2.6) | |||||
| rubyzip (2.3.2) | |||||
| selenium-webdriver (4.19.0) | |||||
| base64 (~> 0.2) | |||||
| rexml (~> 3.2, >= 3.2.5) | |||||
| rubyzip (>= 1.2.2, < 3.0) | |||||
| websocket (~> 1.0) | |||||
| sprockets (4.2.1) | |||||
| concurrent-ruby (~> 1.0) | |||||
| rack (>= 2.2.4, < 4) | |||||
| sprockets-rails (3.4.2) | |||||
| actionpack (>= 5.2) | |||||
| activesupport (>= 5.2) | |||||
| sprockets (>= 3.0.0) | |||||
| stimulus-rails (1.3.3) | |||||
| railties (>= 6.0.0) | |||||
| stringio (3.1.0) | |||||
| thor (1.3.1) | |||||
| timeout (0.4.1) | |||||
| turbo-rails (2.0.5) | |||||
| actionpack (>= 6.0.0) | |||||
| activejob (>= 6.0.0) | |||||
| railties (>= 6.0.0) | |||||
| tzinfo (2.0.6) | |||||
| concurrent-ruby (~> 1.0) | |||||
| web-console (4.2.1) | |||||
| actionview (>= 6.0.0) | |||||
| activemodel (>= 6.0.0) | |||||
| bindex (>= 0.4.0) | |||||
| railties (>= 6.0.0) | |||||
| webrick (1.8.1) | |||||
| websocket (1.2.10) | |||||
| websocket-driver (0.7.6) | |||||
| websocket-extensions (>= 0.1.0) | |||||
| websocket-extensions (0.1.5) | |||||
| xpath (3.2.0) | |||||
| nokogiri (~> 1.8) | |||||
| zeitwerk (2.6.13) | |||||
| PLATFORMS | |||||
| aarch64-linux | |||||
| arm-linux | |||||
| arm64-darwin | |||||
| x86-linux | |||||
| x86_64-darwin | |||||
| x86_64-linux | |||||
| DEPENDENCIES | |||||
| bootsnap | |||||
| capybara | |||||
| debug | |||||
| importmap-rails | |||||
| jbuilder | |||||
| pg (~> 1.1) | |||||
| puma (>= 5.0) | |||||
| rails (~> 7.1.3, >= 7.1.3.2) | |||||
| selenium-webdriver | |||||
| sprockets-rails | |||||
| stimulus-rails | |||||
| turbo-rails | |||||
| tzinfo-data | |||||
| web-console | |||||
| RUBY VERSION | |||||
| ruby 3.3.0p0 | |||||
| BUNDLED WITH | |||||
| 2.5.9 | |||||
| @ -0,0 +1,37 @@ | |||||
| Development | |||||
| -------------------- | |||||
| Local | |||||
| dropdb -U mattias ikea_foundtation_week_2024 | |||||
| createdb ikea_foundtation_week_2024 | |||||
| pg_restore -Fc --create --dbname=ikea_foundtation_week_2024 --username=mattias db20150901.bak | |||||
| DB | |||||
| ------------------- | |||||
| sudo -u postgres createuser --interactive ikea_foundation | |||||
| sudo -u postgres createdb -O ikea_foundation ikea_foundtation_week_2024 | |||||
| dropdb -U ikea_foundation ikea_foundtation_week_2024 | |||||
| RAILS_ENV=production rails db:migrate | |||||
| rake db:create:all | |||||
| CREATE EXTENSION hstore; | |||||
| sudo -u postgres psql -d ikea_foundtation_week_2024 | |||||
| pg_dump -U ikea_foundation -Fc ikea_foundtation_week_2024 > db20140909.bak | |||||
| sudo -i -u postgres | |||||
| psql | |||||
| Dump DEV | |||||
| ------------------- | |||||
| pg_dump -U mattias -Fc ikea_foundtation_week_2024 > db20140909.bak | |||||
| pg_dump -U mattias ikea_foundtation_week_2024 > db20140909.sql | |||||
| pg_restore -Fc --dbname=ikea_foundtation_week_2024 --username=ikea_foundation dumps/db20230209.bak | |||||
| pg_restore -Fc --create --dbname=ikea_foundtation_week_2024 --username=ikea_foundation db20150901.bak | |||||
| @ -0,0 +1,191 @@ | |||||
| Assets | |||||
| ------------------- | |||||
| RAILS_ENV=production bundle exec rake assets:precompile | |||||
| RAILS_ENV=production bundle exec rake assets:clean | |||||
| git clone https://mattias:zibxa7-qozsej-qoksaM@git.oncotype.dk/hirschsprung/hirschsprung.dk.2024.git | |||||
| rails new --skip-docker --skip-action-mailbox --skip-action-text --skip-action-cable --database=postgresql hirschsprung.dk.2024 | |||||
| Credentials | |||||
| ------------------- | |||||
| EDITOR=vi rails credentials:edit | |||||
| Gem | |||||
| ------------------- | |||||
| bundle config set --local without 'development test' | |||||
| https://www.youtube.com/playlist?list=PL3mtAHT_eRex1sJI2uoTBgFT3qAXFbEcy | |||||
| https://www.youtube.com/watch?v=X7H1N6pMYzg&list=PL3mtAHT_eRex1sJI2uoTBgFT3qAXFbEcy&index=6 | |||||
| Captcha | |||||
| ------------------- | |||||
| https://blog.cloudflare.com/turnstile-ga | |||||
| Utils | |||||
| ------------------------------- | |||||
| RAILS_ENV=production bundle exec rake utils:delete_old_verification_codes | |||||
| # Delete old verification codes | |||||
| 10 3 * * * cd /home/hirschsprung/hirschsprung.dk && RAILS_ENV=production /home/hirschsprung/.rbenv/shims/bundle exec rake utils:delete_old_verification_codes | |||||
| Mailer | |||||
| ------------------------------- | |||||
| http://localhost:3000/rails/mailers/user_mailer/verify_email.html | |||||
| curl -L -X GET 'https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJh3wvJx1TUkYRsBM5GKdGnxs&fields=opening_hours&key=AIzaSyD6ERQbg8j--n4RV8QiaRLqR792m9LRSrk' | |||||
| curl -L -X GET 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Hirschsprung+Collection&inputtype=textquery&fields=formatted_address%2Cname%2Ccurrent_opening_hours%2Cplace_id%2Cgeometry&key=AIzaSyD6ERQbg8j--n4RV8QiaRLqR792m9LRSrk' | |||||
| curl -L -X GET 'https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJh3wvJx1TUkYRsBM5GKdGnxs&fields=name%2Cbusiness_status%2Copening_hours/open_now&key=AIzaSyD6ERQbg8j--n4RV8QiaRLqR792m9LRSrk' | |||||
| CLOSED_TEMPORARILY | |||||
| Louisianna | |||||
| Louisiana Museum of Modern Art | |||||
| ChIJq5pUwwc3UkYRTpARr0S5L2o | |||||
| curl -L -X GET 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Louisiana+Museum+of+Modern+Art&inputtype=textquery&fields=formatted_address%2Cname%2Ccurrent_opening_hours%2Cplace_id%2Cgeometry&key=AIzaSyD6ERQbg8j--n4RV8QiaRLqR792m9LRSrk' | |||||
| curl -L -X GET 'https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJq5pUwwc3UkYRTpARr0S5L2o&fields=name%2Cbusiness_status%2Copening_hours/open_now&key=AIzaSyD6ERQbg8j--n4RV8QiaRLqR792m9LRSrk' | |||||
| /home/hs/hirschsprung.dk.2024/log/*.log { | |||||
| weekly | |||||
| missingok | |||||
| rotate 4 | |||||
| compress | |||||
| delaycompress | |||||
| notifempty | |||||
| copytruncate | |||||
| } | |||||
| { | |||||
| "html_attributions" : [], | |||||
| "result" : | |||||
| { | |||||
| "business_status" : "OPERATIONAL", | |||||
| "name" : "Louisiana Museum of Modern Art", | |||||
| "opening_hours" : | |||||
| { | |||||
| "open_now" : false, | |||||
| "periods" : | |||||
| [ | |||||
| { | |||||
| "close" : | |||||
| { | |||||
| "day" : 0, | |||||
| "time" : "1800" | |||||
| }, | |||||
| "open" : | |||||
| { | |||||
| "day" : 0, | |||||
| "time" : "1100" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "close" : | |||||
| { | |||||
| "day" : 2, | |||||
| "time" : "2200" | |||||
| }, | |||||
| "open" : | |||||
| { | |||||
| "day" : 2, | |||||
| "time" : "1100" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "close" : | |||||
| { | |||||
| "day" : 3, | |||||
| "time" : "2200" | |||||
| }, | |||||
| "open" : | |||||
| { | |||||
| "day" : 3, | |||||
| "time" : "1100" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "close" : | |||||
| { | |||||
| "day" : 4, | |||||
| "time" : "2200" | |||||
| }, | |||||
| "open" : | |||||
| { | |||||
| "day" : 4, | |||||
| "time" : "1100" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "close" : | |||||
| { | |||||
| "day" : 5, | |||||
| "time" : "2200" | |||||
| }, | |||||
| "open" : | |||||
| { | |||||
| "day" : 5, | |||||
| "time" : "1100" | |||||
| } | |||||
| }, | |||||
| { | |||||
| "close" : | |||||
| { | |||||
| "day" : 6, | |||||
| "time" : "1800" | |||||
| }, | |||||
| "open" : | |||||
| { | |||||
| "day" : 6, | |||||
| "time" : "1100" | |||||
| } | |||||
| } | |||||
| ], | |||||
| "weekday_text" : | |||||
| [ | |||||
| "Monday: Closed", | |||||
| "Tuesday: 11:00 AM – 10:00 PM", | |||||
| "Wednesday: 11:00 AM – 10:00 PM", | |||||
| "Thursday: 11:00 AM – 10:00 PM", | |||||
| "Friday: 11:00 AM – 10:00 PM", | |||||
| "Saturday: 11:00 AM – 6:00 PM", | |||||
| "Sunday: 11:00 AM – 6:00 PM" | |||||
| ] | |||||
| } | |||||
| }, | |||||
| "status" : "OK" | |||||
| }% | |||||
| #curl -L -X GET 'https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJq5pUwwc3UkYRTpARr0S5L2o& | |||||
| #fields=name%2Cbusiness_status%2Copening_hours/open_now&key=AIzaSyD6ERQbg8j--n4RV8QiaRLqR792m9LRSrk' | |||||
| {"html_attributions"=>[], | |||||
| "result"=> | |||||
| {"business_status"=>"OPERATIONAL", | |||||
| "name"=>"Hirschsprung Collection", | |||||
| "opening_hours"=> | |||||
| {"open_now"=>true, | |||||
| "periods"=> | |||||
| [{"close"=>{"day"=>0, "time"=>"1700"}, "open"=>{"day"=>0, "time"=>"1000"}}, | |||||
| {"close"=>{"day"=>3, "time"=>"1700"}, "open"=>{"day"=>3, "time"=>"1000"}}, | |||||
| {"close"=>{"day"=>4, "time"=>"1700"}, "open"=>{"day"=>4, "time"=>"1000"}}, | |||||
| {"close"=>{"day"=>5, "time"=>"1700"}, "open"=>{"day"=>5, "time"=>"1000"}}, | |||||
| {"close"=>{"day"=>6, "time"=>"1700"}, "open"=>{"day"=>6, "time"=>"1000"}}], | |||||
| "weekday_text"=> | |||||
| ["Monday: Closed", | |||||
| "Tuesday: Closed", | |||||
| "Wednesday: 10:00 AM – 5:00 PM", | |||||
| "Thursday: 10:00 AM – 5:00 PM", | |||||
| "Friday: 10:00 AM – 5:00 PM", | |||||
| "Saturday: 10:00 AM – 5:00 PM", | |||||
| "Sunday: 10:00 AM – 5:00 PM"]}}, | |||||
| "status"=>"OK"} | |||||
| @ -0,0 +1,6 @@ | |||||
| # Add your own tasks in files placed in lib/tasks ending in .rake, | |||||
| # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | |||||
| require_relative "config/application" | |||||
| Rails.application.load_tasks | |||||
| @ -0,0 +1,4 @@ | |||||
| //= link_tree ../images | |||||
| //= link_directory ../stylesheets .css | |||||
| //= link_tree ../../javascript .js | |||||
| //= link_tree ../../../vendor/javascript .js | |||||
| @ -0,0 +1,15 @@ | |||||
| /* | |||||
| * This is a manifest file that'll be compiled into application.css, which will include all the files | |||||
| * listed below. | |||||
| * | |||||
| * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's | |||||
| * vendor/assets/stylesheets directory 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 other CSS | |||||
| * files in this directory. Styles in this file should be added after the last require_* statement. | |||||
| * It is generally better to create a new file per style scope. | |||||
| * | |||||
| *= require_tree . | |||||
| *= require_self | |||||
| */ | |||||
| @ -0,0 +1,2 @@ | |||||
| class ApplicationController < ActionController::Base | |||||
| end | |||||
| @ -0,0 +1,2 @@ | |||||
| module ApplicationHelper | |||||
| end | |||||
| @ -0,0 +1,3 @@ | |||||
| // Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails | |||||
| import "@hotwired/turbo-rails" | |||||
| import "controllers" | |||||
| @ -0,0 +1,9 @@ | |||||
| import { Application } from "@hotwired/stimulus" | |||||
| const application = Application.start() | |||||
| // Configure Stimulus development experience | |||||
| application.debug = false | |||||
| window.Stimulus = application | |||||
| export { application } | |||||
| @ -0,0 +1,7 @@ | |||||
| import { Controller } from "@hotwired/stimulus" | |||||
| export default class extends Controller { | |||||
| connect() { | |||||
| this.element.textContent = "Hello World!" | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,11 @@ | |||||
| // Import and register all your controllers from the importmap under controllers/* | |||||
| import { application } from "controllers/application" | |||||
| // Eager load all controllers defined in the import map under controllers/**/*_controller | |||||
| import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading" | |||||
| eagerLoadControllersFrom("controllers", application) | |||||
| // Lazy load controllers as they appear in the DOM (remember not to preload controllers in import map!) | |||||
| // import { lazyLoadControllersFrom } from "@hotwired/stimulus-loading" | |||||
| // lazyLoadControllersFrom("controllers", application) | |||||
| @ -0,0 +1,7 @@ | |||||
| class ApplicationJob < ActiveJob::Base | |||||
| # Automatically retry jobs that encountered a deadlock | |||||
| # retry_on ActiveRecord::Deadlocked | |||||
| # Most jobs are safe to ignore if the underlying records are no longer available | |||||
| # discard_on ActiveJob::DeserializationError | |||||
| end | |||||
| @ -0,0 +1,4 @@ | |||||
| class ApplicationMailer < ActionMailer::Base | |||||
| default from: "from@example.com" | |||||
| layout "mailer" | |||||
| end | |||||
| @ -0,0 +1,3 @@ | |||||
| class ApplicationRecord < ActiveRecord::Base | |||||
| primary_abstract_class | |||||
| end | |||||
| @ -0,0 +1,16 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <title>Week2024</title> | |||||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |||||
| <%= csrf_meta_tags %> | |||||
| <%= csp_meta_tag %> | |||||
| <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %> | |||||
| <%= javascript_importmap_tags %> | |||||
| </head> | |||||
| <body> | |||||
| <%= yield %> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,13 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |||||
| <style> | |||||
| /* Email styles need to be inline */ | |||||
| </style> | |||||
| </head> | |||||
| <body> | |||||
| <%= yield %> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1 @@ | |||||
| <%= yield %> | |||||
| @ -0,0 +1,109 @@ | |||||
| #!/usr/bin/env ruby | |||||
| # frozen_string_literal: true | |||||
| # | |||||
| # This file was generated by Bundler. | |||||
| # | |||||
| # The application 'bundle' is installed as part of a gem, and | |||||
| # this file is here to facilitate running it. | |||||
| # | |||||
| require "rubygems" | |||||
| m = Module.new do | |||||
| module_function | |||||
| def invoked_as_script? | |||||
| File.expand_path($0) == File.expand_path(__FILE__) | |||||
| end | |||||
| def env_var_version | |||||
| ENV["BUNDLER_VERSION"] | |||||
| end | |||||
| def cli_arg_version | |||||
| return unless invoked_as_script? # don't want to hijack other binstubs | |||||
| return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update` | |||||
| bundler_version = nil | |||||
| update_index = nil | |||||
| ARGV.each_with_index do |a, i| | |||||
| if update_index && update_index.succ == i && a.match?(Gem::Version::ANCHORED_VERSION_PATTERN) | |||||
| bundler_version = a | |||||
| end | |||||
| next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/ | |||||
| bundler_version = $1 | |||||
| update_index = i | |||||
| end | |||||
| bundler_version | |||||
| end | |||||
| def gemfile | |||||
| gemfile = ENV["BUNDLE_GEMFILE"] | |||||
| return gemfile if gemfile && !gemfile.empty? | |||||
| File.expand_path("../Gemfile", __dir__) | |||||
| end | |||||
| def lockfile | |||||
| lockfile = | |||||
| case File.basename(gemfile) | |||||
| when "gems.rb" then gemfile.sub(/\.rb$/, ".locked") | |||||
| else "#{gemfile}.lock" | |||||
| end | |||||
| File.expand_path(lockfile) | |||||
| end | |||||
| def lockfile_version | |||||
| return unless File.file?(lockfile) | |||||
| lockfile_contents = File.read(lockfile) | |||||
| return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/ | |||||
| Regexp.last_match(1) | |||||
| end | |||||
| def bundler_requirement | |||||
| @bundler_requirement ||= | |||||
| env_var_version || | |||||
| cli_arg_version || | |||||
| bundler_requirement_for(lockfile_version) | |||||
| end | |||||
| def bundler_requirement_for(version) | |||||
| return "#{Gem::Requirement.default}.a" unless version | |||||
| bundler_gem_version = Gem::Version.new(version) | |||||
| bundler_gem_version.approximate_recommendation | |||||
| end | |||||
| def load_bundler! | |||||
| ENV["BUNDLE_GEMFILE"] ||= gemfile | |||||
| activate_bundler | |||||
| end | |||||
| def activate_bundler | |||||
| gem_error = activation_error_handling do | |||||
| gem "bundler", bundler_requirement | |||||
| end | |||||
| return if gem_error.nil? | |||||
| require_error = activation_error_handling do | |||||
| require "bundler/version" | |||||
| end | |||||
| return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION)) | |||||
| warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`" | |||||
| exit 42 | |||||
| end | |||||
| def activation_error_handling | |||||
| yield | |||||
| nil | |||||
| rescue StandardError, LoadError => e | |||||
| e | |||||
| end | |||||
| end | |||||
| m.load_bundler! | |||||
| if m.invoked_as_script? | |||||
| load Gem.bin_path("bundler", "bundle") | |||||
| end | |||||
| @ -0,0 +1,4 @@ | |||||
| #!/usr/bin/env ruby | |||||
| require_relative "../config/application" | |||||
| require "importmap/commands" | |||||
| @ -0,0 +1,4 @@ | |||||
| #!/usr/bin/env ruby | |||||
| APP_PATH = File.expand_path("../config/application", __dir__) | |||||
| require_relative "../config/boot" | |||||
| require "rails/commands" | |||||
| @ -0,0 +1,4 @@ | |||||
| #!/usr/bin/env ruby | |||||
| require_relative "../config/boot" | |||||
| require "rake" | |||||
| Rake.application.run | |||||
| @ -0,0 +1,33 @@ | |||||
| #!/usr/bin/env ruby | |||||
| require "fileutils" | |||||
| # path to your application root. | |||||
| APP_ROOT = File.expand_path("..", __dir__) | |||||
| def system!(*args) | |||||
| system(*args, exception: true) | |||||
| end | |||||
| FileUtils.chdir APP_ROOT do | |||||
| # This script is a way to set up or update your development environment automatically. | |||||
| # This script is idempotent, so that you can run it at any time and get an expectable outcome. | |||||
| # Add necessary setup steps to this file. | |||||
| puts "== Installing dependencies ==" | |||||
| system! "gem install bundler --conservative" | |||||
| system("bundle check") || system!("bundle install") | |||||
| # puts "\n== Copying sample files ==" | |||||
| # unless File.exist?("config/database.yml") | |||||
| # FileUtils.cp "config/database.yml.sample", "config/database.yml" | |||||
| # end | |||||
| puts "\n== Preparing database ==" | |||||
| system! "bin/rails db:prepare" | |||||
| puts "\n== Removing old logs and tempfiles ==" | |||||
| system! "bin/rails log:clear tmp:clear" | |||||
| puts "\n== Restarting application server ==" | |||||
| system! "bin/rails restart" | |||||
| end | |||||
| @ -0,0 +1,6 @@ | |||||
| # This file is used by Rack-based servers to start the application. | |||||
| require_relative "config/environment" | |||||
| run Rails.application | |||||
| Rails.application.load_server | |||||
| @ -0,0 +1,48 @@ | |||||
| require_relative "boot" | |||||
| require "rails" | |||||
| # Pick the frameworks you want: | |||||
| require "active_model/railtie" | |||||
| require "active_job/railtie" | |||||
| require "active_record/railtie" | |||||
| require "active_storage/engine" | |||||
| require "action_controller/railtie" | |||||
| require "action_mailer/railtie" | |||||
| # require "action_mailbox/engine" | |||||
| # require "action_text/engine" | |||||
| require "action_view/railtie" | |||||
| # require "action_cable/engine" | |||||
| require "rails/test_unit/railtie" | |||||
| # Require the gems listed in Gemfile, including any gems | |||||
| # you've limited to :test, :development, or :production. | |||||
| Bundler.require(*Rails.groups) | |||||
| module Week2024 | |||||
| class Application < Rails::Application | |||||
| # Initialize configuration defaults for originally generated Rails version. | |||||
| config.load_defaults 7.1 | |||||
| # Please, add to the `ignore` list any other `lib` subdirectories that do | |||||
| # not contain `.rb` files, or that should not be reloaded or eager loaded. | |||||
| # Common ones are `templates`, `generators`, or `middleware`, for example. | |||||
| config.autoload_lib(ignore: %w(assets tasks)) | |||||
| config.time_zone = "Copenhagen" | |||||
| config.i18n.default_locale = :da | |||||
| config.i18n.available_locales = [:da, :en, :de] | |||||
| config.i18n.fallbacks = true | |||||
| config.active_storage.routes_prefix = 'storage' #change /rails/active_storage to /storage | |||||
| # Configuration for the application, engines, and railties goes here. | |||||
| # | |||||
| # These settings can be overridden in specific environments using the files | |||||
| # in config/environments, which are processed later. | |||||
| # | |||||
| # config.time_zone = "Central Time (US & Canada)" | |||||
| # config.eager_load_paths << Rails.root.join("extras") | |||||
| end | |||||
| end | |||||
| @ -0,0 +1,4 @@ | |||||
| ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) | |||||
| require "bundler/setup" # Set up gems listed in the Gemfile. | |||||
| require "bootsnap/setup" # Speed up boot time by caching expensive operations. | |||||
| @ -0,0 +1,5 @@ | |||||
| # Load the Rails application. | |||||
| require_relative "application" | |||||
| # Initialize the Rails application. | |||||
| Rails.application.initialize! | |||||
| @ -0,0 +1,73 @@ | |||||
| require "active_support/core_ext/integer/time" | |||||
| Rails.application.configure do | |||||
| # Settings specified here will take precedence over those in config/application.rb. | |||||
| # In the development environment your application's code is reloaded any time | |||||
| # it changes. This slows down response time but is perfect for development | |||||
| # since you don't have to restart the web server when you make code changes. | |||||
| config.enable_reloading = true | |||||
| # Do not eager load code on boot. | |||||
| config.eager_load = false | |||||
| # Show full error reports. | |||||
| config.consider_all_requests_local = true | |||||
| # Enable server timing | |||||
| config.server_timing = true | |||||
| # Enable/disable caching. By default caching is disabled. | |||||
| # Run rails dev:cache to toggle caching. | |||||
| if Rails.root.join("tmp/caching-dev.txt").exist? | |||||
| config.action_controller.perform_caching = true | |||||
| config.action_controller.enable_fragment_cache_logging = true | |||||
| config.cache_store = :memory_store | |||||
| config.public_file_server.headers = { | |||||
| "Cache-Control" => "public, max-age=#{2.days.to_i}" | |||||
| } | |||||
| else | |||||
| config.action_controller.perform_caching = false | |||||
| config.cache_store = :null_store | |||||
| end | |||||
| # Store uploaded files on the local file system (see config/storage.yml for options). | |||||
| config.active_storage.service = :local | |||||
| # Don't care if the mailer can't send. | |||||
| config.action_mailer.raise_delivery_errors = false | |||||
| config.action_mailer.perform_caching = false | |||||
| # Print deprecation notices to the Rails logger. | |||||
| config.active_support.deprecation = :log | |||||
| # Raise exceptions for disallowed deprecations. | |||||
| config.active_support.disallowed_deprecation = :raise | |||||
| # Tell Active Support which deprecation messages to disallow. | |||||
| config.active_support.disallowed_deprecation_warnings = [] | |||||
| # Raise an error on page load if there are pending migrations. | |||||
| config.active_record.migration_error = :page_load | |||||
| # Highlight code that triggered database queries in logs. | |||||
| config.active_record.verbose_query_logs = true | |||||
| # Highlight code that enqueued background job in logs. | |||||
| config.active_job.verbose_enqueue_logs = true | |||||
| # Suppress logger output for asset requests. | |||||
| config.assets.quiet = true | |||||
| # Raises error for missing translations. | |||||
| # config.i18n.raise_on_missing_translations = true | |||||
| # Annotate rendered view with file names. | |||||
| # config.action_view.annotate_rendered_view_with_filenames = true | |||||
| # Raise error when a before_action's only/except options reference missing actions | |||||
| config.action_controller.raise_on_missing_callback_actions = true | |||||
| end | |||||
| @ -0,0 +1,92 @@ | |||||
| require "active_support/core_ext/integer/time" | |||||
| Rails.application.configure do | |||||
| # Settings specified here will take precedence over those in config/application.rb. | |||||
| # Code is not reloaded between requests. | |||||
| config.enable_reloading = false | |||||
| # Eager load code on boot. This eager loads most of Rails and | |||||
| # your application in memory, allowing both threaded web servers | |||||
| # and those relying on copy on write to perform better. | |||||
| # Rake tasks automatically ignore this option for performance. | |||||
| config.eager_load = true | |||||
| # Full error reports are disabled and caching is turned on. | |||||
| config.consider_all_requests_local = false | |||||
| config.action_controller.perform_caching = true | |||||
| # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment | |||||
| # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files). | |||||
| # config.require_master_key = true | |||||
| # Disable serving static files from `public/`, relying on NGINX/Apache to do so instead. | |||||
| # config.public_file_server.enabled = false | |||||
| # Compress CSS using a preprocessor. | |||||
| # config.assets.css_compressor = :sass | |||||
| # Do not fall back to assets pipeline if a precompiled asset is missed. | |||||
| config.assets.compile = false | |||||
| # Enable serving of images, stylesheets, and JavaScripts from an asset server. | |||||
| # config.asset_host = "http://assets.example.com" | |||||
| # Specifies the header that your server uses for sending files. | |||||
| # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache | |||||
| # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX | |||||
| # Store uploaded files on the local file system (see config/storage.yml for options). | |||||
| config.active_storage.service = :local | |||||
| # Assume all access to the app is happening through a SSL-terminating reverse proxy. | |||||
| # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies. | |||||
| # config.assume_ssl = true | |||||
| # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | |||||
| config.force_ssl = true | |||||
| # Log to STDOUT by default | |||||
| config.logger = ActiveSupport::Logger.new(STDOUT) | |||||
| .tap { |logger| logger.formatter = ::Logger::Formatter.new } | |||||
| .then { |logger| ActiveSupport::TaggedLogging.new(logger) } | |||||
| # Prepend all log lines with the following tags. | |||||
| config.log_tags = [ :request_id ] | |||||
| # "info" includes generic and useful information about system operation, but avoids logging too much | |||||
| # information to avoid inadvertent exposure of personally identifiable information (PII). If you | |||||
| # want to log everything, set the level to "debug". | |||||
| config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") | |||||
| # Use a different cache store in production. | |||||
| # config.cache_store = :mem_cache_store | |||||
| # Use a real queuing backend for Active Job (and separate queues per environment). | |||||
| # config.active_job.queue_adapter = :resque | |||||
| # config.active_job.queue_name_prefix = "week_2024_production" | |||||
| config.action_mailer.perform_caching = false | |||||
| # Ignore bad email addresses and do not raise email delivery errors. | |||||
| # Set this to true and configure the email server for immediate delivery to raise delivery errors. | |||||
| # config.action_mailer.raise_delivery_errors = false | |||||
| # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | |||||
| # the I18n.default_locale when a translation cannot be found). | |||||
| config.i18n.fallbacks = true | |||||
| # Don't log any deprecations. | |||||
| config.active_support.report_deprecations = false | |||||
| # Do not dump schema after migrations. | |||||
| config.active_record.dump_schema_after_migration = false | |||||
| # Enable DNS rebinding protection and other `Host` header attacks. | |||||
| # config.hosts = [ | |||||
| # "example.com", # Allow requests from example.com | |||||
| # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com` | |||||
| # ] | |||||
| # Skip DNS rebinding protection for the default health check endpoint. | |||||
| # config.host_authorization = { exclude: ->(request) { request.path == "/up" } } | |||||
| end | |||||
| @ -0,0 +1,64 @@ | |||||
| require "active_support/core_ext/integer/time" | |||||
| # The test environment is used exclusively to run your application's | |||||
| # test suite. You never need to work with it otherwise. Remember that | |||||
| # your test database is "scratch space" for the test suite and is wiped | |||||
| # and recreated between test runs. Don't rely on the data there! | |||||
| Rails.application.configure do | |||||
| # Settings specified here will take precedence over those in config/application.rb. | |||||
| # While tests run files are not watched, reloading is not necessary. | |||||
| config.enable_reloading = false | |||||
| # Eager loading loads your entire application. When running a single test locally, | |||||
| # this is usually not necessary, and can slow down your test suite. However, it's | |||||
| # recommended that you enable it in continuous integration systems to ensure eager | |||||
| # loading is working properly before deploying your code. | |||||
| config.eager_load = ENV["CI"].present? | |||||
| # Configure public file server for tests with Cache-Control for performance. | |||||
| config.public_file_server.enabled = true | |||||
| config.public_file_server.headers = { | |||||
| "Cache-Control" => "public, max-age=#{1.hour.to_i}" | |||||
| } | |||||
| # Show full error reports and disable caching. | |||||
| config.consider_all_requests_local = true | |||||
| config.action_controller.perform_caching = false | |||||
| config.cache_store = :null_store | |||||
| # Render exception templates for rescuable exceptions and raise for other exceptions. | |||||
| config.action_dispatch.show_exceptions = :rescuable | |||||
| # Disable request forgery protection in test environment. | |||||
| config.action_controller.allow_forgery_protection = false | |||||
| # Store uploaded files on the local file system in a temporary directory. | |||||
| config.active_storage.service = :test | |||||
| config.action_mailer.perform_caching = false | |||||
| # Tell Action Mailer not to deliver emails to the real world. | |||||
| # The :test delivery method accumulates sent emails in the | |||||
| # ActionMailer::Base.deliveries array. | |||||
| config.action_mailer.delivery_method = :test | |||||
| # Print deprecation notices to the stderr. | |||||
| config.active_support.deprecation = :stderr | |||||
| # Raise exceptions for disallowed deprecations. | |||||
| config.active_support.disallowed_deprecation = :raise | |||||
| # Tell Active Support which deprecation messages to disallow. | |||||
| config.active_support.disallowed_deprecation_warnings = [] | |||||
| # Raises error for missing translations. | |||||
| # config.i18n.raise_on_missing_translations = true | |||||
| # Annotate rendered view with file names. | |||||
| # config.action_view.annotate_rendered_view_with_filenames = true | |||||
| # Raise error when a before_action's only/except options reference missing actions | |||||
| config.action_controller.raise_on_missing_callback_actions = true | |||||
| end | |||||
| @ -0,0 +1,7 @@ | |||||
| # Pin npm packages by running ./bin/importmap | |||||
| pin "application" | |||||
| pin "@hotwired/turbo-rails", to: "turbo.min.js" | |||||
| pin "@hotwired/stimulus", to: "stimulus.min.js" | |||||
| pin "@hotwired/stimulus-loading", to: "stimulus-loading.js" | |||||
| pin_all_from "app/javascript/controllers", under: "controllers" | |||||
| @ -0,0 +1 @@ | |||||
| Ancestry.default_ancestry_format = :materialized_path2 | |||||
| @ -0,0 +1,12 @@ | |||||
| # Be sure to restart your server when you modify this file. | |||||
| # Version of your assets, change this if you want to expire all your assets. | |||||
| Rails.application.config.assets.version = "1.0" | |||||
| # Add additional assets to the asset load path. | |||||
| # Rails.application.config.assets.paths << Emoji.images_path | |||||
| # Precompile additional assets. | |||||
| # application.js, application.css, and all non-JS/CSS in the app/assets | |||||
| # folder are already added. | |||||
| # Rails.application.config.assets.precompile += %w( admin.js admin.css ) | |||||
| @ -0,0 +1,25 @@ | |||||
| # Be sure to restart your server when you modify this file. | |||||
| # Define an application-wide content security policy. | |||||
| # See the Securing Rails Applications Guide for more information: | |||||
| # https://guides.rubyonrails.org/security.html#content-security-policy-header | |||||
| # Rails.application.configure do | |||||
| # config.content_security_policy do |policy| | |||||
| # policy.default_src :self, :https | |||||
| # policy.font_src :self, :https, :data | |||||
| # policy.img_src :self, :https, :data | |||||
| # policy.object_src :none | |||||
| # policy.script_src :self, :https | |||||
| # policy.style_src :self, :https | |||||
| # # Specify URI for violation reports | |||||
| # # policy.report_uri "/csp-violation-report-endpoint" | |||||
| # end | |||||
| # | |||||
| # # Generate session nonces for permitted importmap, inline scripts, and inline styles. | |||||
| # config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } | |||||
| # config.content_security_policy_nonce_directives = %w(script-src style-src) | |||||
| # | |||||
| # # Report violations without enforcing the policy. | |||||
| # # config.content_security_policy_report_only = true | |||||
| # end | |||||
| @ -0,0 +1,8 @@ | |||||
| # Be sure to restart your server when you modify this file. | |||||
| # Configure parameters to be partially matched (e.g. passw matches password) and filtered from the log file. | |||||
| # Use this to limit dissemination of sensitive information. | |||||
| # See the ActiveSupport::ParameterFilter documentation for supported notations and behaviors. | |||||
| Rails.application.config.filter_parameters += [ | |||||
| :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn | |||||
| ] | |||||
| @ -0,0 +1,16 @@ | |||||
| # Be sure to restart your server when you modify this file. | |||||
| # Add new inflection rules using the following format. Inflections | |||||
| # are locale specific, and you may define rules for as many different | |||||
| # locales as you wish. All of these examples are active by default: | |||||
| # ActiveSupport::Inflector.inflections(:en) do |inflect| | |||||
| # inflect.plural /^(ox)$/i, "\\1en" | |||||
| # inflect.singular /^(ox)en/i, "\\1" | |||||
| # inflect.irregular "person", "people" | |||||
| # inflect.uncountable %w( fish sheep ) | |||||
| # end | |||||
| # These inflection rules are supported but not enabled by default: | |||||
| # ActiveSupport::Inflector.inflections(:en) do |inflect| | |||||
| # inflect.acronym "RESTful" | |||||
| # end | |||||
| @ -0,0 +1,14 @@ | |||||
| # frozen_string_literal: true | |||||
| Kaminari.configure do |config| | |||||
| config.default_per_page = 20 | |||||
| # config.max_per_page = nil | |||||
| # config.window = 4 | |||||
| # config.outer_window = 0 | |||||
| # config.left = 0 | |||||
| # config.right = 0 | |||||
| # config.page_method_name = :page | |||||
| # config.param_name = :page | |||||
| # config.max_pages = nil | |||||
| # config.params_on_first_page = false | |||||
| end | |||||
| @ -0,0 +1,129 @@ | |||||
| Mobility.configure do | |||||
| # PLUGINS | |||||
| plugins do | |||||
| # Backend | |||||
| # | |||||
| # Sets the default backend to use in models. This can be overridden in models | |||||
| # by passing +backend: ...+ to +translates+. | |||||
| # | |||||
| # To default to a different backend globally, replace +:key_value+ by another | |||||
| # backend name. | |||||
| # | |||||
| backend :jsonb | |||||
| # ActiveRecord | |||||
| # | |||||
| # Defines ActiveRecord as ORM, and enables ActiveRecord-specific plugins. | |||||
| active_record | |||||
| # Accessors | |||||
| # | |||||
| # Define reader and writer methods for translated attributes. Remove either | |||||
| # to disable globally, or pass +reader: false+ or +writer: false+ to | |||||
| # +translates+ in any translated model. | |||||
| # | |||||
| reader | |||||
| writer | |||||
| # Backend Reader | |||||
| # | |||||
| # Defines reader to access the backend for any attribute, of the form | |||||
| # +<attribute>_backend+. | |||||
| # | |||||
| backend_reader | |||||
| # | |||||
| # Or pass an interpolation string to define a different pattern: | |||||
| # backend_reader "%s_translations" | |||||
| # Query | |||||
| # | |||||
| # Defines a scope on the model class which allows querying on | |||||
| # translated attributes. The default scope is named +i18n+, pass a different | |||||
| # name as default to change the global default, or to +translates+ in any | |||||
| # model to change it for that model alone. | |||||
| # | |||||
| query | |||||
| # Cache | |||||
| # | |||||
| # Comment out to disable caching reads and writes. | |||||
| # | |||||
| cache | |||||
| # Dirty | |||||
| # | |||||
| # Uncomment this line to include and enable globally: | |||||
| # dirty | |||||
| # | |||||
| # Or uncomment this line to include but disable by default, and only enable | |||||
| # per model by passing +dirty: true+ to +translates+. | |||||
| dirty false | |||||
| # Column Fallback | |||||
| # | |||||
| # Uncomment line below to fallback to original column. You can pass | |||||
| # +column_fallback: true+ to +translates+ to return original column on | |||||
| # default locale, or pass +column_fallback: [:en, :de]+ to +translates+ | |||||
| # to return original column for those locales or pass | |||||
| # +column_fallback: ->(locale) { ... }+ to +translates to evaluate which | |||||
| # locales to return original column for. | |||||
| # column_fallback | |||||
| # | |||||
| # Or uncomment this line to enable column fallback with a global default. | |||||
| # column_fallback true | |||||
| # Fallbacks | |||||
| # | |||||
| # Uncomment line below to enable fallbacks, using +I18n.fallbacks+. | |||||
| fallbacks | |||||
| # | |||||
| # Or uncomment this line to enable fallbacks with a global default. | |||||
| # fallbacks { :pt => :en } | |||||
| # Presence | |||||
| # | |||||
| # Converts blank strings to nil on reads and writes. Comment out to | |||||
| # disable. | |||||
| # | |||||
| # presence | |||||
| # Default | |||||
| # | |||||
| # Set a default translation per attributes. When enabled, passing +default: | |||||
| # 'foo'+ sets a default translation string to show in case no translation is | |||||
| # present. Can also be passed a proc. | |||||
| # | |||||
| # default 'foo' | |||||
| # Fallthrough Accessors | |||||
| # | |||||
| # Uses method_missing to define locale-specific accessor methods like | |||||
| # +title_en+, +title_en=+, +title_fr+, +title_fr=+ for each translated | |||||
| # attribute. If you know what set of locales you want to support, it's | |||||
| # generally better to use Locale Accessors (or both together) since | |||||
| # +method_missing+ is very slow. (You can use both fallthrough and locale | |||||
| # accessor plugins together without conflict.) | |||||
| # | |||||
| # fallthrough_accessors | |||||
| # Locale Accessors | |||||
| # | |||||
| # Uses +def+ to define accessor methods for a set of locales. By default uses | |||||
| # +I18n.available_locales+, but you can pass the set of locales with | |||||
| # +translates+ and/or set a global default here. | |||||
| # | |||||
| locale_accessors | |||||
| # | |||||
| # Or define specific defaults by uncommenting line below | |||||
| # locale_accessors [:en, :ja] | |||||
| # Attribute Methods | |||||
| # | |||||
| # Adds translated attributes to +attributes+ hash, and defines methods | |||||
| # +translated_attributes+ and +untranslated_attributes+ which return hashes | |||||
| # with translated and untranslated attributes, respectively. Be aware that | |||||
| # this plugin can create conflicts with other gems. | |||||
| # | |||||
| # attribute_methods | |||||
| end | |||||
| end | |||||
| @ -0,0 +1,13 @@ | |||||
| # Be sure to restart your server when you modify this file. | |||||
| # Define an application-wide HTTP permissions policy. For further | |||||
| # information see: https://developers.google.com/web/updates/2018/06/feature-policy | |||||
| # Rails.application.config.permissions_policy do |policy| | |||||
| # policy.camera :none | |||||
| # policy.gyroscope :none | |||||
| # policy.microphone :none | |||||
| # policy.usb :none | |||||
| # policy.fullscreen :self | |||||
| # policy.payment :self, "https://secure.example.com" | |||||
| # end | |||||
| @ -0,0 +1,768 @@ | |||||
| da: | |||||
| project_name: Den Hirschsprungske Samling | |||||
| client_name: Den Hirschsprungske Samling | |||||
| domain: hirschsprung.dk | |||||
| logo: den-hirschsprungske-samling | |||||
| base_url: 'https://www.hirschsprung.dk' | |||||
| a11y: | |||||
| skip_to_content: Gå til indhold | |||||
| opening_hours: | |||||
| OPERATIONAL: Åbent | |||||
| CLOSED_TEMPORARILY: Lukket midlertidig | |||||
| closed: Lukket i dag | |||||
| open_between: Åbent i dag <span class="nowrap">%{from} - %{until}</span> | |||||
| aria: | |||||
| play_pause: Afspil/Pause | |||||
| logo: Startside for Den Hirschsprungske Samling | |||||
| gdpr: | |||||
| accept: Accepter | |||||
| reject: Afvis | |||||
| third_party: Dette indhold hostes af en tredjepart (%{site}). Ved at vise det eksterne indhold accepterer du vilkårene og betingelserne på <a target="_blank" href="https://%{site}">%{site}</a>. | |||||
| show_external_content: Vis eksternt indhold | |||||
| icons: | |||||
| assets: image | |||||
| users: person | |||||
| nodes: file_copy | |||||
| tags: sell | |||||
| date_formats: schedule | |||||
| subscribers: group | |||||
| newsletters: mail | |||||
| help: | |||||
| markdown: '<a href="https://www.markdownguide.org/cheat-sheet" target="markdown">Markdown cheat sheet</a>' | |||||
| i18n: | |||||
| da: Dansk | |||||
| en: Engelsk | |||||
| de: Tysk | |||||
| skip_to_content: Spring til indhold | |||||
| exhibitions: | |||||
| current: Aktuelle | |||||
| future: Kommende | |||||
| past: Tidligere | |||||
| nohits: | |||||
| title: Din søgning matchede intet | |||||
| your_search: Din søgning | |||||
| no_match: matchede ingen | |||||
| suggestion: Forslag | |||||
| suggestions: | |||||
| make_sure_that_all_words_are_spelled_correctly: Sørg for at alle ord er stavet korrekt. | |||||
| try_different_keywords: Prøv forskellige søgeord. | |||||
| try_more_general_keywords: Prøv mere generelle søgeord. | |||||
| try_fewer_keywords: Prøv færre søgeord. | |||||
| ui: | |||||
| 'yes': Ja | |||||
| 'no': Nej | |||||
| send: Send | |||||
| active: Aktiv | |||||
| inactive: Inaktiv | |||||
| cancel: Annuller | |||||
| search: Søg | |||||
| are_you_sure: Er du sikker på at du vil slette dette objekt? Denne handling kan ikke fortrydes. | |||||
| will_overwrite: Du er ved at foretage en handling, der vil overskrive den eksisterende transskription. Denne proces er uigenkaldelig, og alle tidligere transskriptionsdata vil blive permanent erstattet. | |||||
| updated: Opdateret | |||||
| untitled: Uden titel | |||||
| main_menu: Hovedmenu | |||||
| new: Ny | |||||
| edit: Rediger | |||||
| save: Gem | |||||
| add: Opret | |||||
| append: Tilføj | |||||
| append_text: Tilføj tekst | |||||
| append_asset: Tilføj fil | |||||
| download: Hent | |||||
| category_created: "%{category} gemt" | |||||
| category_updated: "%{category} opdateret" | |||||
| category_destroyed: "%{category} slettet" | |||||
| delete: Slet | |||||
| destroy: Slet | |||||
| destroyed: Slettet | |||||
| example: Eksempel | |||||
| copy: Kopier | |||||
| copied: Kopieret | |||||
| reindex: Renindeksere | |||||
| reindex_started: Reindeksering startet | |||||
| tickets: Billet & Årskort | |||||
| search: Søg | |||||
| accept: Accepter | |||||
| subscribers: | |||||
| subscribe_to: Følg med i hvad der sker på museet. | |||||
| send: Tilmeld nyhedsbrev | |||||
| booking: | |||||
| send: Send forespørgelse | |||||
| utils: | |||||
| search_engines: SEO | |||||
| visibility: Synlighed | |||||
| settings: indstillinger | |||||
| danish: Dansk | |||||
| english: Engelsk | |||||
| transparent: Transparent | |||||
| example: Eksempel | |||||
| choose: Vælg | |||||
| choose_image: Choose image | |||||
| change_image: Change image | |||||
| add: Add | |||||
| out_of: out of | |||||
| save: Gem | |||||
| cancel: cancel | |||||
| back: back | |||||
| remove: Slet | |||||
| address: Address | |||||
| clear_cache: Clear cache | |||||
| cache_cleared: Cachen is now cleared | |||||
| search: Søg | |||||
| updated_at: Senest opdateret | |||||
| close: Close | |||||
| new: Tilføj | |||||
| edit: Rediger | |||||
| details: Detaljer | |||||
| delete: Slet | |||||
| are_you_sure: Denne handling kan ikke fortrydes - Er du sikker på, at du gerne vil fortsætte? | |||||
| upload: Upload | |||||
| download: Download | |||||
| move: Move | |||||
| plus: + | |||||
| up: Up | |||||
| down: Down | |||||
| copy: Copy | |||||
| send: Send | |||||
| preview: Preview | |||||
| content: Content | |||||
| or: or | |||||
| reset: reset | |||||
| read_more: Read more | |||||
| behavior: Behavior | |||||
| systematics: Systematik | |||||
| newsletters: Nyhedsbreve | |||||
| booking_requests: | |||||
| date_expl: Skriv ønsket dato og tidspunkt inden for onsdag til søndag fra kl. 11:15 -15:00. Skriv gerne en alternativ dato og et alternativt tidspunkt, hvis vi ikke kan imødekomme din første prioritet. Skoler kan også få omvisning om tirsdagen. | |||||
| subject_expl: Er der et særligt emne for omvisningen? Skoler kan finde vores forløb under ’Læring’ | |||||
| n_expl: 'Skoleklasser: max 25. Voksengrupper: max 20' | |||||
| group_expl: Skolens eller gruppens navn | |||||
| name_expl: Lærer eller kontaktperson | |||||
| ean_expl: P-nummer angives kun af skoler i Københavns Kommune | |||||
| address_expl: Adresselinje | |||||
| result: | |||||
| title: Vi har modtaget din forespørgelse | |||||
| msg: "Du vil snarest modtage en mail fra os med de oplysninger, vi har registeret i forbindelse med din forespørgsel på en omvisning. Du vil høre fra os, når vi har behandlet din forespørgsel." | |||||
| mailers: | |||||
| test_mail_queue: Test send e-mail | |||||
| test_mail_sent: Test mail sent til %{email} | |||||
| verified_subscription_heading: Bekræftet tilmelding | |||||
| verified_subscription_title: Tilmelding bekræftet | |||||
| verified_subscription_msg: "Du er nu tilmeldt vores nyhedsbrev." | |||||
| unsubscribed_title: Afmelding udført | |||||
| unsubscribed_msg: "Du vil modtage en mail, som bekræftelse på din afmelding" | |||||
| confirm_unsubscribing_title: Bekræft venlig afmelding til vores nyhedsbrev | |||||
| unsubscribe: Afmeld | |||||
| booking_request: | |||||
| subject: Tak for din forespørgsel | |||||
| title: Tak for din forespørgsel på omvisning på Den Hirschsprungske Samling | |||||
| sub_title: Bemærk at dette ikke er en bekræftelse på en omvisning. Vi besvarer din henvendelse hurtigst muligt. | |||||
| verify_subscription: | |||||
| msg: Tak for din interesse. For at gennemføre din tilmelding skal du blot klikke på linket i den e-mail, vi lige har sendt dig. | |||||
| subject: Den Hirschsprungske Samling - Bekræft venligst din tilmelding. | |||||
| verify_link: Bekræft | |||||
| title: Ja tak, tilmeld mig Den Hirschsprungske Samlings nyhedsbrev | |||||
| desc: Du bliver ikke tilmeldt vores nyhedsbrev, hvis ikke du bekræfter via linket nedenunder. Din e-mail adresse vil kun blive brugt til at modtage disse nyheder og vil ikke blive videregivet til tredjepart. Hvis du har modtaget denne e-mail ved en fejltagelse, skal du blot slette den. | |||||
| unsubscribed: | |||||
| subject: Den Hirschsprungske Samling - Bekræftelse på afmelding | |||||
| title: Bekræftelse på afmelding | |||||
| desc: Du er nu afmeldt Den Hirschsprungske Samlings nyhedsbrev og dit navn og emailadresse er hermed slettet. Vi håber, du kommer tilbage en anden gang. | |||||
| newsletter: | |||||
| unsubscribe: Afmeld nyhedsbrev | |||||
| address: "Den Hirschsprungske Samling\nStockholmsgade 20\n2100 København Ø\nTlf. 35420336\ndhs@hirschsprung.dk" | |||||
| not_you: "Denne kode udløber kl %{time}. Hvis det ikke var dig, der loggede ind, skal du nulstille din adgangskode." | |||||
| verify_email_subject: "Your verification code is: %{token}" | |||||
| newsletters: | |||||
| title: Nyhedsbreve | |||||
| new: Opret nyhedsbrev | |||||
| list: Nyhedsbreve | |||||
| created: Nyhedsbrev gemt | |||||
| updated: Nyhedsbrev opdateret | |||||
| destroyed: Nyhedsbrev slettet | |||||
| destroy_failed: Kunde ikke slette dette nyhedsbrev | |||||
| to: Til | |||||
| from: Fra | |||||
| delivered_to_one: Nyhedsbrev blev sendt til %{to} | |||||
| send_to_one: Send | |||||
| send_to_list: Send til abonnenter | |||||
| test_sent: Test sendt til %{to} | |||||
| lists: Abonnenter | |||||
| choose_mailing_list: Vælg liste | |||||
| are_you_sure_send_newsletter: Er du sikker? Nyhedsbrevet bliver sendt til ALLE abonnenter i de valgte lister. Denne handling kan ikke fortryde. | |||||
| test_ok_deliver: Testen var OK. Send til valgte adresselister | |||||
| newsletter_is_beeing_delivered_to_lists: Nyhedsbrevet bliver nu sendt til %{lists} | |||||
| opened: Opened | |||||
| clicked: Clicked | |||||
| statuses: | |||||
| status_draft: Udkast | |||||
| status_published: Udgivet | |||||
| status_archived: Arkiveret | |||||
| sessions: | |||||
| login: Log ind | |||||
| email: E-mail | |||||
| password: Password | |||||
| login_failed: Logind misslykkedes | |||||
| logout: Log ud | |||||
| verification_code: Verifikationskode | |||||
| verify_email: Bekræft | |||||
| verification_failed: Verifikation mislykkedes | |||||
| some: | |||||
| follow: Follow | |||||
| parkmuseerne: | |||||
| title: Parkmuseerne | |||||
| link: http://parkmuseerne.dk | |||||
| facebook: | |||||
| title: Facebook | |||||
| link: https://www.facebook.com/hirschsprung | |||||
| instagram: | |||||
| title: Instagram | |||||
| link: https://www.instagram.com/hirschsprungskesamling | |||||
| tripadvisor: | |||||
| title: Trip Advisor | |||||
| link: https://www.tripadvisor.dk/Attraction_Review-g189541-d245022-Reviews- Hirschsprung_Collection_Hirschsprungske_Samling-Copenhagen_Zealand.html | |||||
| views: | |||||
| pagination: | |||||
| first: "« First" | |||||
| last: "Last »" | |||||
| previous: "Forrige" | |||||
| next: "Næste" | |||||
| truncate: "…" | |||||
| subscribers: | |||||
| new: Opret abonnent | |||||
| created: Abonnent gemt | |||||
| updated: Abonnent opdateret | |||||
| destroy: Slet abonnent | |||||
| destroyed: Abonnent slettet | |||||
| destroy_failed: Kunde ikke slette denne abonnent | |||||
| title: Abonnenter | |||||
| list: Abonnenter | |||||
| all: Alle | |||||
| users: | |||||
| you_cant_change_the_email_on_this_user: Du kan ikke ændre e-mail for denne brugere | |||||
| you_cant_change_this_on_this_user: Du kan ikke ændre dette for denne brugere | |||||
| you_cant_disable_this_user: Du kan ikke af aktivere denne brugere | |||||
| cant_destroy_this_user: Du kan ikke fjerne denne brugere | |||||
| new: Opret brugere | |||||
| created: Brugere gemt | |||||
| updated: Brugere opdateret | |||||
| destroy: Slet brugere | |||||
| destroyed: Brugere slettet | |||||
| destroy_failed: Kunde ikke slette denne brugere | |||||
| title: Brugere og tilladelser | |||||
| list: Bruger liste | |||||
| roles: | |||||
| admin: Admin | |||||
| user: Gæst | |||||
| assets: | |||||
| new: Upload fil | |||||
| created: Fil gemt | |||||
| updated: Fil opdateret | |||||
| destroy: Slet fil | |||||
| destroyed: Fil slettet | |||||
| destroy_failed: Kunde ikke slette denne fil | |||||
| title: Filer | |||||
| sort: | |||||
| by_name: Navn | |||||
| by_filename: Filenavn | |||||
| by_last_modified: Senest opdateret | |||||
| nodes: | |||||
| sort: Sorter undersider %{parent} | |||||
| labels: Fakta | |||||
| project_details: Detaljer | |||||
| content: Indhold | |||||
| title: Sider | |||||
| created: Side gemt | |||||
| updated: Side opdateret | |||||
| destroy: Slet side | |||||
| destroyed: Side slettet | |||||
| destroy_failed: Kunde ikke slette denne side | |||||
| move: Flyt mappe/side til... | |||||
| layout: Sideattributter | |||||
| add_expire_date: Tilføj udløbsdato | |||||
| remove_expire_date: Fjern | |||||
| add_part: Nyt afsnit | |||||
| settings: | |||||
| main_menu: Hovedmenu | |||||
| sub_menu: Undermenu | |||||
| footer_node: Sidfod | |||||
| cookie_policy: Cookie policy | |||||
| cta_link: Call To Action link | |||||
| opening_hours: Åbningstider | |||||
| negative_menu: Hvid menu | |||||
| buy_ticket: Køb billet & Årskort | |||||
| newsletter: Tilmeld nyhedsbrev | |||||
| langs: | |||||
| da: Dansk | |||||
| en: Engelsk | |||||
| de: Tysk | |||||
| templates: | |||||
| tmpl_index: Forside | |||||
| tmpl_article: Side | |||||
| tmpl_lists: Lister | |||||
| tmpl_list: Liste | |||||
| tmpl_exhibitions: Udstillinger | |||||
| tmpl_occasions: Kalender | |||||
| tmpl_poster: Poster | |||||
| tmpl_story: Kort historie | |||||
| tmpl_text: Tekst | |||||
| categories: | |||||
| box: Kasse | |||||
| folder: Mappe | |||||
| cover: Læg | |||||
| document: Side | |||||
| new_categories: | |||||
| box: Kasse | |||||
| folder: Mappe | |||||
| cover: Læg | |||||
| document: Tilføj side | |||||
| statuses: | |||||
| status_draft: Udkast | |||||
| status_published: Udgivet | |||||
| status_archived: Arkiveret | |||||
| icons: | |||||
| box: inventory_2 | |||||
| folder: folder | |||||
| cover: book_2 | |||||
| document: description | |||||
| attachments: | |||||
| alignments: | |||||
| N: Nord | |||||
| NE: Nordøst | |||||
| E: Øst | |||||
| SE: Sydøst | |||||
| S: Syd | |||||
| SW: Sydvest | |||||
| W: Vest | |||||
| NW: Nordvest | |||||
| templates: | |||||
| Hero: Hero | |||||
| L: Stor | |||||
| occasions: | |||||
| future: Det sker | |||||
| past: Tidligere | |||||
| tiles: | |||||
| title: Fliser | |||||
| created: Flise gemt | |||||
| updated: Flise opdateret | |||||
| destroyed: Flise slettet | |||||
| destroy_failed: Kunde ikke slette denne flise | |||||
| templates: | |||||
| tmpl_poster: Poster | |||||
| tmpl_story: Kort historie | |||||
| sort: | |||||
| published: Udgivet | |||||
| draft: Udkast | |||||
| archived: Arkiveret | |||||
| statuses: | |||||
| status_published: Udgivet | |||||
| status_draft: Udkast | |||||
| status_archived: Arkiveret | |||||
| activerecord: | |||||
| errors: | |||||
| messages: | |||||
| record_invalid: 'Godkendelse gik galt: %{errors}' | |||||
| restrict_dependent_destroy: | |||||
| has_one: Kunne ikke slette posten fordi en afhængig %{record} findes | |||||
| has_many: Kunne ikke slette posten fordi afhængige %{record} findes | |||||
| models: | |||||
| node: | |||||
| attributes: | |||||
| expires_at: | |||||
| not_a_date: er ikke gyldig | |||||
| after: skal være et kommende dato | |||||
| models: | |||||
| occasion: | |||||
| zero: begivenheder | |||||
| one: begivenhed | |||||
| other: begivenheder | |||||
| user: | |||||
| zero: brugere | |||||
| one: brugere | |||||
| other: brugere | |||||
| attachment: | |||||
| zero: bilag | |||||
| one: bilag | |||||
| other: bilag | |||||
| asset: | |||||
| zero: filer | |||||
| one: fil | |||||
| other: filer | |||||
| node: | |||||
| zero: sider | |||||
| one: side | |||||
| other: sider | |||||
| tile: | |||||
| zero: fliser | |||||
| one: flise | |||||
| other: fliser | |||||
| subscriber: | |||||
| zero: abonnenter | |||||
| one: abonnent | |||||
| other: abonnenter | |||||
| newsletter: | |||||
| zero: nyhedsbreve | |||||
| one: nyhedsbrev | |||||
| other: nyhedsbreve | |||||
| attributes: | |||||
| occasion: | |||||
| starts_on: Start dato | |||||
| starts_at: Start tid | |||||
| ends_on: Slut dato | |||||
| ends_at: Slut tid | |||||
| newsletter: | |||||
| subject: Emne | |||||
| from: Fra | |||||
| to: Til | |||||
| slug: Del af URL | |||||
| delivered_at: Udsendt | |||||
| stats: Statistik | |||||
| updated_at: Senest opdateret | |||||
| attachments: Bilag | |||||
| subscriber: | |||||
| name: Navn | |||||
| email: E-mail | |||||
| locale: Sprog | |||||
| tags: Adresseliste | |||||
| verified_at: Opt-in | |||||
| tile: | |||||
| title: Titel | |||||
| sub_title: Undertitel | |||||
| description: Beskrivelse | |||||
| status: Status | |||||
| template: Skabelon | |||||
| bg_color: Baggrundsfarve | |||||
| url: URL | |||||
| header: Overskrift | |||||
| excluded_locales: Ikke synlig under sprog | |||||
| is_allowlist: Inverter liste til kun synlig | |||||
| node: | |||||
| title: Titel | |||||
| page_title: Sidetitel | |||||
| page_description: Meta beskrivelse | |||||
| slug: Del af URL | |||||
| url: URL | |||||
| published_at: Udgivet fra | |||||
| status: Status | |||||
| template: Skabelon | |||||
| href: Link til | |||||
| parent_id: Forælder | |||||
| expires_at: Udgivet frem til | |||||
| settings: Indstillinger | |||||
| tags_da: Tags | |||||
| tags_en: Tags | |||||
| tags_de: Tags | |||||
| excluded_locales: Ikke synlig under sprog | |||||
| is_allowlist: Inverter liste til kun synlig | |||||
| occasions: Begivenhed | |||||
| attachments: Bilag | |||||
| attachment: | |||||
| body: Indhold | |||||
| body_da: Indhold | |||||
| body_en: Indhold | |||||
| body_de: Indhold | |||||
| url: Link | |||||
| fg_color: Tekst farve | |||||
| bg_color: Baggrundsfarve | |||||
| alignment: Gravitation | |||||
| template: Skabelon | |||||
| asset: | |||||
| title: Filnavn | |||||
| created_at: Skabt | |||||
| updated_at: Senest opdateret | |||||
| booking_request: | |||||
| name: Navn | |||||
| email: E-mail | |||||
| phone: Tlf | |||||
| group: Bestiller | |||||
| n_persons: Antal deltagere | |||||
| ages: Alder/klassetrin | |||||
| subject: Omvisningens emne | |||||
| ean: EAN | |||||
| cvr: CVR-nummer | |||||
| comment: Bemærkninger | |||||
| primo_date: Dato og tidspunkt | |||||
| secundo_date: Dato, alternativ | |||||
| address: Adresse | |||||
| postal_code: Postnr. | |||||
| city: By | |||||
| user: | |||||
| enabled_at: Aktiv | |||||
| role: Rolle | |||||
| title: Titel | |||||
| phone: Telefon | |||||
| name: Navn | |||||
| firstname: Fornavn | |||||
| lastname: Efternavn | |||||
| email: E-mail | |||||
| password: Password | |||||
| password_confirmation: Gentag password | |||||
| date: | |||||
| abbr_day_names: | |||||
| - søn | |||||
| - man | |||||
| - tir | |||||
| - ons | |||||
| - tor | |||||
| - fre | |||||
| - lør | |||||
| abbr_month_names: | |||||
| - | |||||
| - jan | |||||
| - feb | |||||
| - mar | |||||
| - apr | |||||
| - maj | |||||
| - jun | |||||
| - jul | |||||
| - aug | |||||
| - sep | |||||
| - okt | |||||
| - nov | |||||
| - dec | |||||
| day_names: | |||||
| - søndag | |||||
| - mandag | |||||
| - tirsdag | |||||
| - onsdag | |||||
| - torsdag | |||||
| - fredag | |||||
| - lørdag | |||||
| formats: | |||||
| default: "%d.%m.%Y" | |||||
| long: "%e. %B %Y" | |||||
| short: "%e. %b %Y" | |||||
| month_names: | |||||
| - | |||||
| - januar | |||||
| - februar | |||||
| - marts | |||||
| - april | |||||
| - maj | |||||
| - juni | |||||
| - juli | |||||
| - august | |||||
| - september | |||||
| - oktober | |||||
| - november | |||||
| - december | |||||
| order: | |||||
| - :day | |||||
| - :month | |||||
| - :year | |||||
| datetime: | |||||
| distance_in_words: | |||||
| about_x_hours: | |||||
| one: cirka en time | |||||
| other: cirka %{count} timer | |||||
| about_x_months: | |||||
| one: cirka en måned | |||||
| other: cirka %{count} måneder | |||||
| about_x_years: | |||||
| one: cirka et år | |||||
| other: cirka %{count} år | |||||
| almost_x_years: | |||||
| one: næsten et år | |||||
| other: næsten %{count} år | |||||
| half_a_minute: et halvt minut | |||||
| less_than_x_minutes: | |||||
| one: mindre end et minut | |||||
| other: mindre end %{count} minutter | |||||
| less_than_x_seconds: | |||||
| one: mindre end et sekund | |||||
| other: mindre end %{count} sekunder | |||||
| over_x_years: | |||||
| one: mere end et år | |||||
| other: mere end %{count} år | |||||
| x_days: | |||||
| one: en dag | |||||
| other: "%{count} dage" | |||||
| x_minutes: | |||||
| one: et minut | |||||
| other: "%{count} minutter" | |||||
| x_months: | |||||
| one: en måned | |||||
| other: "%{count} måneder" | |||||
| x_years: | |||||
| one: en år | |||||
| other: "%{count} år" | |||||
| x_seconds: | |||||
| one: et sekund | |||||
| other: "%{count} sekunder" | |||||
| prompts: | |||||
| day: Dag | |||||
| hour: Time | |||||
| minute: Minut | |||||
| month: Måned | |||||
| second: Sekund | |||||
| year: År | |||||
| errors: | |||||
| format: "%{attribute} %{message}" | |||||
| messages: | |||||
| accepted: skal accepteres | |||||
| blank: skal udfyldes | |||||
| present: skal være tom | |||||
| confirmation: stemmer ikke overens med bekræftelse | |||||
| empty: må ikke udelades | |||||
| equal_to: skal være %{count} | |||||
| even: skal være et lige tal | |||||
| exclusion: er reserveret | |||||
| greater_than: skal være større end %{count} | |||||
| greater_than_or_equal_to: skal være større end, eller lig med, %{count} | |||||
| inclusion: er ikke på listen | |||||
| invalid: er ikke gyldig | |||||
| less_than: skal være mindre end %{count} | |||||
| less_than_or_equal_to: skal være mindre end, eller lig med, %{count} | |||||
| model_invalid: "Godkendelse gik galt: %{errors}" | |||||
| not_a_number: er ikke et tal | |||||
| not_an_integer: er ikke et heltal | |||||
| odd: skal være et ulige tal | |||||
| required: skal eksistere | |||||
| taken: er allerede brugt | |||||
| too_long: er for lang (højst %{count} tegn) | |||||
| too_short: er for kort (mindst %{count} tegn) | |||||
| wrong_length: har forkert længde (skulle være %{count} tegn) | |||||
| other_than: skal være forskellig fra %{count} | |||||
| url: is not a valid URL | |||||
| template: | |||||
| body: 'Der var problemer med følgende felter:' | |||||
| header: | |||||
| one: En fejl forhindrede %{model} i at blive gemt | |||||
| other: "%{count} fejl forhindrede %{model} i at blive gemt" | |||||
| views: | |||||
| pagination: | |||||
| first: "first_page" | |||||
| last: "last_page" | |||||
| previous: "navigate_before" | |||||
| next: "navigate_next" | |||||
| truncate: "…" | |||||
| helpers: | |||||
| select: | |||||
| prompt: Vælg... | |||||
| submit: | |||||
| create: Opret %{model} | |||||
| submit: Gem %{model} | |||||
| update: Opdater %{model} | |||||
| page_entries_info: | |||||
| one_page: | |||||
| display_entries: | |||||
| zero: "Ingen %{entry_name} fundet" | |||||
| one: "Viser <b>1</b> %{entry_name}" | |||||
| other: "<b>%{count}</b> %{entry_name}" | |||||
| more_pages: | |||||
| display_entries: "<b>%{first} - %{last}</b> udaf <b>%{total}</b>" | |||||
| number: | |||||
| currency: | |||||
| format: | |||||
| delimiter: "." | |||||
| format: "%u %n" | |||||
| precision: 2 | |||||
| separator: "," | |||||
| significant: false | |||||
| strip_insignificant_zeros: false | |||||
| unit: DKK | |||||
| format: | |||||
| delimiter: "." | |||||
| precision: 3 | |||||
| separator: "," | |||||
| significant: false | |||||
| strip_insignificant_zeros: false | |||||
| human: | |||||
| decimal_units: | |||||
| format: "%n %u" | |||||
| units: | |||||
| billion: Milliard | |||||
| million: Million | |||||
| quadrillion: Billiard | |||||
| thousand: Tusind | |||||
| trillion: Billion | |||||
| unit: '' | |||||
| format: | |||||
| delimiter: '' | |||||
| precision: 3 | |||||
| significant: true | |||||
| strip_insignificant_zeros: true | |||||
| storage_units: | |||||
| format: "%n %u" | |||||
| units: | |||||
| byte: | |||||
| one: Byte | |||||
| other: Bytes | |||||
| gb: GB | |||||
| kb: KB | |||||
| mb: MB | |||||
| tb: TB | |||||
| percentage: | |||||
| format: | |||||
| delimiter: '' | |||||
| format: "%n%" | |||||
| precision: | |||||
| format: | |||||
| delimiter: '' | |||||
| support: | |||||
| array: | |||||
| last_word_connector: " og " | |||||
| two_words_connector: " og " | |||||
| words_connector: ", " | |||||
| time: | |||||
| am: '' | |||||
| formats: | |||||
| default: "%e. %B %Y, %H.%M" | |||||
| long: "%A d. %e. %B %Y, %H.%M" | |||||
| short: "%e. %b %Y, %H.%M" | |||||
| time_only: "%H.%M" | |||||
| listing: ! "%e. %b %Y" | |||||
| medium: ! '%e. %b %Y, %H.%M' | |||||
| pm: '' | |||||
| @ -0,0 +1,31 @@ | |||||
| # Files in the config/locales directory are used for internationalization and | |||||
| # are automatically loaded by Rails. If you want to use locales other than | |||||
| # English, add the necessary files in this directory. | |||||
| # | |||||
| # To use the locales, use `I18n.t`: | |||||
| # | |||||
| # I18n.t "hello" | |||||
| # | |||||
| # In views, this is aliased to just `t`: | |||||
| # | |||||
| # <%= t("hello") %> | |||||
| # | |||||
| # To use a different locale, set it with `I18n.locale`: | |||||
| # | |||||
| # I18n.locale = :es | |||||
| # | |||||
| # This would use the information in config/locales/es.yml. | |||||
| # | |||||
| # To learn more about the API, please read the Rails Internationalization guide | |||||
| # at https://guides.rubyonrails.org/i18n.html. | |||||
| # | |||||
| # Be aware that YAML interprets the following case-insensitive strings as | |||||
| # booleans: `true`, `false`, `on`, `off`, `yes`, `no`. Therefore, these strings | |||||
| # must be quoted to be interpreted as strings. For example: | |||||
| # | |||||
| # en: | |||||
| # "yes": yup | |||||
| # enabled: "ON" | |||||
| en: | |||||
| hello: "Hello world" | |||||
| @ -0,0 +1,90 @@ | |||||
| # http > https | |||||
| server { | |||||
| listen 80; | |||||
| server_name ikea-foundation-week-2024.onc.dk; | |||||
| root /home/ikea_foundation/week_2024/public; | |||||
| # Lets encrypt | |||||
| location ~ /.well-known { | |||||
| allow all; | |||||
| } | |||||
| location / { | |||||
| return 301 https://ikea-foundation-week-2024.onc.dk$request_uri; | |||||
| } | |||||
| } | |||||
| # Puma | |||||
| upstream puma_ikea { | |||||
| server unix:///home/ikea_foundation/week_2024/tmp/pids/puma.sock fail_timeout=0; | |||||
| } | |||||
| # # https | |||||
| # server { | |||||
| # listen 443 ssl http2; | |||||
| # server_name ikea-foundation-week-2024.onc.dk; | |||||
| # | |||||
| # # keepalive_timeout 300; | |||||
| # keepalive_timeout 5; | |||||
| # client_max_body_size 4G; | |||||
| # | |||||
| # ssl_certificate /etc/letsencrypt/live/ikea-foundation-week-2024.onc.dk/fullchain.pem; # managed by Certbot | |||||
| # ssl_certificate_key /etc/letsencrypt/live/ikea-foundation-week-2024.onc.dk/privkey.pem; # managed by Certbot | |||||
| # include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot | |||||
| # ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot | |||||
| # | |||||
| # access_log /home/ikea_foundation/week_2024/log/httpd-access.log; | |||||
| # error_log /home/ikea_foundation/week_2024/log/httpd-errors.log; | |||||
| # | |||||
| # root /home/ikea_foundation/week_2024/public; | |||||
| # | |||||
| # # App server | |||||
| # location @puma_ikea { | |||||
| # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||||
| # proxy_set_header Host $http_host; | |||||
| # proxy_set_header X-Forwarded_Proto $scheme; | |||||
| # proxy_redirect off; | |||||
| # | |||||
| # proxy_pass http://puma_ikea; | |||||
| # } | |||||
| # | |||||
| # # Serve static (compiled) assets directly if they exist (for rails production) | |||||
| # location ~ ^/(assets|packs|static)/ { | |||||
| # try_files $uri @puma_ikea; | |||||
| # | |||||
| # access_log off; | |||||
| # gzip_static on; | |||||
| # | |||||
| # expires max; | |||||
| # add_header Cache-Control public; | |||||
| # | |||||
| # # Some browsers still send conditional-GET requests if there's a | |||||
| # # Last-Modified header or an ETag header even if they haven't | |||||
| # # reached the expiry date sent in the Expires header. | |||||
| # add_header Last-Modified ""; | |||||
| # add_header ETag ""; | |||||
| # break; | |||||
| # } | |||||
| # | |||||
| # # location /cable { | |||||
| # # proxy_pass http://puma_ikea; | |||||
| # # proxy_http_version 1.1; | |||||
| # # proxy_set_header Upgrade $http_upgrade; | |||||
| # # proxy_set_header Connection 'upgrade'; | |||||
| # # } | |||||
| # | |||||
| # # Send non-static file requests to the app server | |||||
| # location / { | |||||
| # try_files $uri @puma_ikea; | |||||
| # } | |||||
| # | |||||
| # # You can override error pages by redirecting the requests to a file in your | |||||
| # # application's public folder, if you so desire: | |||||
| # error_page 500 502 503 504 /500.html; | |||||
| # location = /500.html { | |||||
| # root /home/ikea_foundation/week_2024/public; | |||||
| # } | |||||
| # } | |||||
| @ -0,0 +1,35 @@ | |||||
| # This configuration file will be evaluated by Puma. The top-level methods that | |||||
| # are invoked here are part of Puma's configuration DSL. For more information | |||||
| # about methods provided by the DSL, see https://puma.io/puma/Puma/DSL.html. | |||||
| # Puma can serve each request in a thread from an internal thread pool. | |||||
| # The `threads` method setting takes two numbers: a minimum and maximum. | |||||
| # Any libraries that use thread pools should be configured to match | |||||
| # the maximum value specified for Puma. Default is set to 5 threads for minimum | |||||
| # and maximum; this matches the default thread size of Active Record. | |||||
| max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } | |||||
| min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } | |||||
| threads min_threads_count, max_threads_count | |||||
| # Specifies that the worker count should equal the number of processors in production. | |||||
| if ENV["RAILS_ENV"] == "production" | |||||
| require "concurrent-ruby" | |||||
| worker_count = Integer(ENV.fetch("WEB_CONCURRENCY") { Concurrent.physical_processor_count }) | |||||
| workers worker_count if worker_count > 1 | |||||
| end | |||||
| # Specifies the `worker_timeout` threshold that Puma will use to wait before | |||||
| # terminating a worker in development environments. | |||||
| worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" | |||||
| # Specifies the `port` that Puma will listen on to receive requests; default is 3000. | |||||
| port ENV.fetch("PORT") { 3000 } | |||||
| # Specifies the `environment` that Puma will run in. | |||||
| environment ENV.fetch("RAILS_ENV") { "development" } | |||||
| # Specifies the `pidfile` that Puma will use. | |||||
| pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } | |||||
| # Allow puma to be restarted by `bin/rails restart` command. | |||||
| plugin :tmp_restart | |||||
| @ -0,0 +1,43 @@ | |||||
| # Puma can serve each request in a thread from an internal thread pool. | |||||
| # The `threads` method setting takes two numbers: a minimum and maximum. | |||||
| # Any libraries that use thread pools should be configured to match | |||||
| # the maximum value specified for Puma. Default is set to 5 threads for minimum | |||||
| # and maximum; this matches the default thread size of Active Record. | |||||
| # | |||||
| max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } | |||||
| min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } | |||||
| threads min_threads_count, max_threads_count | |||||
| # Specifies the `worker_timeout` threshold that Puma will use to wait before | |||||
| # terminating a worker in development environments. | |||||
| # | |||||
| worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" | |||||
| # Specifies the `port` that Puma will listen on to receive requests; default is 3000. | |||||
| # | |||||
| port ENV.fetch("PORT") { 3000 } | |||||
| # Specifies the `environment` that Puma will run in. | |||||
| # | |||||
| environment ENV.fetch("RAILS_ENV") { "development" } | |||||
| # Specifies the `pidfile` that Puma will use. | |||||
| pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } | |||||
| # Specifies the number of `workers` to boot in clustered mode. | |||||
| # Workers are forked web server processes. If using threads and workers together | |||||
| # the concurrency of the application would be max `threads` * `workers`. | |||||
| # Workers do not work on JRuby or Windows (both of which do not support | |||||
| # processes). | |||||
| # | |||||
| # workers ENV.fetch("WEB_CONCURRENCY") { 2 } | |||||
| # Use the `preload_app!` method when specifying a `workers` number. | |||||
| # This directive tells Puma to first boot the application and load code | |||||
| # before forking the application. This takes advantage of Copy On Write | |||||
| # process behavior so workers use less memory. | |||||
| # | |||||
| # preload_app! | |||||
| # Allow puma to be restarted by `bin/rails restart` command. | |||||
| plugin :tmp_restart | |||||
| @ -0,0 +1,10 @@ | |||||
| Rails.application.routes.draw do | |||||
| # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html | |||||
| # Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500. | |||||
| # Can be used by load balancers and uptime monitors to verify that the app is live. | |||||
| get "up" => "rails/health#show", as: :rails_health_check | |||||
| # Defines the root path route ("/") | |||||
| # root "posts#index" | |||||
| end | |||||
| @ -0,0 +1,34 @@ | |||||
| test: | |||||
| service: Disk | |||||
| root: <%= Rails.root.join("tmp/storage") %> | |||||
| local: | |||||
| service: Disk | |||||
| root: <%= Rails.root.join("storage") %> | |||||
| # Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) | |||||
| # amazon: | |||||
| # service: S3 | |||||
| # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> | |||||
| # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> | |||||
| # region: us-east-1 | |||||
| # bucket: your_own_bucket-<%= Rails.env %> | |||||
| # Remember not to checkin your GCS keyfile to a repository | |||||
| # google: | |||||
| # service: GCS | |||||
| # project: your_project | |||||
| # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> | |||||
| # bucket: your_own_bucket-<%= Rails.env %> | |||||
| # Use bin/rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) | |||||
| # microsoft: | |||||
| # service: AzureStorage | |||||
| # storage_account_name: your_account_name | |||||
| # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> | |||||
| # container: your_container_name-<%= Rails.env %> | |||||
| # mirror: | |||||
| # service: Mirror | |||||
| # primary: local | |||||
| # mirrors: [ amazon, google, microsoft ] | |||||
| @ -0,0 +1,9 @@ | |||||
| # This file should ensure the existence of records required to run the application in every environment (production, | |||||
| # development, test). The code here should be idempotent so that it can be executed at any point in every environment. | |||||
| # The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). | |||||
| # | |||||
| # Example: | |||||
| # | |||||
| # ["Action", "Comedy", "Drama", "Horror"].each do |genre_name| | |||||
| # MovieGenre.find_or_create_by!(name: genre_name) | |||||
| # end | |||||
| @ -0,0 +1,67 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <title>The page you were looking for doesn't exist (404)</title> | |||||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |||||
| <style> | |||||
| .rails-default-error-page { | |||||
| background-color: #EFEFEF; | |||||
| color: #2E2F30; | |||||
| text-align: center; | |||||
| font-family: arial, sans-serif; | |||||
| margin: 0; | |||||
| } | |||||
| .rails-default-error-page div.dialog { | |||||
| width: 95%; | |||||
| max-width: 33em; | |||||
| margin: 4em auto 0; | |||||
| } | |||||
| .rails-default-error-page div.dialog > div { | |||||
| border: 1px solid #CCC; | |||||
| border-right-color: #999; | |||||
| border-left-color: #999; | |||||
| border-bottom-color: #BBB; | |||||
| border-top: #B00100 solid 4px; | |||||
| border-top-left-radius: 9px; | |||||
| border-top-right-radius: 9px; | |||||
| background-color: white; | |||||
| padding: 7px 12% 0; | |||||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |||||
| } | |||||
| .rails-default-error-page h1 { | |||||
| font-size: 100%; | |||||
| color: #730E15; | |||||
| line-height: 1.5em; | |||||
| } | |||||
| .rails-default-error-page div.dialog > p { | |||||
| margin: 0 0 1em; | |||||
| padding: 1em; | |||||
| background-color: #F7F7F7; | |||||
| border: 1px solid #CCC; | |||||
| border-right-color: #999; | |||||
| border-left-color: #999; | |||||
| border-bottom-color: #999; | |||||
| border-bottom-left-radius: 4px; | |||||
| border-bottom-right-radius: 4px; | |||||
| border-top-color: #DADADA; | |||||
| color: #666; | |||||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |||||
| } | |||||
| </style> | |||||
| </head> | |||||
| <body class="rails-default-error-page"> | |||||
| <!-- This file lives in public/404.html --> | |||||
| <div class="dialog"> | |||||
| <div> | |||||
| <h1>The page you were looking for doesn't exist.</h1> | |||||
| <p>You may have mistyped the address or the page may have moved.</p> | |||||
| </div> | |||||
| <p>If you are the application owner check the logs for more information.</p> | |||||
| </div> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,67 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <title>The change you wanted was rejected (422)</title> | |||||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |||||
| <style> | |||||
| .rails-default-error-page { | |||||
| background-color: #EFEFEF; | |||||
| color: #2E2F30; | |||||
| text-align: center; | |||||
| font-family: arial, sans-serif; | |||||
| margin: 0; | |||||
| } | |||||
| .rails-default-error-page div.dialog { | |||||
| width: 95%; | |||||
| max-width: 33em; | |||||
| margin: 4em auto 0; | |||||
| } | |||||
| .rails-default-error-page div.dialog > div { | |||||
| border: 1px solid #CCC; | |||||
| border-right-color: #999; | |||||
| border-left-color: #999; | |||||
| border-bottom-color: #BBB; | |||||
| border-top: #B00100 solid 4px; | |||||
| border-top-left-radius: 9px; | |||||
| border-top-right-radius: 9px; | |||||
| background-color: white; | |||||
| padding: 7px 12% 0; | |||||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |||||
| } | |||||
| .rails-default-error-page h1 { | |||||
| font-size: 100%; | |||||
| color: #730E15; | |||||
| line-height: 1.5em; | |||||
| } | |||||
| .rails-default-error-page div.dialog > p { | |||||
| margin: 0 0 1em; | |||||
| padding: 1em; | |||||
| background-color: #F7F7F7; | |||||
| border: 1px solid #CCC; | |||||
| border-right-color: #999; | |||||
| border-left-color: #999; | |||||
| border-bottom-color: #999; | |||||
| border-bottom-left-radius: 4px; | |||||
| border-bottom-right-radius: 4px; | |||||
| border-top-color: #DADADA; | |||||
| color: #666; | |||||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |||||
| } | |||||
| </style> | |||||
| </head> | |||||
| <body class="rails-default-error-page"> | |||||
| <!-- This file lives in public/422.html --> | |||||
| <div class="dialog"> | |||||
| <div> | |||||
| <h1>The change you wanted was rejected.</h1> | |||||
| <p>Maybe you tried to change something you didn't have access to.</p> | |||||
| </div> | |||||
| <p>If you are the application owner check the logs for more information.</p> | |||||
| </div> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,66 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <title>We're sorry, but something went wrong (500)</title> | |||||
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |||||
| <style> | |||||
| .rails-default-error-page { | |||||
| background-color: #EFEFEF; | |||||
| color: #2E2F30; | |||||
| text-align: center; | |||||
| font-family: arial, sans-serif; | |||||
| margin: 0; | |||||
| } | |||||
| .rails-default-error-page div.dialog { | |||||
| width: 95%; | |||||
| max-width: 33em; | |||||
| margin: 4em auto 0; | |||||
| } | |||||
| .rails-default-error-page div.dialog > div { | |||||
| border: 1px solid #CCC; | |||||
| border-right-color: #999; | |||||
| border-left-color: #999; | |||||
| border-bottom-color: #BBB; | |||||
| border-top: #B00100 solid 4px; | |||||
| border-top-left-radius: 9px; | |||||
| border-top-right-radius: 9px; | |||||
| background-color: white; | |||||
| padding: 7px 12% 0; | |||||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |||||
| } | |||||
| .rails-default-error-page h1 { | |||||
| font-size: 100%; | |||||
| color: #730E15; | |||||
| line-height: 1.5em; | |||||
| } | |||||
| .rails-default-error-page div.dialog > p { | |||||
| margin: 0 0 1em; | |||||
| padding: 1em; | |||||
| background-color: #F7F7F7; | |||||
| border: 1px solid #CCC; | |||||
| border-right-color: #999; | |||||
| border-left-color: #999; | |||||
| border-bottom-color: #999; | |||||
| border-bottom-left-radius: 4px; | |||||
| border-bottom-right-radius: 4px; | |||||
| border-top-color: #DADADA; | |||||
| color: #666; | |||||
| box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |||||
| } | |||||
| </style> | |||||
| </head> | |||||
| <body class="rails-default-error-page"> | |||||
| <!-- This file lives in public/500.html --> | |||||
| <div class="dialog"> | |||||
| <div> | |||||
| <h1>We're sorry, but something went wrong.</h1> | |||||
| </div> | |||||
| <p>If you are the application owner check the logs for more information.</p> | |||||
| </div> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1 @@ | |||||
| # See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file | |||||
| @ -0,0 +1,26 @@ | |||||
| #!/bin/bash | |||||
| RAILS_ENV=production bundle exec rake assets:precompile | |||||
| # Get the current directory name | |||||
| current_dir=$(basename "$(pwd)") | |||||
| # Get the list of process IDs matching the criteria | |||||
| process_ids=$(ps -e -o pid,cmd | grep -E "puma|sidekiq" | grep "[ /]${current_dir}[ /]" | awk '{print $1}') | |||||
| cmds=$(ps -e -o pid,cmd | grep -E "puma|sidekiq" | grep "[ /]${current_dir}[ /]" | awk '{print $0}') | |||||
| # Check if any processes match the criteria | |||||
| if [ -n "$process_ids" ]; then | |||||
| echo "Restarting $current_dir" | |||||
| echo "$cmds" | |||||
| # echo "Processes to be killed:" | |||||
| # echo "$process_ids" | |||||
| # Send SIGTERM signal to each matching process | |||||
| for pid in $process_ids; do | |||||
| echo "Killing process $pid" | |||||
| kill -TERM "$pid" | |||||
| done | |||||
| else | |||||
| echo "No matching processes found." | |||||
| fi | |||||
| @ -0,0 +1,5 @@ | |||||
| require "test_helper" | |||||
| class ApplicationSystemTestCase < ActionDispatch::SystemTestCase | |||||
| driven_by :selenium, using: :chrome, screen_size: [1400, 1400] | |||||
| end | |||||
| @ -0,0 +1,15 @@ | |||||
| ENV["RAILS_ENV"] ||= "test" | |||||
| require_relative "../config/environment" | |||||
| require "rails/test_help" | |||||
| module ActiveSupport | |||||
| class TestCase | |||||
| # Run tests in parallel with specified workers | |||||
| parallelize(workers: :number_of_processors) | |||||
| # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. | |||||
| fixtures :all | |||||
| # Add more helper methods to be used by all tests here... | |||||
| end | |||||
| end | |||||