Switch from Webpacker to cssbundling-rails, upgrade Tailwind CSS to version 3 #59
23
.drone.yml
23
.drone.yml
@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
name: CI build
|
name: CI build
|
||||||
@ -11,16 +12,23 @@ steps:
|
|||||||
settings:
|
settings:
|
||||||
restore: true
|
restore: true
|
||||||
mount:
|
mount:
|
||||||
- vendor
|
- ./vendor
|
||||||
when:
|
when:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
- name: rspec
|
- name: rspec
|
||||||
image: guildeducation/rails:2.7.1-12.19.0
|
image: guildeducation/rails:2.7.2-12.22.0
|
||||||
|
environment:
|
||||||
|
RAILS_ENV: test
|
||||||
commands:
|
commands:
|
||||||
- bundle install --jobs=3 --retry=3 --deployment
|
- bundle config unset deployment
|
||||||
|
- bundle config set cache_all 'true'
|
||||||
|
- bundle config set cache_path 'vendor/cache'
|
||||||
|
- bundle config set with 'development test'
|
||||||
|
- bundle install --jobs=3 --retry=3
|
||||||
- yarn install
|
- yarn install
|
||||||
- bundle exec rspec
|
- rake css:build
|
||||||
|
- rake spec
|
||||||
when:
|
when:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
@ -32,7 +40,7 @@ steps:
|
|||||||
settings:
|
settings:
|
||||||
rebuild: true
|
rebuild: true
|
||||||
mount:
|
mount:
|
||||||
- vendor
|
- ./vendor
|
||||||
when:
|
when:
|
||||||
branch:
|
branch:
|
||||||
- master
|
- master
|
||||||
@ -41,3 +49,8 @@ volumes:
|
|||||||
- name: cache
|
- name: cache
|
||||||
host:
|
host:
|
||||||
path: /var/lib/drone/tmp
|
path: /var/lib/drone/tmp
|
||||||
|
---
|
||||||
|
kind: signature
|
||||||
|
hmac: f9a8cf97f6596625721365f6238f6f298aa5a7a4de10c3fb61c57202ae9d1ee1
|
||||||
|
|
||||||
|
...
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -42,3 +42,6 @@ yarn-debug.log*
|
|||||||
|
|
||||||
# Ignore redis dumps from sidekiq
|
# Ignore redis dumps from sidekiq
|
||||||
dump.rdb
|
dump.rdb
|
||||||
|
|
||||||
|
/app/assets/builds/*
|
||||||
|
!/app/assets/builds/.keep
|
||||||
|
@ -1 +1 @@
|
|||||||
2.6.1
|
2.7.2
|
||||||
|
28
Gemfile
28
Gemfile
@ -2,15 +2,19 @@ source 'https://rubygems.org'
|
|||||||
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
||||||
|
|
||||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||||
gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
|
gem 'rails', '~> 7.0.2'
|
||||||
# Use Puma as the app server
|
# Use Puma as the app server
|
||||||
gem 'puma', '~> 4.1'
|
gem 'puma', '~> 4.1'
|
||||||
# Use SCSS for stylesheets
|
# Separate dependency since Rails 7.0
|
||||||
gem 'sass-rails', '>= 6'
|
gem 'sprockets-rails'
|
||||||
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
|
# Allows custom JS build tasks to integrate with the asset pipeline
|
||||||
gem 'webpacker', '~> 4.0'
|
gem 'cssbundling-rails'
|
||||||
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
|
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
|
||||||
gem 'turbolinks', '~> 5'
|
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. Read more: https://github.com/rails/jbuilder
|
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
||||||
gem 'jbuilder', '~> 2.7'
|
gem 'jbuilder', '~> 2.7'
|
||||||
# Use Redis adapter to run Action Cable in production
|
# Use Redis adapter to run Action Cable in production
|
||||||
@ -18,9 +22,6 @@ gem 'jbuilder', '~> 2.7'
|
|||||||
# Use Active Model has_secure_password
|
# Use Active Model has_secure_password
|
||||||
# gem 'bcrypt', '~> 3.1.7'
|
# gem 'bcrypt', '~> 3.1.7'
|
||||||
|
|
||||||
# Reduces boot times through caching; required in config/boot.rb
|
|
||||||
gem 'bootsnap', '>= 1.4.2', require: false
|
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
gem 'dotenv-rails'
|
gem 'dotenv-rails'
|
||||||
|
|
||||||
@ -46,23 +47,18 @@ gem 'sidekiq-scheduler'
|
|||||||
group :development, :test do
|
group :development, :test do
|
||||||
# Use sqlite3 as the database for Active Record
|
# Use sqlite3 as the database for Active Record
|
||||||
gem 'sqlite3', '~> 1.4'
|
gem 'sqlite3', '~> 1.4'
|
||||||
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
gem 'rspec-rails'
|
||||||
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
|
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
|
||||||
gem 'web-console', '>= 3.3.0'
|
gem 'web-console', '>= 3.3.0'
|
||||||
gem 'listen', '~> 3.2'
|
gem 'listen', '~> 3.2'
|
||||||
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
|
||||||
gem 'spring'
|
|
||||||
gem 'spring-watcher-listen', '~> 2.0.0'
|
|
||||||
gem 'letter_opener'
|
gem 'letter_opener'
|
||||||
gem 'letter_opener_web'
|
gem 'letter_opener_web'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem 'rspec-rails'
|
|
||||||
gem 'factory_bot_rails'
|
gem 'factory_bot_rails'
|
||||||
gem 'capybara'
|
gem 'capybara'
|
||||||
gem 'database_cleaner'
|
gem 'database_cleaner'
|
||||||
|
301
Gemfile.lock
301
Gemfile.lock
@ -1,69 +1,76 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actioncable (6.0.4.1)
|
actioncable (7.0.2.2)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 7.0.2.2)
|
||||||
|
activesupport (= 7.0.2.2)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
actionmailbox (6.0.4.1)
|
actionmailbox (7.0.2.2)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 7.0.2.2)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 7.0.2.2)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 7.0.2.2)
|
||||||
activestorage (= 6.0.4.1)
|
activestorage (= 7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
mail (>= 2.7.1)
|
mail (>= 2.7.1)
|
||||||
actionmailer (6.0.4.1)
|
net-imap
|
||||||
actionpack (= 6.0.4.1)
|
net-pop
|
||||||
actionview (= 6.0.4.1)
|
net-smtp
|
||||||
activejob (= 6.0.4.1)
|
actionmailer (7.0.2.2)
|
||||||
|
actionpack (= 7.0.2.2)
|
||||||
|
actionview (= 7.0.2.2)
|
||||||
|
activejob (= 7.0.2.2)
|
||||||
|
activesupport (= 7.0.2.2)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
|
net-imap
|
||||||
|
net-pop
|
||||||
|
net-smtp
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
actionpack (6.0.4.1)
|
actionpack (7.0.2.2)
|
||||||
actionview (= 6.0.4.1)
|
actionview (= 7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
rack (~> 2.0, >= 2.0.8)
|
rack (~> 2.0, >= 2.2.0)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
||||||
actiontext (6.0.4.1)
|
actiontext (7.0.2.2)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 7.0.2.2)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 7.0.2.2)
|
||||||
activestorage (= 6.0.4.1)
|
activestorage (= 7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
|
globalid (>= 0.6.0)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
actionview (6.0.4.1)
|
actionview (7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.4)
|
erubi (~> 1.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
||||||
activejob (6.0.4.1)
|
activejob (7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (6.0.4.1)
|
activemodel (7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
activerecord (6.0.4.1)
|
activerecord (7.0.2.2)
|
||||||
activemodel (= 6.0.4.1)
|
activemodel (= 7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
activestorage (6.0.4.1)
|
activestorage (7.0.2.2)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 7.0.2.2)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 7.0.2.2)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 7.0.2.2)
|
||||||
marcel (~> 1.0.0)
|
activesupport (= 7.0.2.2)
|
||||||
activesupport (6.0.4.1)
|
marcel (~> 1.0)
|
||||||
|
mini_mime (>= 1.1.0)
|
||||||
|
activesupport (7.0.2.2)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 1.6, < 2)
|
||||||
minitest (~> 5.1)
|
minitest (>= 5.1)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 2.0)
|
||||||
zeitwerk (~> 2.2, >= 2.2.2)
|
|
||||||
addressable (2.8.0)
|
addressable (2.8.0)
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
public_suffix (>= 2.0.2, < 5.0)
|
||||||
bcrypt (3.1.16)
|
bcrypt (3.1.16)
|
||||||
bindex (0.8.1)
|
bindex (0.8.1)
|
||||||
bootsnap (1.9.1)
|
|
||||||
msgpack (~> 1.0)
|
|
||||||
builder (3.2.4)
|
builder (3.2.4)
|
||||||
byebug (11.1.3)
|
|
||||||
capybara (3.36.0)
|
capybara (3.36.0)
|
||||||
addressable
|
addressable
|
||||||
matrix
|
matrix
|
||||||
@ -79,13 +86,15 @@ GEM
|
|||||||
crack (0.4.5)
|
crack (0.4.5)
|
||||||
rexml
|
rexml
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
|
cssbundling-rails (1.0.0)
|
||||||
|
railties (>= 6.0.0)
|
||||||
database_cleaner (2.0.1)
|
database_cleaner (2.0.1)
|
||||||
database_cleaner-active_record (~> 2.0.0)
|
database_cleaner-active_record (~> 2.0.0)
|
||||||
database_cleaner-active_record (2.0.1)
|
database_cleaner-active_record (2.0.1)
|
||||||
activerecord (>= 5.a)
|
activerecord (>= 5.a)
|
||||||
database_cleaner-core (~> 2.0.0)
|
database_cleaner-core (~> 2.0.0)
|
||||||
database_cleaner-core (2.0.1)
|
database_cleaner-core (2.0.1)
|
||||||
devise (4.8.0)
|
devise (4.8.1)
|
||||||
bcrypt (~> 3.0)
|
bcrypt (~> 3.0)
|
||||||
orm_adapter (~> 0.1)
|
orm_adapter (~> 0.1)
|
||||||
railties (>= 4.1.0)
|
railties (>= 4.1.0)
|
||||||
@ -94,7 +103,8 @@ GEM
|
|||||||
devise_ldap_authenticatable (0.8.7)
|
devise_ldap_authenticatable (0.8.7)
|
||||||
devise (>= 3.4.1)
|
devise (>= 3.4.1)
|
||||||
net-ldap (>= 0.16.0)
|
net-ldap (>= 0.16.0)
|
||||||
diff-lcs (1.4.4)
|
diff-lcs (1.5.0)
|
||||||
|
digest (3.1.0)
|
||||||
dotenv (2.7.6)
|
dotenv (2.7.6)
|
||||||
dotenv-rails (2.7.6)
|
dotenv-rails (2.7.6)
|
||||||
dotenv (= 2.7.6)
|
dotenv (= 2.7.6)
|
||||||
@ -108,49 +118,40 @@ GEM
|
|||||||
factory_bot_rails (6.2.0)
|
factory_bot_rails (6.2.0)
|
||||||
factory_bot (~> 6.2.0)
|
factory_bot (~> 6.2.0)
|
||||||
railties (>= 5.0.0)
|
railties (>= 5.0.0)
|
||||||
faraday (1.8.0)
|
faraday (2.2.0)
|
||||||
faraday-em_http (~> 1.0)
|
faraday-net_http (~> 2.0)
|
||||||
faraday-em_synchrony (~> 1.0)
|
|
||||||
faraday-excon (~> 1.1)
|
|
||||||
faraday-httpclient (~> 1.0.1)
|
|
||||||
faraday-net_http (~> 1.0)
|
|
||||||
faraday-net_http_persistent (~> 1.1)
|
|
||||||
faraday-patron (~> 1.0)
|
|
||||||
faraday-rack (~> 1.0)
|
|
||||||
multipart-post (>= 1.2, < 3)
|
|
||||||
ruby2_keywords (>= 0.0.4)
|
ruby2_keywords (>= 0.0.4)
|
||||||
faraday-em_http (1.0.0)
|
faraday-net_http (2.0.1)
|
||||||
faraday-em_synchrony (1.0.0)
|
ffi (1.15.5)
|
||||||
faraday-excon (1.1.0)
|
|
||||||
faraday-httpclient (1.0.1)
|
|
||||||
faraday-net_http (1.0.1)
|
|
||||||
faraday-net_http_persistent (1.2.0)
|
|
||||||
faraday-patron (1.0.0)
|
|
||||||
faraday-rack (1.0.0)
|
|
||||||
ffi (1.15.4)
|
|
||||||
fugit (1.5.2)
|
fugit (1.5.2)
|
||||||
et-orbi (~> 1.1, >= 1.1.8)
|
et-orbi (~> 1.1, >= 1.1.8)
|
||||||
raabro (~> 1.4)
|
raabro (~> 1.4)
|
||||||
globalid (0.5.2)
|
globalid (1.0.0)
|
||||||
activesupport (>= 5.0)
|
activesupport (>= 5.0)
|
||||||
hashdiff (1.0.1)
|
hashdiff (1.0.1)
|
||||||
i18n (1.8.11)
|
i18n (1.9.1)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
jbuilder (2.11.3)
|
importmap-rails (1.0.2)
|
||||||
|
actionpack (>= 6.0.0)
|
||||||
|
railties (>= 6.0.0)
|
||||||
|
io-wait (0.2.1)
|
||||||
|
jbuilder (2.11.5)
|
||||||
|
actionview (>= 5.0.0)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
launchy (2.5.0)
|
launchy (2.5.0)
|
||||||
addressable (~> 2.7)
|
addressable (~> 2.7)
|
||||||
letter_opener (1.7.0)
|
letter_opener (1.7.0)
|
||||||
launchy (~> 2.2)
|
launchy (~> 2.2)
|
||||||
letter_opener_web (1.4.1)
|
letter_opener_web (2.0.0)
|
||||||
actionmailer (>= 3.2)
|
actionmailer (>= 5.2)
|
||||||
letter_opener (~> 1.0)
|
letter_opener (~> 1.7)
|
||||||
railties (>= 3.2)
|
railties (>= 5.2)
|
||||||
listen (3.7.0)
|
rexml
|
||||||
|
listen (3.7.1)
|
||||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
rb-inotify (~> 0.9, >= 0.9.10)
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
lockbox (0.6.6)
|
lockbox (0.6.8)
|
||||||
loofah (2.12.0)
|
loofah (2.14.0)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.5.9)
|
nokogiri (>= 1.5.9)
|
||||||
mail (2.7.1)
|
mail (2.7.1)
|
||||||
@ -159,74 +160,85 @@ GEM
|
|||||||
matrix (0.4.2)
|
matrix (0.4.2)
|
||||||
method_source (1.0.0)
|
method_source (1.0.0)
|
||||||
mini_mime (1.1.2)
|
mini_mime (1.1.2)
|
||||||
minitest (5.14.4)
|
minitest (5.15.0)
|
||||||
msgpack (1.4.2)
|
net-imap (0.2.3)
|
||||||
multipart-post (2.1.1)
|
digest
|
||||||
|
net-protocol
|
||||||
|
strscan
|
||||||
net-ldap (0.17.0)
|
net-ldap (0.17.0)
|
||||||
|
net-pop (0.1.1)
|
||||||
|
digest
|
||||||
|
net-protocol
|
||||||
|
timeout
|
||||||
|
net-protocol (0.1.2)
|
||||||
|
io-wait
|
||||||
|
timeout
|
||||||
|
net-smtp (0.3.1)
|
||||||
|
digest
|
||||||
|
net-protocol
|
||||||
|
timeout
|
||||||
nio4r (2.5.8)
|
nio4r (2.5.8)
|
||||||
nokogiri (1.12.5-x86_64-linux)
|
nokogiri (1.13.1-x86_64-linux)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
pg (1.2.3)
|
pg (1.2.3)
|
||||||
public_suffix (4.0.6)
|
public_suffix (4.0.6)
|
||||||
puma (4.3.10)
|
puma (4.3.11)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
raabro (1.4.0)
|
raabro (1.4.0)
|
||||||
racc (1.6.0)
|
racc (1.6.0)
|
||||||
rack (2.2.3)
|
rack (2.2.3)
|
||||||
rack-proxy (0.7.0)
|
|
||||||
rack
|
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rails (6.0.4.1)
|
rails (7.0.2.2)
|
||||||
actioncable (= 6.0.4.1)
|
actioncable (= 7.0.2.2)
|
||||||
actionmailbox (= 6.0.4.1)
|
actionmailbox (= 7.0.2.2)
|
||||||
actionmailer (= 6.0.4.1)
|
actionmailer (= 7.0.2.2)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 7.0.2.2)
|
||||||
actiontext (= 6.0.4.1)
|
actiontext (= 7.0.2.2)
|
||||||
actionview (= 6.0.4.1)
|
actionview (= 7.0.2.2)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 7.0.2.2)
|
||||||
activemodel (= 6.0.4.1)
|
activemodel (= 7.0.2.2)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 7.0.2.2)
|
||||||
activestorage (= 6.0.4.1)
|
activestorage (= 7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
bundler (>= 1.3.0)
|
bundler (>= 1.15.0)
|
||||||
railties (= 6.0.4.1)
|
railties (= 7.0.2.2)
|
||||||
sprockets-rails (>= 2.0.0)
|
|
||||||
rails-dom-testing (2.0.3)
|
rails-dom-testing (2.0.3)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
nokogiri (>= 1.6)
|
nokogiri (>= 1.6)
|
||||||
rails-html-sanitizer (1.4.2)
|
rails-html-sanitizer (1.4.2)
|
||||||
loofah (~> 2.3)
|
loofah (~> 2.3)
|
||||||
railties (6.0.4.1)
|
railties (7.0.2.2)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 7.0.2.2)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 7.0.2.2)
|
||||||
method_source
|
method_source
|
||||||
rake (>= 0.8.7)
|
rake (>= 12.2)
|
||||||
thor (>= 0.20.3, < 2.0)
|
thor (~> 1.0)
|
||||||
|
zeitwerk (~> 2.5)
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
rb-fsevent (0.11.0)
|
rb-fsevent (0.11.1)
|
||||||
rb-inotify (0.10.1)
|
rb-inotify (0.10.1)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
redis (4.5.1)
|
redis (4.6.0)
|
||||||
regexp_parser (2.1.1)
|
regexp_parser (2.2.1)
|
||||||
responders (3.0.1)
|
responders (3.0.1)
|
||||||
actionpack (>= 5.0)
|
actionpack (>= 5.0)
|
||||||
railties (>= 5.0)
|
railties (>= 5.0)
|
||||||
rexml (3.2.5)
|
rexml (3.2.5)
|
||||||
rqrcode (2.1.0)
|
rqrcode (2.1.1)
|
||||||
chunky_png (~> 1.0)
|
chunky_png (~> 1.0)
|
||||||
rqrcode_core (~> 1.0)
|
rqrcode_core (~> 1.0)
|
||||||
rqrcode_core (1.2.0)
|
rqrcode_core (1.2.0)
|
||||||
rspec-core (3.10.1)
|
rspec-core (3.11.0)
|
||||||
rspec-support (~> 3.10.0)
|
rspec-support (~> 3.11.0)
|
||||||
rspec-expectations (3.10.1)
|
rspec-expectations (3.11.0)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.10.0)
|
rspec-support (~> 3.11.0)
|
||||||
rspec-mocks (3.10.2)
|
rspec-mocks (3.11.0)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.10.0)
|
rspec-support (~> 3.11.0)
|
||||||
rspec-rails (5.0.2)
|
rspec-rails (5.1.0)
|
||||||
actionpack (>= 5.2)
|
actionpack (>= 5.2)
|
||||||
activesupport (>= 5.2)
|
activesupport (>= 5.2)
|
||||||
railties (>= 5.2)
|
railties (>= 5.2)
|
||||||
@ -234,53 +246,42 @@ GEM
|
|||||||
rspec-expectations (~> 3.10)
|
rspec-expectations (~> 3.10)
|
||||||
rspec-mocks (~> 3.10)
|
rspec-mocks (~> 3.10)
|
||||||
rspec-support (~> 3.10)
|
rspec-support (~> 3.10)
|
||||||
rspec-support (3.10.3)
|
rspec-support (3.11.0)
|
||||||
ruby2_keywords (0.0.5)
|
ruby2_keywords (0.0.5)
|
||||||
rufus-scheduler (3.8.0)
|
rufus-scheduler (3.8.1)
|
||||||
fugit (~> 1.1, >= 1.1.6)
|
fugit (~> 1.1, >= 1.1.6)
|
||||||
sass-rails (6.0.0)
|
sidekiq (6.4.1)
|
||||||
sassc-rails (~> 2.1, >= 2.1.1)
|
|
||||||
sassc (2.4.0)
|
|
||||||
ffi (~> 1.9)
|
|
||||||
sassc-rails (2.1.2)
|
|
||||||
railties (>= 4.0.0)
|
|
||||||
sassc (>= 2.0)
|
|
||||||
sprockets (> 3.0)
|
|
||||||
sprockets-rails
|
|
||||||
tilt
|
|
||||||
sidekiq (6.3.1)
|
|
||||||
connection_pool (>= 2.2.2)
|
connection_pool (>= 2.2.2)
|
||||||
rack (~> 2.0)
|
rack (~> 2.0)
|
||||||
redis (>= 4.2.0)
|
redis (>= 4.2.0)
|
||||||
sidekiq-scheduler (3.1.0)
|
sidekiq-scheduler (3.1.1)
|
||||||
e2mmap
|
e2mmap
|
||||||
redis (>= 3, < 5)
|
redis (>= 3, < 5)
|
||||||
rufus-scheduler (~> 3.2)
|
rufus-scheduler (~> 3.2)
|
||||||
sidekiq (>= 3)
|
sidekiq (>= 3)
|
||||||
thwait
|
thwait
|
||||||
tilt (>= 1.4.0)
|
tilt (>= 1.4.0)
|
||||||
spring (2.1.1)
|
|
||||||
spring-watcher-listen (2.0.1)
|
|
||||||
listen (>= 2.7, < 4.0)
|
|
||||||
spring (>= 1.2, < 3.0)
|
|
||||||
sprockets (4.0.2)
|
sprockets (4.0.2)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
sprockets-rails (3.4.0)
|
sprockets-rails (3.4.2)
|
||||||
actionpack (>= 5.2)
|
actionpack (>= 5.2)
|
||||||
activesupport (>= 5.2)
|
activesupport (>= 5.2)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
sqlite3 (1.4.2)
|
sqlite3 (1.4.2)
|
||||||
thor (1.1.0)
|
stimulus-rails (1.0.2)
|
||||||
thread_safe (0.3.6)
|
railties (>= 6.0.0)
|
||||||
|
strscan (3.0.1)
|
||||||
|
thor (1.2.1)
|
||||||
thwait (0.2.0)
|
thwait (0.2.0)
|
||||||
e2mmap
|
e2mmap
|
||||||
tilt (2.0.10)
|
tilt (2.0.10)
|
||||||
turbolinks (5.2.1)
|
timeout (0.2.0)
|
||||||
turbolinks-source (~> 5.2)
|
turbo-rails (1.0.1)
|
||||||
turbolinks-source (5.2.0)
|
actionpack (>= 6.0.0)
|
||||||
tzinfo (1.2.9)
|
railties (>= 6.0.0)
|
||||||
thread_safe (~> 0.1)
|
tzinfo (2.0.4)
|
||||||
|
concurrent-ruby (~> 1.0)
|
||||||
warden (1.2.9)
|
warden (1.2.9)
|
||||||
rack (>= 2.0.9)
|
rack (>= 2.0.9)
|
||||||
web-console (4.2.0)
|
web-console (4.2.0)
|
||||||
@ -292,31 +293,26 @@ GEM
|
|||||||
addressable (>= 2.8.0)
|
addressable (>= 2.8.0)
|
||||||
crack (>= 0.3.2)
|
crack (>= 0.3.2)
|
||||||
hashdiff (>= 0.4.0, < 2.0.0)
|
hashdiff (>= 0.4.0, < 2.0.0)
|
||||||
webpacker (4.3.0)
|
|
||||||
activesupport (>= 4.2)
|
|
||||||
rack-proxy (>= 0.6.1)
|
|
||||||
railties (>= 4.2)
|
|
||||||
websocket-driver (0.7.5)
|
websocket-driver (0.7.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.5)
|
websocket-extensions (0.1.5)
|
||||||
xpath (3.2.0)
|
xpath (3.2.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
zeitwerk (2.5.1)
|
zeitwerk (2.5.4)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
|
||||||
x86_64-linux
|
x86_64-linux
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
bootsnap (>= 1.4.2)
|
|
||||||
byebug
|
|
||||||
capybara
|
capybara
|
||||||
|
cssbundling-rails
|
||||||
database_cleaner
|
database_cleaner
|
||||||
devise
|
devise
|
||||||
devise_ldap_authenticatable
|
devise_ldap_authenticatable
|
||||||
dotenv-rails
|
dotenv-rails
|
||||||
factory_bot_rails
|
factory_bot_rails
|
||||||
faraday
|
faraday
|
||||||
|
importmap-rails
|
||||||
jbuilder (~> 2.7)
|
jbuilder (~> 2.7)
|
||||||
letter_opener
|
letter_opener
|
||||||
letter_opener_web
|
letter_opener_web
|
||||||
@ -325,21 +321,16 @@ DEPENDENCIES
|
|||||||
net-ldap
|
net-ldap
|
||||||
pg (~> 1.2.3)
|
pg (~> 1.2.3)
|
||||||
puma (~> 4.1)
|
puma (~> 4.1)
|
||||||
rails (~> 6.0.3, >= 6.0.3.4)
|
rails (~> 7.0.2)
|
||||||
rqrcode (~> 2.0)
|
rqrcode (~> 2.0)
|
||||||
rspec-rails
|
rspec-rails
|
||||||
sass-rails (>= 6)
|
|
||||||
sidekiq
|
sidekiq
|
||||||
sidekiq-scheduler
|
sidekiq-scheduler
|
||||||
spring
|
sprockets-rails
|
||||||
spring-watcher-listen (~> 2.0.0)
|
|
||||||
sqlite3 (~> 1.4)
|
sqlite3 (~> 1.4)
|
||||||
turbolinks (~> 5)
|
stimulus-rails
|
||||||
|
turbo-rails
|
||||||
tzinfo-data
|
tzinfo-data
|
||||||
warden
|
warden
|
||||||
web-console (>= 3.3.0)
|
web-console (>= 3.3.0)
|
||||||
webmock
|
webmock
|
||||||
webpacker (~> 4.0)
|
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
2.2.2
|
|
||||||
|
2
Procfile.dev
Normal file
2
Procfile.dev
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
web: bin/rails server -p 3000
|
||||||
|
css: yarn build:css --watch
|
@ -19,9 +19,9 @@ Setting up local database (SQLite):
|
|||||||
bundle exec rails db:create
|
bundle exec rails db:create
|
||||||
bundle exec rails db:migrate
|
bundle exec rails db:migrate
|
||||||
|
|
||||||
Running the dev server:
|
Running the dev server and auto-building CSS files on change:
|
||||||
|
|
||||||
bundle exec rails server
|
bin/dev
|
||||||
|
|
||||||
Running the background workers (requires Redis):
|
Running the background workers (requires Redis):
|
||||||
|
|
||||||
|
0
app/assets/builds/.keep
Normal file
0
app/assets/builds/.keep
Normal file
@ -1,2 +1,3 @@
|
|||||||
//= link_tree ../images
|
//= link_tree ../images
|
||||||
//= link_directory ../stylesheets .css
|
//= link_tree ../../javascript .js
|
||||||
|
//= link_tree ../builds
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
@import "variables";
|
|
||||||
|
|
||||||
body#admin-panel {
|
|
||||||
#wrapper {
|
|
||||||
> header {
|
|
||||||
background: $color-red-bright;
|
|
||||||
background: linear-gradient(35deg, rgba(255,0,255,0.2) 0, rgba(153,12,14,0.9) 100%),
|
|
||||||
url('/img/bg-1.jpg');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-nav {
|
|
||||||
ul {
|
|
||||||
grid-template-columns: repeat(4, 1fr);
|
|
||||||
|
|
||||||
li {
|
|
||||||
a {
|
|
||||||
&.active {
|
|
||||||
border-bottom: 2px solid $color-red-bright;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
/*
|
|
||||||
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
|
||||||
* listed below.
|
|
||||||
*
|
|
||||||
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, 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/SCSS
|
|
||||||
* 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
|
|
||||||
*/
|
|
8
app/assets/stylesheets/application.tailwind.css
Normal file
8
app/assets/stylesheets/application.tailwind.css
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
@import "tailwindcss/base";
|
||||||
|
@import "tailwindcss/components";
|
||||||
|
@import "tailwindcss/utilities";
|
||||||
|
|
||||||
|
@import "components/base";
|
||||||
|
@import "components/buttons";
|
||||||
|
@import "components/forms";
|
||||||
|
@import "components/links";
|
@ -1,6 +1,6 @@
|
|||||||
@layer base {
|
@layer base {
|
||||||
body {
|
body {
|
||||||
line-height: 1;
|
@apply leading-none
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2, h3 {
|
h1, h2, h3 {
|
15
app/assets/stylesheets/components/forms.css
Normal file
15
app/assets/stylesheets/components/forms.css
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
@layer components {
|
||||||
|
input[type=text], input[type=email], input[type=password],
|
||||||
|
input[type=number], select {
|
||||||
|
@apply mt-1 rounded-md bg-gray-100 focus:bg-white
|
||||||
|
border-transparent focus:border-gray-500 focus:ring-0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field_with_errors {
|
||||||
|
@apply inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-msg {
|
||||||
|
@apply text-red-700;
|
||||||
|
}
|
||||||
|
}
|
2
app/assets/stylesheets/legacy.sass.scss
Normal file
2
app/assets/stylesheets/legacy.sass.scss
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@import "legacy/layout";
|
||||||
|
@import "legacy/main_nav";
|
@ -55,6 +55,30 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body#admin-panel {
|
||||||
|
#wrapper {
|
||||||
|
> header {
|
||||||
|
background: $color-red-bright;
|
||||||
|
background: linear-gradient(35deg, rgba(255,0,255,0.2) 0, rgba(153,12,14,0.9) 100%),
|
||||||
|
url('/img/bg-1.jpg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-nav {
|
||||||
|
ul {
|
||||||
|
grid-template-columns: repeat(4, 1fr);
|
||||||
|
|
||||||
|
li {
|
||||||
|
a {
|
||||||
|
&.active {
|
||||||
|
border-bottom: 2px solid $color-red-bright;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.flash-msg {
|
.flash-msg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
3
app/javascript/application.js
Normal file
3
app/javascript/application.js
Normal file
@ -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"
|
@ -1,6 +0,0 @@
|
|||||||
// Action Cable provides the framework to deal with WebSockets in Rails.
|
|
||||||
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
|
|
||||||
|
|
||||||
import { createConsumer } from "@rails/actioncable"
|
|
||||||
|
|
||||||
export default createConsumer()
|
|
@ -1,5 +0,0 @@
|
|||||||
// Load all the channels within this directory and all subdirectories.
|
|
||||||
// Channel files must be named *_channel.js.
|
|
||||||
|
|
||||||
const channels = require.context('.', true, /_channel\.js$/)
|
|
||||||
channels.keys().forEach(channels)
|
|
9
app/javascript/controllers/application.js
Normal file
9
app/javascript/controllers/application.js
Normal file
@ -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 }
|
7
app/javascript/controllers/hello_controller.js
Normal file
7
app/javascript/controllers/hello_controller.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { Controller } from "@hotwired/stimulus"
|
||||||
|
|
||||||
|
export default class extends Controller {
|
||||||
|
connect() {
|
||||||
|
this.element.textContent = "Hello World!"
|
||||||
|
}
|
||||||
|
}
|
11
app/javascript/controllers/index.js
Normal file
11
app/javascript/controllers/index.js
Normal file
@ -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)
|
@ -1,16 +0,0 @@
|
|||||||
// This file is automatically compiled by Webpack, along with any other files
|
|
||||||
// present in this directory. You're encouraged to place your actual application logic in
|
|
||||||
// a relevant structure within app/javascript and only use these pack files to reference
|
|
||||||
// that code so it'll be compiled.
|
|
||||||
|
|
||||||
require("@rails/ujs").start()
|
|
||||||
require("turbolinks").start()
|
|
||||||
require("channels")
|
|
||||||
|
|
||||||
import "stylesheets/application"
|
|
||||||
// Uncomment to copy all static images under ../images to the output folder and reference
|
|
||||||
// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)
|
|
||||||
// or the `imagePath` JavaScript helper below.
|
|
||||||
//
|
|
||||||
// const images = require.context('../images', true)
|
|
||||||
// const imagePath = (name) => images(name, true)
|
|
@ -1,9 +0,0 @@
|
|||||||
// version 6
|
|
||||||
@import "tailwindcss/base";
|
|
||||||
@import "tailwindcss/components";
|
|
||||||
@import "tailwindcss/utilities";
|
|
||||||
|
|
||||||
@import "base";
|
|
||||||
@import "buttons";
|
|
||||||
@import "forms";
|
|
||||||
@import "links";
|
|
@ -1,17 +0,0 @@
|
|||||||
@layer components {
|
|
||||||
form {
|
|
||||||
input[type=text], input[type=email], input[type=password],
|
|
||||||
input[type=number], select {
|
|
||||||
@apply mt-1 rounded-md bg-gray-100 focus:bg-white
|
|
||||||
border-transparent focus:border-gray-500 focus:ring-0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.field_with_errors {
|
|
||||||
@apply inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.error-msg {
|
|
||||||
@apply text-red-700;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
const defaultTheme = require('tailwindcss/defaultTheme')
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
purge: {
|
|
||||||
layers: ['base', 'components', 'utilities'],
|
|
||||||
content: [
|
|
||||||
"./app/**/*.html.erb",
|
|
||||||
"./app/helpers/**/*.rb",
|
|
||||||
"./app/javascript/**/*.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
darkMode: false, // or 'media' or 'class'
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
fontFamily: {
|
|
||||||
sans: ['Open Sans', 'sans-serif']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
variants: {
|
|
||||||
extend: {},
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
require('@tailwindcss/forms')
|
|
||||||
],
|
|
||||||
}
|
|
@ -10,8 +10,8 @@ class User < ApplicationRecord
|
|||||||
validates_uniqueness_of :email
|
validates_uniqueness_of :email
|
||||||
validates :email, email: true
|
validates :email, email: true
|
||||||
|
|
||||||
encrypts :ln_login
|
lockbox_encrypts :ln_login
|
||||||
encrypts :ln_password
|
lockbox_encrypts :ln_password
|
||||||
|
|
||||||
# Include default devise modules. Others available are:
|
# Include default devise modules. Others available are:
|
||||||
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
|
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
|
||||||
|
@ -49,4 +49,18 @@ class CreateAccount < ApplicationService
|
|||||||
def create_lndhub_wallet(user)
|
def create_lndhub_wallet(user)
|
||||||
CreateLndhubWalletJob.perform_later(user)
|
CreateLndhubWalletJob.perform_later(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def exchange_xmpp_contacts_between_inviter_and_invitee
|
||||||
|
ejabberd = EjabberdApiClient.new
|
||||||
|
|
||||||
|
EjabberdApiClient.add_roster_item({
|
||||||
|
"localuser": @username,
|
||||||
|
"localhost": @domain,
|
||||||
|
"user": @inviter.cn,
|
||||||
|
"host": @inviter.ou,
|
||||||
|
"nick": @username,
|
||||||
|
"group": "Friends",
|
||||||
|
"subs": "both"
|
||||||
|
})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
<%= csp_meta_tag %>
|
<%= csp_meta_tag %>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link href="https://assets.kosmos.org/fonts/open-sans/open-sans.css" rel="stylesheet">
|
<link href="https://assets.kosmos.org/fonts/open-sans/open-sans.css" rel="stylesheet">
|
||||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'legacy', "data-turbo-track": "reload" %>
|
||||||
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'application', "data-turbo-track": "reload" %>
|
||||||
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
<%= javascript_importmap_tags %>
|
||||||
</head>
|
</head>
|
||||||
<body id="admin-panel">
|
<body id="admin-panel">
|
||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
<%= csp_meta_tag %>
|
<%= csp_meta_tag %>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link href="https://assets.kosmos.org/fonts/open-sans/open-sans.css" rel="stylesheet">
|
<link href="https://assets.kosmos.org/fonts/open-sans/open-sans.css" rel="stylesheet">
|
||||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'legacy', "data-turbo-track": "reload" %>
|
||||||
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'application', "data-turbo-track": "reload" %>
|
||||||
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
<%= javascript_importmap_tags %>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
<%= csp_meta_tag %>
|
<%= csp_meta_tag %>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link href="https://assets.kosmos.org/fonts/open-sans/open-sans.css" rel="stylesheet">
|
<link href="https://assets.kosmos.org/fonts/open-sans/open-sans.css" rel="stylesheet">
|
||||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'legacy', "data-turbo-track": "reload" %>
|
||||||
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'application', "data-turbo-track": "reload" %>
|
||||||
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
<%= javascript_importmap_tags %>
|
||||||
</head>
|
</head>
|
||||||
<body class="layout-signup">
|
<body class="layout-signup">
|
||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
9
bin/dev
Executable file
9
bin/dev
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if ! command -v foreman &> /dev/null
|
||||||
|
then
|
||||||
|
echo "Installing foreman..."
|
||||||
|
gem install foreman
|
||||||
|
fi
|
||||||
|
|
||||||
|
foreman start -f Procfile.dev
|
29
bin/rspec
Executable file
29
bin/rspec
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# This file was generated by Bundler.
|
||||||
|
#
|
||||||
|
# The application 'rspec' is installed as part of a gem, and
|
||||||
|
# this file is here to facilitate running it.
|
||||||
|
#
|
||||||
|
|
||||||
|
require "pathname"
|
||||||
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
||||||
|
Pathname.new(__FILE__).realpath)
|
||||||
|
|
||||||
|
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
||||||
|
|
||||||
|
if File.file?(bundle_binstub)
|
||||||
|
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
||||||
|
load(bundle_binstub)
|
||||||
|
else
|
||||||
|
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||||
|
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require "rubygems"
|
||||||
|
require "bundler/setup"
|
||||||
|
|
||||||
|
load Gem.bin_path("rspec-core", "rspec")
|
18
bin/webpack
18
bin/webpack
@ -1,18 +0,0 @@
|
|||||||
#!/usr/bin/env ruby
|
|
||||||
|
|
||||||
ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
|
|
||||||
ENV["NODE_ENV"] ||= "development"
|
|
||||||
|
|
||||||
require "pathname"
|
|
||||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
||||||
Pathname.new(__FILE__).realpath)
|
|
||||||
|
|
||||||
require "bundler/setup"
|
|
||||||
|
|
||||||
require "webpacker"
|
|
||||||
require "webpacker/webpack_runner"
|
|
||||||
|
|
||||||
APP_ROOT = File.expand_path("..", __dir__)
|
|
||||||
Dir.chdir(APP_ROOT) do
|
|
||||||
Webpacker::WebpackRunner.run(ARGV)
|
|
||||||
end
|
|
@ -1,18 +0,0 @@
|
|||||||
#!/usr/bin/env ruby
|
|
||||||
|
|
||||||
ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
|
|
||||||
ENV["NODE_ENV"] ||= "development"
|
|
||||||
|
|
||||||
require "pathname"
|
|
||||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
||||||
Pathname.new(__FILE__).realpath)
|
|
||||||
|
|
||||||
require "bundler/setup"
|
|
||||||
|
|
||||||
require "webpacker"
|
|
||||||
require "webpacker/dev_server_runner"
|
|
||||||
|
|
||||||
APP_ROOT = File.expand_path("..", __dir__)
|
|
||||||
Dir.chdir(APP_ROOT) do
|
|
||||||
Webpacker::DevServerRunner.run(ARGV)
|
|
||||||
end
|
|
@ -42,5 +42,7 @@ module Akkounts
|
|||||||
|
|
||||||
config.active_job.queue_adapter = :sidekiq
|
config.active_job.queue_adapter = :sidekiq
|
||||||
config.action_mailer.deliver_later_queue_name = nil # use "default" queue
|
config.action_mailer.deliver_later_queue_name = nil # use "default" queue
|
||||||
|
|
||||||
|
config.active_record.legacy_connection_handling = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||||
|
|
||||||
require 'bundler/setup' # Set up gems listed in the Gemfile.
|
require "bundler/setup" # Set up gems listed in the Gemfile.
|
||||||
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
|
|
||||||
|
7
config/importmap.rb
Normal file
7
config/importmap.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Pin npm packages by running ./bin/importmap
|
||||||
|
|
||||||
|
pin "application", preload: true
|
||||||
|
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true
|
||||||
|
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true
|
||||||
|
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true
|
||||||
|
pin_all_from "app/javascript/controllers", under: "controllers"
|
@ -26,7 +26,7 @@ authorizations: &AUTHORIZATIONS
|
|||||||
## Environment
|
## Environment
|
||||||
|
|
||||||
development:
|
development:
|
||||||
host: 192.168.33.10
|
host: 192.168.56.5
|
||||||
port: 389
|
port: 389
|
||||||
attribute: cn
|
attribute: cn
|
||||||
base: ou=kosmos.org,cn=users,dc=kosmos,dc=org
|
base: ou=kosmos.org,cn=users,dc=kosmos,dc=org
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
|
|
||||||
|
|
||||||
const environment = require('./environment')
|
|
||||||
|
|
||||||
module.exports = environment.toWebpackConfig()
|
|
@ -1,3 +0,0 @@
|
|||||||
const { environment } = require('@rails/webpacker')
|
|
||||||
|
|
||||||
module.exports = environment
|
|
@ -1,5 +0,0 @@
|
|||||||
process.env.NODE_ENV = process.env.NODE_ENV || 'production'
|
|
||||||
|
|
||||||
const environment = require('./environment')
|
|
||||||
|
|
||||||
module.exports = environment.toWebpackConfig()
|
|
@ -1,5 +0,0 @@
|
|||||||
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
|
|
||||||
|
|
||||||
const environment = require('./environment')
|
|
||||||
|
|
||||||
module.exports = environment.toWebpackConfig()
|
|
@ -1,96 +0,0 @@
|
|||||||
# Note: You must restart bin/webpack-dev-server for changes to take effect
|
|
||||||
|
|
||||||
default: &default
|
|
||||||
source_path: app/javascript
|
|
||||||
source_entry_path: packs
|
|
||||||
public_root_path: public
|
|
||||||
public_output_path: packs
|
|
||||||
cache_path: tmp/cache/webpacker
|
|
||||||
check_yarn_integrity: false
|
|
||||||
webpack_compile_output: true
|
|
||||||
|
|
||||||
# Additional paths webpack should lookup modules
|
|
||||||
# ['app/assets', 'engine/foo/app/assets']
|
|
||||||
resolved_paths: []
|
|
||||||
|
|
||||||
# Reload manifest.json on all requests so we reload latest compiled packs
|
|
||||||
cache_manifest: false
|
|
||||||
|
|
||||||
# Extract and emit a css file
|
|
||||||
extract_css: false
|
|
||||||
|
|
||||||
static_assets_extensions:
|
|
||||||
- .jpg
|
|
||||||
- .jpeg
|
|
||||||
- .png
|
|
||||||
- .gif
|
|
||||||
- .tiff
|
|
||||||
- .ico
|
|
||||||
- .svg
|
|
||||||
- .eot
|
|
||||||
- .otf
|
|
||||||
- .ttf
|
|
||||||
- .woff
|
|
||||||
- .woff2
|
|
||||||
|
|
||||||
extensions:
|
|
||||||
- .mjs
|
|
||||||
- .js
|
|
||||||
- .sass
|
|
||||||
- .scss
|
|
||||||
- .css
|
|
||||||
- .module.sass
|
|
||||||
- .module.scss
|
|
||||||
- .module.css
|
|
||||||
- .png
|
|
||||||
- .svg
|
|
||||||
- .gif
|
|
||||||
- .jpeg
|
|
||||||
- .jpg
|
|
||||||
|
|
||||||
development:
|
|
||||||
<<: *default
|
|
||||||
compile: true
|
|
||||||
|
|
||||||
# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
|
|
||||||
check_yarn_integrity: true
|
|
||||||
|
|
||||||
# Reference: https://webpack.js.org/configuration/dev-server/
|
|
||||||
dev_server:
|
|
||||||
https: false
|
|
||||||
host: localhost
|
|
||||||
port: 3035
|
|
||||||
public: localhost:3035
|
|
||||||
hmr: false
|
|
||||||
# Inline should be set to true if using HMR
|
|
||||||
inline: true
|
|
||||||
overlay: true
|
|
||||||
compress: true
|
|
||||||
disable_host_check: true
|
|
||||||
use_local_ip: false
|
|
||||||
quiet: false
|
|
||||||
pretty: false
|
|
||||||
headers:
|
|
||||||
'Access-Control-Allow-Origin': '*'
|
|
||||||
watch_options:
|
|
||||||
ignored: '**/node_modules/**'
|
|
||||||
|
|
||||||
|
|
||||||
test:
|
|
||||||
<<: *default
|
|
||||||
compile: true
|
|
||||||
|
|
||||||
# Compile test packs to a separate directory
|
|
||||||
public_output_path: packs-test
|
|
||||||
|
|
||||||
production:
|
|
||||||
<<: *default
|
|
||||||
|
|
||||||
# Production depends on precompilation of packs prior to booting for performance.
|
|
||||||
compile: false
|
|
||||||
|
|
||||||
# Extract and emit a css file
|
|
||||||
extract_css: true
|
|
||||||
|
|
||||||
# Cache manifest.json for performance
|
|
||||||
cache_manifest: true
|
|
25
package.json
25
package.json
@ -2,17 +2,20 @@
|
|||||||
"name": "akkounts",
|
"name": "akkounts",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@rails/actioncable": "^6.0.0",
|
"@tailwindcss/forms": "^0.4.0",
|
||||||
"@rails/ujs": "^6.0.0",
|
"autoprefixer": "^10.4.2",
|
||||||
"@rails/webpacker": "4.3.0",
|
"postcss": "^8.4.6",
|
||||||
"@tailwindcss/forms": "^0.2.1",
|
"postcss-flexbugs-fixes": "^5.0.2",
|
||||||
"autoprefixer": "^9",
|
"postcss-import": "^14.0.2",
|
||||||
"postcss": "^7",
|
"postcss-nested": "^5.0.6",
|
||||||
"tailwindcss": "npm:@tailwindcss/postcss7-compat",
|
"postcss-preset-env": "^7.3.1",
|
||||||
"turbolinks": "^5.2.0"
|
"sass": "^1.49.7",
|
||||||
|
"tailwindcss": "^3.0.22"
|
||||||
},
|
},
|
||||||
"version": "0.1.0",
|
"version": "0.2.0",
|
||||||
"devDependencies": {
|
"scripts": {
|
||||||
"webpack-dev-server": "^3.11.0"
|
"build:css:sass": "sass ./app/assets/stylesheets/legacy.sass.scss ./app/assets/builds/legacy.css --no-source-map --load-path=node_modules",
|
||||||
|
"build:css:tailwind": "tailwindcss --postcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application.css",
|
||||||
|
"build:css": "yarn run build:css:sass && yarn run build:css:tailwind"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
require("tailwindcss")("./app/javascript/stylesheets/tailwind.config.js"),
|
require("autoprefixer"),
|
||||||
require('postcss-import'),
|
require("postcss-import"),
|
||||||
require('postcss-flexbugs-fixes'),
|
require("tailwindcss"),
|
||||||
require('postcss-preset-env')({
|
require("postcss-nested"),
|
||||||
|
require("postcss-flexbugs-fixes"),
|
||||||
|
require("postcss-preset-env")({
|
||||||
autoprefixer: {
|
autoprefixer: {
|
||||||
flexbox: 'no-2009'
|
flexbox: "no-2009",
|
||||||
},
|
},
|
||||||
stage: 3
|
stage: 3,
|
||||||
})
|
}),
|
||||||
]
|
],
|
||||||
}
|
};
|
||||||
|
@ -79,7 +79,7 @@ RSpec.describe "Signup", type: :feature do
|
|||||||
|
|
||||||
fill_in "user_email", with: "tony@"
|
fill_in "user_email", with: "tony@"
|
||||||
click_button "Continue"
|
click_button "Continue"
|
||||||
expect(page).to have_content("Email is not a valid address")
|
expect(page).to have_content("Email is invalid")
|
||||||
fill_in "user_email", with: ""
|
fill_in "user_email", with: ""
|
||||||
click_button "Continue"
|
click_button "Continue"
|
||||||
expect(page).to have_content("Email can't be blank")
|
expect(page).to have_content("Email can't be blank")
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the DashboardHelper. For example:
|
|
||||||
#
|
|
||||||
# describe DashboardHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
RSpec.describe DashboardHelper, type: :helper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
@ -1,15 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the DonationsHelper. For example:
|
|
||||||
#
|
|
||||||
# describe DonationsHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
RSpec.describe DonationsHelper, type: :helper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
@ -1,15 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the InvitationsHelper. For example:
|
|
||||||
#
|
|
||||||
# describe InvitationsHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
RSpec.describe InvitationsHelper, type: :helper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
@ -1,15 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the LdapUsersHelper. For example:
|
|
||||||
#
|
|
||||||
# describe LdapUsersHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
RSpec.describe LdapUsersHelper, type: :helper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
@ -1,15 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the SettingsHelper. For example:
|
|
||||||
#
|
|
||||||
# describe SettingsHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
RSpec.describe SettingsHelper, type: :helper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
@ -1,15 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
# Specs in this file have access to a helper object that includes
|
|
||||||
# the SignupHelper. For example:
|
|
||||||
#
|
|
||||||
# describe SignupHelper do
|
|
||||||
# describe "string concat" do
|
|
||||||
# it "concats two strings with spaces" do
|
|
||||||
# expect(helper.concat_strings("this","that")).to eq("this that")
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
RSpec.describe SignupHelper, type: :helper do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
@ -4,7 +4,8 @@ RSpec.describe CreateLdapUserJob, type: :job do
|
|||||||
let(:ldap_client_mock) { instance_double(Net::LDAP) }
|
let(:ldap_client_mock) { instance_double(Net::LDAP) }
|
||||||
|
|
||||||
subject(:job) {
|
subject(:job) {
|
||||||
described_class.any_instance.stub(:ldap_client).and_return(ldap_client_mock)
|
allow_any_instance_of(described_class).to receive(:ldap_client).and_return(ldap_client_mock)
|
||||||
|
|
||||||
described_class.perform_later(
|
described_class.perform_later(
|
||||||
'halfinney', 'kosmos.org', 'halfinney@example.com',
|
'halfinney', 'kosmos.org', 'halfinney@example.com',
|
||||||
'remember-remember-the-5th-of-november'
|
'remember-remember-the-5th-of-november'
|
||||||
@ -12,7 +13,11 @@ RSpec.describe CreateLdapUserJob, type: :job do
|
|||||||
}
|
}
|
||||||
|
|
||||||
it "creates a new document with the correct attributes" do
|
it "creates a new document with the correct attributes" do
|
||||||
ldap_client_mock.should_receive(:add).with(
|
allow(ldap_client_mock).to receive(:add) # spy on mock
|
||||||
|
|
||||||
|
perform_enqueued_jobs { job }
|
||||||
|
|
||||||
|
expect(ldap_client_mock).to have_received(:add).with(
|
||||||
dn: "cn=halfinney,ou=kosmos.org,cn=users,dc=kosmos,dc=org",
|
dn: "cn=halfinney,ou=kosmos.org,cn=users,dc=kosmos,dc=org",
|
||||||
attributes: {
|
attributes: {
|
||||||
objectclass: ["top", "account", "person", "extensibleObject"],
|
objectclass: ["top", "account", "person", "extensibleObject"],
|
||||||
@ -23,8 +28,6 @@ RSpec.describe CreateLdapUserJob, type: :job do
|
|||||||
userPassword: "remember-remember-the-5th-of-november"
|
userPassword: "remember-remember-the-5th-of-november"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
perform_enqueued_jobs { job }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
after do
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Donation, type: :model do
|
|
||||||
pending "add some examples to (or delete) #{__FILE__}"
|
|
||||||
end
|
|
17
tailwind.config.js
Normal file
17
tailwind.config.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
module.exports = {
|
||||||
|
content: [
|
||||||
|
'./app/views/**/*.html.erb',
|
||||||
|
'./app/helpers/**/*.rb',
|
||||||
|
'./app/javascript/**/*.js'
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
fontFamily: {
|
||||||
|
sans: ['Open Sans', 'sans-serif']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
require('@tailwindcss/forms')
|
||||||
|
],
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user