Progress
This commit is contained in:
parent
f9c1246fac
commit
6c13144fbc
625
Gemfile.lock
625
Gemfile.lock
|
@ -15,121 +15,120 @@ GIT
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actioncable (5.2.3)
|
actioncable (5.2.4.4)
|
||||||
actionpack (= 5.2.3)
|
actionpack (= 5.2.4.4)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
actionmailer (5.2.3)
|
actionmailer (5.2.4.4)
|
||||||
actionpack (= 5.2.3)
|
actionpack (= 5.2.4.4)
|
||||||
actionview (= 5.2.3)
|
actionview (= 5.2.4.4)
|
||||||
activejob (= 5.2.3)
|
activejob (= 5.2.4.4)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
actionpack (5.2.3)
|
actionpack (5.2.4.4)
|
||||||
actionview (= 5.2.3)
|
actionview (= 5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
rack (~> 2.0)
|
rack (~> 2.0, >= 2.0.8)
|
||||||
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.0.2)
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||||
actionview (5.2.3)
|
actionview (5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
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.0, >= 1.0.3)
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||||
active_model_serializers (0.10.9)
|
active_model_serializers (0.10.11)
|
||||||
actionpack (>= 4.1, < 6)
|
actionpack (>= 4.1, < 6.1)
|
||||||
activemodel (>= 4.1, < 6)
|
activemodel (>= 4.1, < 6.1)
|
||||||
case_transform (>= 0.2)
|
case_transform (>= 0.2)
|
||||||
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
|
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
|
||||||
active_record_query_trace (1.6.2)
|
active_record_query_trace (1.8)
|
||||||
activejob (5.2.3)
|
activejob (5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (5.2.3)
|
activemodel (5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
activerecord (5.2.3)
|
activerecord (5.2.4.4)
|
||||||
activemodel (= 5.2.3)
|
activemodel (= 5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
arel (>= 9.0)
|
arel (>= 9.0)
|
||||||
activestorage (5.2.3)
|
activestorage (5.2.4.4)
|
||||||
actionpack (= 5.2.3)
|
actionpack (= 5.2.4.4)
|
||||||
activerecord (= 5.2.3)
|
activerecord (= 5.2.4.4)
|
||||||
marcel (~> 0.3.1)
|
marcel (~> 0.3.1)
|
||||||
activesupport (5.2.3)
|
activesupport (5.2.4.4)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
addressable (2.6.0)
|
addressable (2.7.0)
|
||||||
public_suffix (>= 2.0.2, < 4.0)
|
public_suffix (>= 2.0.2, < 5.0)
|
||||||
airbrussh (1.3.0)
|
airbrussh (1.4.0)
|
||||||
sshkit (>= 1.6.1, != 1.7.0)
|
sshkit (>= 1.6.1, != 1.7.0)
|
||||||
annotate (2.7.5)
|
annotate (2.7.5)
|
||||||
activerecord (>= 3.2, < 7.0)
|
activerecord (>= 3.2, < 7.0)
|
||||||
rake (>= 10.4, < 13.0)
|
rake (>= 10.4, < 13.0)
|
||||||
arel (9.0.0)
|
arel (9.0.0)
|
||||||
ast (2.4.0)
|
ast (2.4.1)
|
||||||
attr_encrypted (3.1.0)
|
attr_encrypted (3.1.0)
|
||||||
encryptor (~> 3.0.0)
|
encryptor (~> 3.0.0)
|
||||||
av (0.9.0)
|
av (0.9.0)
|
||||||
cocaine (~> 0.5.3)
|
cocaine (~> 0.5.3)
|
||||||
aws-eventstream (1.0.3)
|
aws-eventstream (1.1.0)
|
||||||
aws-partitions (1.169.0)
|
aws-partitions (1.404.0)
|
||||||
aws-sdk-core (3.54.0)
|
aws-sdk-core (3.110.0)
|
||||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
aws-partitions (~> 1.0)
|
aws-partitions (~> 1, >= 1.239.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
jmespath (~> 1.0)
|
jmespath (~> 1.0)
|
||||||
aws-sdk-kms (1.21.0)
|
aws-sdk-kms (1.39.0)
|
||||||
aws-sdk-core (~> 3, >= 3.53.0)
|
aws-sdk-core (~> 3, >= 3.109.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sdk-s3 (1.41.0)
|
aws-sdk-s3 (1.86.0)
|
||||||
aws-sdk-core (~> 3, >= 3.53.0)
|
aws-sdk-core (~> 3, >= 3.109.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sigv4 (1.1.0)
|
aws-sigv4 (1.2.2)
|
||||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
bcrypt (3.1.12)
|
bcrypt (3.1.16)
|
||||||
benchmark-ips (2.7.2)
|
benchmark-ips (2.8.4)
|
||||||
better_errors (2.5.1)
|
better_errors (2.9.1)
|
||||||
coderay (>= 1.0.0)
|
coderay (>= 1.0.0)
|
||||||
erubi (>= 1.0.0)
|
erubi (>= 1.0.0)
|
||||||
rack (>= 0.9.0)
|
rack (>= 0.9.0)
|
||||||
binding_of_caller (0.8.0)
|
binding_of_caller (0.8.0)
|
||||||
debug_inspector (>= 0.0.1)
|
debug_inspector (>= 0.0.1)
|
||||||
blurhash (0.1.3)
|
blurhash (0.1.4)
|
||||||
ffi (~> 1.10.0)
|
ffi (~> 1.10.0)
|
||||||
bootsnap (1.4.4)
|
bootsnap (1.5.1)
|
||||||
msgpack (~> 1.0)
|
msgpack (~> 1.0)
|
||||||
brakeman (4.5.1)
|
brakeman (4.10.0)
|
||||||
browser (2.5.3)
|
browser (5.1.0)
|
||||||
builder (3.2.3)
|
builder (3.2.4)
|
||||||
bullet (6.0.0)
|
bullet (6.1.0)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
uniform_notifier (~> 1.11)
|
uniform_notifier (~> 1.11)
|
||||||
bundler-audit (0.6.1)
|
bundler-audit (0.7.0.1)
|
||||||
bundler (>= 1.2.0, < 3)
|
bundler (>= 1.2.0, < 3)
|
||||||
thor (~> 0.18)
|
thor (>= 0.18, < 2)
|
||||||
byebug (11.0.0)
|
byebug (11.1.3)
|
||||||
capistrano (3.11.0)
|
capistrano (3.14.1)
|
||||||
airbrussh (>= 1.0.0)
|
airbrussh (>= 1.0.0)
|
||||||
i18n
|
i18n
|
||||||
rake (>= 10.0.0)
|
rake (>= 10.0.0)
|
||||||
sshkit (>= 1.9.0)
|
sshkit (>= 1.9.0)
|
||||||
capistrano-bundler (1.3.0)
|
capistrano-bundler (2.0.1)
|
||||||
capistrano (~> 3.1)
|
capistrano (~> 3.1)
|
||||||
sshkit (~> 1.2)
|
capistrano-rails (1.6.1)
|
||||||
capistrano-rails (1.4.0)
|
|
||||||
capistrano (~> 3.1)
|
capistrano (~> 3.1)
|
||||||
capistrano-bundler (~> 1.1)
|
capistrano-bundler (>= 1.1, < 3)
|
||||||
capistrano-rbenv (2.1.4)
|
capistrano-rbenv (2.2.0)
|
||||||
capistrano (~> 3.1)
|
capistrano (~> 3.1)
|
||||||
sshkit (~> 1.3)
|
sshkit (~> 1.3)
|
||||||
capistrano-yarn (2.0.2)
|
capistrano-yarn (2.0.2)
|
||||||
capistrano (~> 3.0)
|
capistrano (~> 3.0)
|
||||||
capybara (3.22.0)
|
capybara (3.34.0)
|
||||||
addressable
|
addressable
|
||||||
mini_mime (>= 0.1.3)
|
mini_mime (>= 0.1.3)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
|
@ -139,81 +138,83 @@ GEM
|
||||||
xpath (~> 3.2)
|
xpath (~> 3.2)
|
||||||
case_transform (0.2)
|
case_transform (0.2)
|
||||||
activesupport
|
activesupport
|
||||||
charlock_holmes (0.7.6)
|
charlock_holmes (0.7.7)
|
||||||
chewy (5.0.0)
|
chewy (5.1.0)
|
||||||
activesupport (>= 4.0)
|
activesupport (>= 4.0)
|
||||||
elasticsearch (>= 2.0.0)
|
elasticsearch (>= 2.0.0)
|
||||||
elasticsearch-dsl
|
elasticsearch-dsl
|
||||||
chunky_png (1.3.10)
|
chunky_png (1.3.14)
|
||||||
cld3 (3.2.4)
|
cld3 (3.2.6)
|
||||||
ffi (>= 1.1.0, < 1.11.0)
|
ffi (>= 1.1.0, < 1.12.0)
|
||||||
climate_control (0.2.0)
|
climate_control (0.2.0)
|
||||||
cocaine (0.5.8)
|
cocaine (0.5.8)
|
||||||
climate_control (>= 0.0.3, < 1.0)
|
climate_control (>= 0.0.3, < 1.0)
|
||||||
coderay (1.1.2)
|
coderay (1.1.3)
|
||||||
concurrent-ruby (1.1.5)
|
concurrent-ruby (1.1.7)
|
||||||
connection_pool (2.2.3)
|
connection_pool (2.2.3)
|
||||||
crack (0.4.3)
|
crack (0.4.4)
|
||||||
safe_yaml (~> 1.0.0)
|
crass (1.0.6)
|
||||||
crass (1.0.4)
|
css_parser (1.7.1)
|
||||||
css_parser (1.6.0)
|
|
||||||
addressable
|
addressable
|
||||||
debug_inspector (0.0.3)
|
debug_inspector (0.0.3)
|
||||||
derailed_benchmarks (1.3.5)
|
derailed_benchmarks (1.8.1)
|
||||||
benchmark-ips (~> 2)
|
benchmark-ips (~> 2)
|
||||||
get_process_mem (~> 0)
|
get_process_mem (~> 0)
|
||||||
heapy (~> 0)
|
heapy (~> 0)
|
||||||
memory_profiler (~> 0)
|
memory_profiler (~> 0)
|
||||||
|
mini_histogram (>= 0.2.1)
|
||||||
rack (>= 1)
|
rack (>= 1)
|
||||||
rake (> 10, < 13)
|
rake (> 10, < 14)
|
||||||
thor (~> 0.19)
|
ruby-statistics (>= 2.1)
|
||||||
devise (4.6.2)
|
thor (>= 0.19, < 2)
|
||||||
|
devise (4.7.3)
|
||||||
bcrypt (~> 3.0)
|
bcrypt (~> 3.0)
|
||||||
orm_adapter (~> 0.1)
|
orm_adapter (~> 0.1)
|
||||||
railties (>= 4.1.0, < 6.0)
|
railties (>= 4.1.0)
|
||||||
responders
|
responders
|
||||||
warden (~> 1.2.3)
|
warden (~> 1.2.3)
|
||||||
devise-two-factor (3.0.3)
|
devise-two-factor (3.1.0)
|
||||||
activesupport (< 5.3)
|
activesupport (< 6.1)
|
||||||
attr_encrypted (>= 1.3, < 4, != 2)
|
attr_encrypted (>= 1.3, < 4, != 2)
|
||||||
devise (~> 4.0)
|
devise (~> 4.0)
|
||||||
railties (< 5.3)
|
railties (< 6.1)
|
||||||
rotp (~> 2.0)
|
rotp (~> 2.0)
|
||||||
devise_pam_authenticatable2 (9.2.0)
|
devise_pam_authenticatable2 (9.2.0)
|
||||||
devise (>= 4.0.0)
|
devise (>= 4.0.0)
|
||||||
rpam2 (~> 4.0)
|
rpam2 (~> 4.0)
|
||||||
diff-lcs (1.3)
|
diff-lcs (1.4.4)
|
||||||
docile (1.3.0)
|
docile (1.3.2)
|
||||||
domain_name (0.5.20180417)
|
domain_name (0.5.20190701)
|
||||||
unf (>= 0.0.5, < 1.0.0)
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
doorkeeper (5.1.0)
|
doorkeeper (5.4.0)
|
||||||
railties (>= 5)
|
railties (>= 5)
|
||||||
dotenv (2.7.2)
|
dotenv (2.7.6)
|
||||||
dotenv-rails (2.7.2)
|
dotenv-rails (2.7.6)
|
||||||
dotenv (= 2.7.2)
|
dotenv (= 2.7.6)
|
||||||
railties (>= 3.2, < 6.1)
|
railties (>= 3.2)
|
||||||
elasticsearch (6.0.2)
|
e2mmap (0.1.0)
|
||||||
elasticsearch-api (= 6.0.2)
|
elasticsearch (7.10.0)
|
||||||
elasticsearch-transport (= 6.0.2)
|
elasticsearch-api (= 7.10.0)
|
||||||
elasticsearch-api (6.0.2)
|
elasticsearch-transport (= 7.10.0)
|
||||||
|
elasticsearch-api (7.10.0)
|
||||||
multi_json
|
multi_json
|
||||||
elasticsearch-dsl (0.1.5)
|
elasticsearch-dsl (0.1.9)
|
||||||
elasticsearch-transport (6.0.2)
|
elasticsearch-transport (7.10.0)
|
||||||
faraday
|
faraday (~> 1)
|
||||||
multi_json
|
multi_json
|
||||||
encryptor (3.0.0)
|
encryptor (3.0.0)
|
||||||
equatable (0.5.0)
|
erubi (1.10.0)
|
||||||
erubi (1.8.0)
|
et-orbi (1.2.4)
|
||||||
et-orbi (1.1.6)
|
|
||||||
tzinfo
|
tzinfo
|
||||||
excon (0.62.0)
|
excon (0.78.1)
|
||||||
fabrication (2.20.2)
|
fabrication (2.21.1)
|
||||||
faker (1.9.3)
|
faker (1.9.6)
|
||||||
i18n (>= 0.7)
|
i18n (>= 0.7)
|
||||||
faraday (0.15.0)
|
faraday (1.1.0)
|
||||||
multipart-post (>= 1.2, < 3)
|
multipart-post (>= 1.2, < 3)
|
||||||
|
ruby2_keywords
|
||||||
fast_blank (1.0.0)
|
fast_blank (1.0.0)
|
||||||
fastimage (2.1.5)
|
fastimage (2.2.0)
|
||||||
ffi (1.10.0)
|
ffi (1.10.0)
|
||||||
fog-core (2.1.0)
|
fog-core (2.1.0)
|
||||||
builder
|
builder
|
||||||
|
@ -223,18 +224,19 @@ GEM
|
||||||
fog-json (1.2.0)
|
fog-json (1.2.0)
|
||||||
fog-core
|
fog-core
|
||||||
multi_json (~> 1.10)
|
multi_json (~> 1.10)
|
||||||
fog-openstack (0.3.7)
|
fog-openstack (0.3.10)
|
||||||
fog-core (>= 1.45, <= 2.1.0)
|
fog-core (>= 1.45, <= 2.1.0)
|
||||||
fog-json (>= 1.0)
|
fog-json (>= 1.0)
|
||||||
ipaddress (>= 0.8)
|
ipaddress (>= 0.8)
|
||||||
formatador (0.2.5)
|
formatador (0.2.5)
|
||||||
fugit (1.1.6)
|
fugit (1.4.1)
|
||||||
et-orbi (~> 1.1, >= 1.1.6)
|
et-orbi (~> 1.1, >= 1.1.8)
|
||||||
raabro (~> 1.1)
|
raabro (~> 1.4)
|
||||||
fuubar (2.3.2)
|
fuubar (2.5.0)
|
||||||
rspec-core (~> 3.0)
|
rspec-core (~> 3.0)
|
||||||
ruby-progressbar (~> 1.4)
|
ruby-progressbar (~> 1.4)
|
||||||
get_process_mem (0.2.3)
|
get_process_mem (0.2.7)
|
||||||
|
ffi (~> 1.0)
|
||||||
globalid (0.4.2)
|
globalid (0.4.2)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
goldfinger (2.1.0)
|
goldfinger (2.1.0)
|
||||||
|
@ -242,8 +244,8 @@ GEM
|
||||||
http (~> 3.0)
|
http (~> 3.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
oj (~> 3.0)
|
oj (~> 3.0)
|
||||||
hamlit (2.9.3)
|
hamlit (2.13.0)
|
||||||
temple (>= 0.8.0)
|
temple (>= 0.8.2)
|
||||||
thor
|
thor
|
||||||
tilt
|
tilt
|
||||||
hamlit-rails (0.2.3)
|
hamlit-rails (0.2.3)
|
||||||
|
@ -253,10 +255,11 @@ GEM
|
||||||
railties (>= 4.0.1)
|
railties (>= 4.0.1)
|
||||||
hamster (3.0.0)
|
hamster (3.0.0)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
hashdiff (0.3.7)
|
hashdiff (1.0.1)
|
||||||
hashie (3.6.0)
|
hashie (4.1.0)
|
||||||
heapy (0.1.4)
|
heapy (0.2.0)
|
||||||
highline (2.0.1)
|
thor
|
||||||
|
highline (2.0.3)
|
||||||
hiredis (0.6.3)
|
hiredis (0.6.3)
|
||||||
hkdf (0.3.0)
|
hkdf (0.3.0)
|
||||||
htmlentities (4.3.4)
|
htmlentities (4.3.4)
|
||||||
|
@ -267,14 +270,14 @@ GEM
|
||||||
http_parser.rb (~> 0.6.0)
|
http_parser.rb (~> 0.6.0)
|
||||||
http-cookie (1.0.3)
|
http-cookie (1.0.3)
|
||||||
domain_name (~> 0.5)
|
domain_name (~> 0.5)
|
||||||
http-form_data (2.1.1)
|
http-form_data (2.3.0)
|
||||||
http_accept_language (2.1.1)
|
http_accept_language (2.1.1)
|
||||||
httplog (1.3.0)
|
httplog (1.4.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
rainbow (>= 2.0.0)
|
rainbow (>= 2.0.0)
|
||||||
i18n (1.6.0)
|
i18n (1.8.5)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
i18n-tasks (0.9.29)
|
i18n-tasks (0.9.31)
|
||||||
activesupport (>= 4.0.2)
|
activesupport (>= 4.0.2)
|
||||||
ast (>= 2.1.0)
|
ast (>= 2.1.0)
|
||||||
erubi
|
erubi
|
||||||
|
@ -286,46 +289,49 @@ GEM
|
||||||
terminal-table (>= 1.5.1)
|
terminal-table (>= 1.5.1)
|
||||||
idn-ruby (0.1.0)
|
idn-ruby (0.1.0)
|
||||||
ipaddress (0.8.3)
|
ipaddress (0.8.3)
|
||||||
iso-639 (0.2.8)
|
iso-639 (0.3.5)
|
||||||
jaro_winkler (1.5.2)
|
|
||||||
jmespath (1.4.0)
|
jmespath (1.4.0)
|
||||||
json (2.1.0)
|
json (2.3.1)
|
||||||
json-ld (3.0.2)
|
json-canonicalization (0.2.0)
|
||||||
multi_json (~> 1.12)
|
json-ld (3.1.5)
|
||||||
rdf (>= 2.2.8, < 4.0)
|
htmlentities (~> 4.3)
|
||||||
json-ld-preloaded (3.0.2)
|
json-canonicalization (~> 0.2)
|
||||||
json-ld (~> 3.0)
|
link_header (~> 0.0, >= 0.0.8)
|
||||||
multi_json (~> 1.12)
|
multi_json (~> 1.14)
|
||||||
rdf (~> 3.0)
|
rack (~> 2.0)
|
||||||
jsonapi-renderer (0.2.0)
|
rdf (~> 3.1)
|
||||||
jwt (2.1.0)
|
json-ld-preloaded (3.1.3)
|
||||||
kaminari (1.1.1)
|
json-ld (~> 3.1)
|
||||||
|
rdf (~> 3.1)
|
||||||
|
jsonapi-renderer (0.2.2)
|
||||||
|
jwt (2.2.2)
|
||||||
|
kaminari (1.2.1)
|
||||||
activesupport (>= 4.1.0)
|
activesupport (>= 4.1.0)
|
||||||
kaminari-actionview (= 1.1.1)
|
kaminari-actionview (= 1.2.1)
|
||||||
kaminari-activerecord (= 1.1.1)
|
kaminari-activerecord (= 1.2.1)
|
||||||
kaminari-core (= 1.1.1)
|
kaminari-core (= 1.2.1)
|
||||||
kaminari-actionview (1.1.1)
|
kaminari-actionview (1.2.1)
|
||||||
actionview
|
actionview
|
||||||
kaminari-core (= 1.1.1)
|
kaminari-core (= 1.2.1)
|
||||||
kaminari-activerecord (1.1.1)
|
kaminari-activerecord (1.2.1)
|
||||||
activerecord
|
activerecord
|
||||||
kaminari-core (= 1.1.1)
|
kaminari-core (= 1.2.1)
|
||||||
kaminari-core (1.1.1)
|
kaminari-core (1.2.1)
|
||||||
launchy (2.4.3)
|
launchy (2.5.0)
|
||||||
addressable (~> 2.3)
|
addressable (~> 2.7)
|
||||||
letter_opener (1.7.0)
|
letter_opener (1.7.0)
|
||||||
launchy (~> 2.2)
|
launchy (~> 2.2)
|
||||||
letter_opener_web (1.3.4)
|
letter_opener_web (1.4.0)
|
||||||
actionmailer (>= 3.2)
|
actionmailer (>= 3.2)
|
||||||
letter_opener (~> 1.0)
|
letter_opener (~> 1.0)
|
||||||
railties (>= 3.2)
|
railties (>= 3.2)
|
||||||
link_header (0.0.8)
|
link_header (0.0.8)
|
||||||
lograge (0.11.1)
|
lograge (0.11.2)
|
||||||
actionpack (>= 4)
|
actionpack (>= 4)
|
||||||
activesupport (>= 4)
|
activesupport (>= 4)
|
||||||
railties (>= 4)
|
railties (>= 4)
|
||||||
request_store (~> 1.0)
|
request_store (~> 1.0)
|
||||||
loofah (2.2.3)
|
loofah (2.8.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)
|
||||||
|
@ -336,54 +342,54 @@ GEM
|
||||||
mimemagic (~> 0.3.2)
|
mimemagic (~> 0.3.2)
|
||||||
mario-redis-lock (1.2.1)
|
mario-redis-lock (1.2.1)
|
||||||
redis (>= 3.0.5)
|
redis (>= 3.0.5)
|
||||||
memory_profiler (0.9.13)
|
memory_profiler (0.9.14)
|
||||||
method_source (0.9.2)
|
method_source (1.0.0)
|
||||||
microformats (4.1.0)
|
microformats (4.2.1)
|
||||||
json (~> 2.1)
|
json (~> 2.2)
|
||||||
nokogiri (~> 1.8, >= 1.8.3)
|
nokogiri (~> 1.10)
|
||||||
mime-types (3.2.2)
|
mime-types (3.3.1)
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2018.0812)
|
mime-types-data (3.2020.1104)
|
||||||
mimemagic (0.3.3)
|
mimemagic (0.3.5)
|
||||||
mini_mime (1.0.1)
|
mini_histogram (0.3.1)
|
||||||
|
mini_mime (1.0.2)
|
||||||
mini_portile2 (2.4.0)
|
mini_portile2 (2.4.0)
|
||||||
minitest (5.11.3)
|
minitest (5.14.2)
|
||||||
msgpack (1.2.10)
|
msgpack (1.3.3)
|
||||||
multi_json (1.13.1)
|
multi_json (1.15.0)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.1.1)
|
||||||
necromancer (0.5.0)
|
net-ldap (0.17.0)
|
||||||
net-ldap (0.16.1)
|
net-scp (3.0.0)
|
||||||
net-scp (1.2.1)
|
net-ssh (>= 2.6.5, < 7.0.0)
|
||||||
net-ssh (>= 2.6.5)
|
net-ssh (6.1.0)
|
||||||
net-ssh (5.0.2)
|
nio4r (2.5.4)
|
||||||
nio4r (2.3.1)
|
nokogiri (1.10.10)
|
||||||
nokogiri (1.10.3)
|
|
||||||
mini_portile2 (~> 2.4.0)
|
mini_portile2 (~> 2.4.0)
|
||||||
nokogumbo (2.0.0)
|
nokogumbo (2.0.4)
|
||||||
nokogiri (~> 1.8, >= 1.8.4)
|
nokogiri (~> 1.8, >= 1.8.4)
|
||||||
nsa (0.2.7)
|
nsa (0.2.7)
|
||||||
activesupport (>= 4.2, < 6)
|
activesupport (>= 4.2, < 6)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
sidekiq (>= 3.5)
|
sidekiq (>= 3.5)
|
||||||
statsd-ruby (~> 1.4, >= 1.4.0)
|
statsd-ruby (~> 1.4, >= 1.4.0)
|
||||||
oj (3.7.12)
|
oj (3.10.16)
|
||||||
omniauth (1.9.0)
|
omniauth (1.9.1)
|
||||||
hashie (>= 3.4.6, < 3.7.0)
|
hashie (>= 3.4.6)
|
||||||
rack (>= 1.6.2, < 3)
|
rack (>= 1.6.2, < 3)
|
||||||
omniauth-cas (1.1.1)
|
omniauth-cas (1.1.1)
|
||||||
addressable (~> 2.3)
|
addressable (~> 2.3)
|
||||||
nokogiri (~> 1.5)
|
nokogiri (~> 1.5)
|
||||||
omniauth (~> 1.2)
|
omniauth (~> 1.2)
|
||||||
omniauth-saml (1.10.1)
|
omniauth-saml (1.10.3)
|
||||||
omniauth (~> 1.3, >= 1.3.2)
|
omniauth (~> 1.3, >= 1.3.2)
|
||||||
ruby-saml (~> 1.7)
|
ruby-saml (~> 1.9)
|
||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
ostatus2 (2.0.3)
|
ostatus2 (2.0.3)
|
||||||
addressable (~> 2.5)
|
addressable (~> 2.5)
|
||||||
http (~> 3.0)
|
http (~> 3.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
ox (2.10.1)
|
ox (2.13.4)
|
||||||
paperclip (6.0.0)
|
paperclip (6.1.0)
|
||||||
activemodel (>= 4.2.0)
|
activemodel (>= 4.2.0)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
mime-types
|
mime-types
|
||||||
|
@ -392,155 +398,161 @@ GEM
|
||||||
paperclip-av-transcoder (0.6.4)
|
paperclip-av-transcoder (0.6.4)
|
||||||
av (~> 0.9.0)
|
av (~> 0.9.0)
|
||||||
paperclip (>= 2.5.2)
|
paperclip (>= 2.5.2)
|
||||||
parallel (1.17.0)
|
parallel (1.20.1)
|
||||||
parallel_tests (2.29.0)
|
parallel_tests (2.32.0)
|
||||||
parallel
|
parallel
|
||||||
parser (2.6.3.0)
|
parser (2.7.2.0)
|
||||||
ast (~> 2.4.0)
|
ast (~> 2.4.1)
|
||||||
pastel (0.7.2)
|
pastel (0.8.0)
|
||||||
equatable (~> 0.5.0)
|
tty-color (~> 0.5)
|
||||||
tty-color (~> 0.4.0)
|
|
||||||
pg (1.2.3)
|
pg (1.2.3)
|
||||||
pghero (2.7.0)
|
pghero (2.7.3)
|
||||||
activerecord (>= 5)
|
activerecord (>= 5)
|
||||||
pkg-config (1.3.7)
|
pkg-config (1.4.4)
|
||||||
premailer (1.11.1)
|
premailer (1.14.2)
|
||||||
addressable
|
addressable
|
||||||
css_parser (>= 1.6.0)
|
css_parser (>= 1.6.0)
|
||||||
htmlentities (>= 4.0.0)
|
htmlentities (>= 4.0.0)
|
||||||
premailer-rails (1.10.2)
|
premailer-rails (1.11.1)
|
||||||
actionmailer (>= 3, < 6)
|
actionmailer (>= 3)
|
||||||
premailer (~> 1.7, >= 1.7.9)
|
premailer (~> 1.7, >= 1.7.9)
|
||||||
private_address_check (0.5.0)
|
private_address_check (0.5.0)
|
||||||
pry (0.12.2)
|
pry (0.13.1)
|
||||||
coderay (~> 1.1.0)
|
coderay (~> 1.1)
|
||||||
method_source (~> 0.9.0)
|
method_source (~> 1.0)
|
||||||
pry-byebug (3.7.0)
|
pry-byebug (3.9.0)
|
||||||
byebug (~> 11.0)
|
byebug (~> 11.0)
|
||||||
pry (~> 0.10)
|
pry (~> 0.13.0)
|
||||||
pry-rails (0.3.9)
|
pry-rails (0.3.9)
|
||||||
pry (>= 0.10.4)
|
pry (>= 0.10.4)
|
||||||
public_suffix (3.1.0)
|
public_suffix (4.0.6)
|
||||||
puma (5.0)
|
puma (5.1.0)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
pundit (2.0.1)
|
pundit (2.1.0)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
raabro (1.1.6)
|
raabro (1.4.0)
|
||||||
rack (2.2.3)
|
rack (2.2.3)
|
||||||
rack-attack (6.0.0)
|
rack-attack (6.3.1)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rack-cors (1.0.3)
|
rack-cors (1.1.1)
|
||||||
|
rack (>= 2.0.0)
|
||||||
rack-proxy (0.6.5)
|
rack-proxy (0.6.5)
|
||||||
rack
|
rack
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rails (5.2.3)
|
rails (5.2.4.4)
|
||||||
actioncable (= 5.2.3)
|
actioncable (= 5.2.4.4)
|
||||||
actionmailer (= 5.2.3)
|
actionmailer (= 5.2.4.4)
|
||||||
actionpack (= 5.2.3)
|
actionpack (= 5.2.4.4)
|
||||||
actionview (= 5.2.3)
|
actionview (= 5.2.4.4)
|
||||||
activejob (= 5.2.3)
|
activejob (= 5.2.4.4)
|
||||||
activemodel (= 5.2.3)
|
activemodel (= 5.2.4.4)
|
||||||
activerecord (= 5.2.3)
|
activerecord (= 5.2.4.4)
|
||||||
activestorage (= 5.2.3)
|
activestorage (= 5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
bundler (>= 1.3.0)
|
bundler (>= 1.3.0)
|
||||||
railties (= 5.2.3)
|
railties (= 5.2.4.4)
|
||||||
sprockets-rails (>= 2.0.0)
|
sprockets-rails (>= 2.0.0)
|
||||||
rails-controller-testing (1.0.4)
|
rails-controller-testing (1.0.5)
|
||||||
actionpack (>= 5.0.1.x)
|
actionpack (>= 5.0.1.rc1)
|
||||||
actionview (>= 5.0.1.x)
|
actionview (>= 5.0.1.rc1)
|
||||||
activesupport (>= 5.0.1.x)
|
activesupport (>= 5.0.1.rc1)
|
||||||
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.0.4)
|
rails-html-sanitizer (1.3.0)
|
||||||
loofah (~> 2.2, >= 2.2.2)
|
loofah (~> 2.3)
|
||||||
rails-i18n (5.1.3)
|
rails-i18n (5.1.3)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
railties (>= 5.0, < 6)
|
railties (>= 5.0, < 6)
|
||||||
rails-settings-cached (0.6.6)
|
rails-settings-cached (0.7.2)
|
||||||
rails (>= 4.2.0)
|
rails (>= 4.2.0)
|
||||||
railties (5.2.3)
|
railties (5.2.4.4)
|
||||||
actionpack (= 5.2.3)
|
actionpack (= 5.2.4.4)
|
||||||
activesupport (= 5.2.3)
|
activesupport (= 5.2.4.4)
|
||||||
method_source
|
method_source
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.19.0, < 2.0)
|
thor (>= 0.19.0, < 2.0)
|
||||||
rainbow (3.0.0)
|
rainbow (3.0.0)
|
||||||
rake (12.3.2)
|
rake (12.3.3)
|
||||||
rb-fsevent (0.10.3)
|
rb-fsevent (0.10.4)
|
||||||
rb-inotify (0.10.0)
|
rb-inotify (0.10.1)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
rdf (3.0.9)
|
rdf (3.1.7)
|
||||||
hamster (~> 3.0)
|
hamster (~> 3.0)
|
||||||
link_header (~> 0.0, >= 0.0.8)
|
link_header (~> 0.0, >= 0.0.8)
|
||||||
rdf-normalize (0.3.3)
|
rdf-normalize (0.4.0)
|
||||||
rdf (>= 2.2, < 4.0)
|
rdf (~> 3.1)
|
||||||
redcarpet (3.4.0)
|
redcarpet (3.5.0)
|
||||||
redis (4.2.5)
|
redis (4.2.5)
|
||||||
redis-actionpack (5.0.2)
|
redis-actionpack (5.2.0)
|
||||||
actionpack (>= 4.0, < 6)
|
actionpack (>= 5, < 7)
|
||||||
redis-rack (>= 1, < 3)
|
redis-rack (>= 2.1.0, < 3)
|
||||||
redis-store (>= 1.1.0, < 2)
|
redis-store (>= 1.1.0, < 2)
|
||||||
redis-activesupport (5.0.4)
|
redis-activesupport (5.2.0)
|
||||||
activesupport (>= 3, < 6)
|
activesupport (>= 3, < 7)
|
||||||
redis-store (>= 1.3, < 2)
|
redis-store (>= 1.3, < 2)
|
||||||
redis-namespace (1.6.0)
|
redis-namespace (1.8.0)
|
||||||
redis (>= 3.0.4)
|
redis (>= 3.0.4)
|
||||||
redis-rack (2.0.4)
|
redis-rack (2.1.3)
|
||||||
rack (>= 1.5, < 3)
|
rack (>= 2.0.8, < 3)
|
||||||
redis-store (>= 1.2, < 2)
|
redis-store (>= 1.2, < 2)
|
||||||
redis-rails (5.0.2)
|
redis-rails (5.0.2)
|
||||||
redis-actionpack (>= 5.0, < 6)
|
redis-actionpack (>= 5.0, < 6)
|
||||||
redis-activesupport (>= 5.0, < 6)
|
redis-activesupport (>= 5.0, < 6)
|
||||||
redis-store (>= 1.2, < 2)
|
redis-store (>= 1.2, < 2)
|
||||||
redis-store (1.5.0)
|
redis-store (1.9.0)
|
||||||
redis (>= 2.2, < 5)
|
redis (>= 4, < 5)
|
||||||
regexp_parser (1.5.1)
|
regexp_parser (1.8.2)
|
||||||
request_store (1.4.1)
|
request_store (1.5.0)
|
||||||
rack (>= 1.4)
|
rack (>= 1.4)
|
||||||
responders (2.4.1)
|
responders (3.0.1)
|
||||||
actionpack (>= 4.2.0, < 6.0)
|
actionpack (>= 5.0)
|
||||||
railties (>= 4.2.0, < 6.0)
|
railties (>= 5.0)
|
||||||
|
rexml (3.2.4)
|
||||||
rotp (2.1.2)
|
rotp (2.1.2)
|
||||||
rpam2 (4.0.2)
|
rpam2 (4.0.2)
|
||||||
rqrcode (0.10.1)
|
rqrcode (0.10.1)
|
||||||
chunky_png (~> 1.0)
|
chunky_png (~> 1.0)
|
||||||
rspec-core (3.8.0)
|
rspec-core (3.9.3)
|
||||||
rspec-support (~> 3.8.0)
|
rspec-support (~> 3.9.3)
|
||||||
rspec-expectations (3.8.2)
|
rspec-expectations (3.9.4)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.8.0)
|
rspec-support (~> 3.9.0)
|
||||||
rspec-mocks (3.8.0)
|
rspec-mocks (3.9.1)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.8.0)
|
rspec-support (~> 3.9.0)
|
||||||
rspec-rails (3.8.2)
|
rspec-rails (3.9.1)
|
||||||
actionpack (>= 3.0)
|
actionpack (>= 3.0)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
railties (>= 3.0)
|
railties (>= 3.0)
|
||||||
rspec-core (~> 3.8.0)
|
rspec-core (~> 3.9.0)
|
||||||
rspec-expectations (~> 3.8.0)
|
rspec-expectations (~> 3.9.0)
|
||||||
rspec-mocks (~> 3.8.0)
|
rspec-mocks (~> 3.9.0)
|
||||||
rspec-support (~> 3.8.0)
|
rspec-support (~> 3.9.0)
|
||||||
rspec-sidekiq (3.0.3)
|
rspec-sidekiq (3.1.0)
|
||||||
rspec-core (~> 3.0, >= 3.0.0)
|
rspec-core (~> 3.0, >= 3.0.0)
|
||||||
sidekiq (>= 2.4.0)
|
sidekiq (>= 2.4.0)
|
||||||
rspec-support (3.8.0)
|
rspec-support (3.9.4)
|
||||||
rubocop (0.71.0)
|
rubocop (0.93.1)
|
||||||
jaro_winkler (~> 1.5.1)
|
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
parser (>= 2.6)
|
parser (>= 2.7.1.5)
|
||||||
rainbow (>= 2.2.2, < 4.0)
|
rainbow (>= 2.2.2, < 4.0)
|
||||||
|
regexp_parser (>= 1.8)
|
||||||
|
rexml
|
||||||
|
rubocop-ast (>= 0.6.0)
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (>= 1.4.0, < 1.7)
|
unicode-display_width (>= 1.4.0, < 2.0)
|
||||||
|
rubocop-ast (1.3.0)
|
||||||
|
parser (>= 2.7.1.5)
|
||||||
ruby-progressbar (1.10.1)
|
ruby-progressbar (1.10.1)
|
||||||
ruby-saml (1.9.0)
|
ruby-saml (1.11.0)
|
||||||
nokogiri (>= 1.5.10)
|
nokogiri (>= 1.5.10)
|
||||||
rufus-scheduler (3.5.2)
|
ruby-statistics (2.1.2)
|
||||||
fugit (~> 1.1, >= 1.1.5)
|
ruby2_keywords (0.0.2)
|
||||||
safe_yaml (1.0.4)
|
rufus-scheduler (3.6.0)
|
||||||
sanitize (5.0.0)
|
fugit (~> 1.1, >= 1.1.6)
|
||||||
|
sanitize (5.2.1)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.8.0)
|
nokogiri (>= 1.8.0)
|
||||||
nokogumbo (~> 2.0)
|
nokogumbo (~> 2.0)
|
||||||
|
@ -549,8 +561,7 @@ GEM
|
||||||
sass-listen (4.0.0)
|
sass-listen (4.0.0)
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
rb-inotify (~> 0.9, >= 0.9.7)
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
scss_lint (0.58.0)
|
scss_lint (0.59.0)
|
||||||
rake (>= 0.9, < 13)
|
|
||||||
sass (~> 3.5, >= 3.5.5)
|
sass (~> 3.5, >= 3.5.5)
|
||||||
sidekiq (6.1.2)
|
sidekiq (6.1.2)
|
||||||
connection_pool (>= 2.2.2)
|
connection_pool (>= 2.2.2)
|
||||||
|
@ -558,91 +569,95 @@ GEM
|
||||||
redis (>= 4.2.0)
|
redis (>= 4.2.0)
|
||||||
sidekiq-bulk (0.2.0)
|
sidekiq-bulk (0.2.0)
|
||||||
sidekiq
|
sidekiq
|
||||||
sidekiq-scheduler (3.0.0)
|
sidekiq-scheduler (3.0.1)
|
||||||
|
e2mmap
|
||||||
redis (>= 3, < 5)
|
redis (>= 3, < 5)
|
||||||
rufus-scheduler (~> 3.2)
|
rufus-scheduler (~> 3.2)
|
||||||
sidekiq (>= 3)
|
sidekiq (>= 3)
|
||||||
|
thwait
|
||||||
tilt (>= 1.4.0)
|
tilt (>= 1.4.0)
|
||||||
sidekiq-unique-jobs (6.0.13)
|
sidekiq-unique-jobs (6.0.25)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.5)
|
concurrent-ruby (~> 1.0, >= 1.0.5)
|
||||||
sidekiq (>= 4.0, < 7.0)
|
sidekiq (>= 4.0, < 7.0)
|
||||||
thor (~> 0)
|
thor (>= 0.20, < 2.0)
|
||||||
simple-navigation (4.0.5)
|
simple-navigation (4.1.0)
|
||||||
activesupport (>= 2.3.2)
|
activesupport (>= 2.3.2)
|
||||||
simple_form (4.1.0)
|
simple_form (4.1.0)
|
||||||
actionpack (>= 5.0)
|
actionpack (>= 5.0)
|
||||||
activemodel (>= 5.0)
|
activemodel (>= 5.0)
|
||||||
simplecov (0.16.1)
|
simplecov (0.20.0)
|
||||||
docile (~> 1.1)
|
docile (~> 1.1)
|
||||||
json (>= 1.8, < 3)
|
simplecov-html (~> 0.11)
|
||||||
simplecov-html (~> 0.10.0)
|
simplecov_json_formatter (~> 0.1)
|
||||||
simplecov-html (0.10.2)
|
simplecov-html (0.12.3)
|
||||||
sprockets (3.7.2)
|
simplecov_json_formatter (0.1.2)
|
||||||
|
sprockets (4.0.2)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
sprockets-rails (3.2.1)
|
sprockets-rails (3.2.2)
|
||||||
actionpack (>= 4.0)
|
actionpack (>= 4.0)
|
||||||
activesupport (>= 4.0)
|
activesupport (>= 4.0)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
sshkit (1.17.0)
|
sshkit (1.21.1)
|
||||||
net-scp (>= 1.1.2)
|
net-scp (>= 1.1.2)
|
||||||
net-ssh (>= 2.8.0)
|
net-ssh (>= 2.8.0)
|
||||||
stackprof (0.2.12)
|
stackprof (0.2.16)
|
||||||
statsd-ruby (1.4.0)
|
statsd-ruby (1.4.0)
|
||||||
stoplight (2.1.3)
|
stoplight (2.1.3)
|
||||||
streamio-ffmpeg (3.0.2)
|
streamio-ffmpeg (3.0.2)
|
||||||
multi_json (~> 1.8)
|
multi_json (~> 1.8)
|
||||||
strong_migrations (0.4.0)
|
strong_migrations (0.7.3)
|
||||||
activerecord (>= 5)
|
activerecord (>= 5)
|
||||||
temple (0.8.1)
|
temple (0.8.2)
|
||||||
terminal-table (1.8.0)
|
terminal-table (2.0.0)
|
||||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||||
terrapin (0.6.0)
|
terrapin (0.6.0)
|
||||||
climate_control (>= 0.0.3, < 1.0)
|
climate_control (>= 0.0.3, < 1.0)
|
||||||
thor (0.20.3)
|
thor (0.20.3)
|
||||||
thread_safe (0.3.6)
|
thread_safe (0.3.6)
|
||||||
tilt (2.0.9)
|
thwait (0.2.0)
|
||||||
tty-color (0.4.3)
|
e2mmap
|
||||||
tty-command (0.8.2)
|
tilt (2.0.10)
|
||||||
pastel (~> 0.7.0)
|
tty-color (0.6.0)
|
||||||
tty-cursor (0.7.0)
|
tty-command (0.10.0)
|
||||||
tty-prompt (0.19.0)
|
pastel (~> 0.8)
|
||||||
necromancer (~> 0.5.0)
|
tty-cursor (0.7.1)
|
||||||
pastel (~> 0.7.0)
|
tty-prompt (0.22.0)
|
||||||
tty-reader (~> 0.6.0)
|
pastel (~> 0.8)
|
||||||
tty-reader (0.6.0)
|
tty-reader (~> 0.8)
|
||||||
|
tty-reader (0.9.0)
|
||||||
tty-cursor (~> 0.7)
|
tty-cursor (~> 0.7)
|
||||||
tty-screen (~> 0.7)
|
tty-screen (~> 0.8)
|
||||||
wisper (~> 2.0.0)
|
wisper (~> 2.0)
|
||||||
tty-screen (0.7.0)
|
tty-screen (0.8.1)
|
||||||
twitter-text (1.14.7)
|
twitter-text (1.14.7)
|
||||||
unf (~> 0.1.0)
|
unf (~> 0.1.0)
|
||||||
tzinfo (1.2.5)
|
tzinfo (1.2.8)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
tzinfo-data (1.2019.1)
|
tzinfo-data (1.2020.4)
|
||||||
tzinfo (>= 1.0.0)
|
tzinfo (>= 1.0.0)
|
||||||
unf (0.1.4)
|
unf (0.1.4)
|
||||||
unf_ext
|
unf_ext
|
||||||
unf_ext (0.0.7.5)
|
unf_ext (0.0.7.7)
|
||||||
unicode-display_width (1.6.0)
|
unicode-display_width (1.7.0)
|
||||||
uniform_notifier (1.12.1)
|
uniform_notifier (1.13.0)
|
||||||
warden (1.2.8)
|
warden (1.2.9)
|
||||||
rack (>= 2.0.6)
|
rack (>= 2.0.9)
|
||||||
webmock (3.5.1)
|
webmock (3.10.0)
|
||||||
addressable (>= 2.3.6)
|
addressable (>= 2.3.6)
|
||||||
crack (>= 0.3.2)
|
crack (>= 0.3.2)
|
||||||
hashdiff
|
hashdiff (>= 0.4.0, < 2.0.0)
|
||||||
webpacker (4.0.6)
|
webpacker (4.3.0)
|
||||||
activesupport (>= 4.2)
|
activesupport (>= 4.2)
|
||||||
rack-proxy (>= 0.6.1)
|
rack-proxy (>= 0.6.1)
|
||||||
railties (>= 4.2)
|
railties (>= 4.2)
|
||||||
webpush (0.3.8)
|
webpush (1.1.0)
|
||||||
hkdf (~> 0.2)
|
hkdf (~> 0.2)
|
||||||
jwt (~> 2.0)
|
jwt (~> 2.0)
|
||||||
websocket-driver (0.7.0)
|
websocket-driver (0.7.3)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.3)
|
websocket-extensions (0.1.5)
|
||||||
wisper (2.0.0)
|
wisper (2.0.1)
|
||||||
xpath (3.2.0)
|
xpath (3.2.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,10 @@ class Api::V1::ChatConversationController < Api::BaseController
|
||||||
before_action :set_chat_conversation, only: [:show, :mark_chat_conversation_approved, :mark_chat_conversation_hidden, :mark_chat_conversation_unread]
|
before_action :set_chat_conversation, only: [:show, :mark_chat_conversation_approved, :mark_chat_conversation_hidden, :mark_chat_conversation_unread]
|
||||||
|
|
||||||
def show
|
def show
|
||||||
puts "tilly ChatConversationsController-0"
|
|
||||||
render json: {}, each_serializer: REST::ChatConversationAccountSerializer
|
render json: {}, each_serializer: REST::ChatConversationAccountSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
puts "tilly ChatConversationsController-1"
|
|
||||||
# : todo :
|
# : todo :
|
||||||
# check if already created
|
# check if already created
|
||||||
# check if blocked
|
# check if blocked
|
||||||
|
|
|
@ -27,12 +27,8 @@ class Api::V1::ChatMessagesController < Api::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
puts "tilly destry chat"
|
|
||||||
|
|
||||||
@chat = ChatMessage.where(from_account: current_user.account).find(params[:id])
|
@chat = ChatMessage.where(from_account: current_user.account).find(params[:id])
|
||||||
|
|
||||||
puts "tilly @chat: " + @chat.inspect
|
|
||||||
|
|
||||||
# : todo :
|
# : todo :
|
||||||
# make sure last_chat_message_id in chat_account_conversation gets set to last
|
# make sure last_chat_message_id in chat_account_conversation gets set to last
|
||||||
|
|
||||||
|
@ -49,7 +45,6 @@ class Api::V1::ChatMessagesController < Api::BaseController
|
||||||
|
|
||||||
def set_chat_conversation_recipients
|
def set_chat_conversation_recipients
|
||||||
account_conversation = ChatConversationAccount.where(account: current_user.account, chat_conversation: @chat_conversation).first
|
account_conversation = ChatConversationAccount.where(account: current_user.account, chat_conversation: @chat_conversation).first
|
||||||
puts "tilly account_conversation - " + account_conversation.inspect
|
|
||||||
@chat_conversation_recipients = Account.where(id: account_conversation.participant_account_ids)
|
@chat_conversation_recipients = Account.where(id: account_conversation.participant_account_ids)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,8 @@ import ImmutablePureComponent from 'react-immutable-pure-component'
|
||||||
import {
|
import {
|
||||||
favorite,
|
favorite,
|
||||||
unfavorite,
|
unfavorite,
|
||||||
|
repost,
|
||||||
|
unrepost,
|
||||||
} from '../actions/interactions'
|
} from '../actions/interactions'
|
||||||
import { replyCompose } from '../actions/compose'
|
import { replyCompose } from '../actions/compose'
|
||||||
import { openModal } from '../actions/modal'
|
import { openModal } from '../actions/modal'
|
||||||
|
@ -15,8 +17,9 @@ import { openPopover } from '../actions/popover'
|
||||||
import { makeGetStatus } from '../selectors'
|
import { makeGetStatus } from '../selectors'
|
||||||
import {
|
import {
|
||||||
CX,
|
CX,
|
||||||
|
MODAL_BOOST,
|
||||||
} from '../constants'
|
} from '../constants'
|
||||||
import { me } from '../initial_state'
|
import { me, boostModal } from '../initial_state'
|
||||||
import Avatar from './avatar'
|
import Avatar from './avatar'
|
||||||
import Button from './button'
|
import Button from './button'
|
||||||
import CommentHeader from './comment_header'
|
import CommentHeader from './comment_header'
|
||||||
|
@ -49,6 +52,10 @@ class Comment extends ImmutablePureComponent {
|
||||||
this.props.onFavorite(this.props.status)
|
this.props.onFavorite(this.props.status)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleOnRepost = () => {
|
||||||
|
this.props.onRepost(this.props.status)
|
||||||
|
}
|
||||||
|
|
||||||
handleOnOpenStatusOptions = () => {
|
handleOnOpenStatusOptions = () => {
|
||||||
this.props.onOpenStatusOptions(this.moreNode, this.props.status)
|
this.props.onOpenStatusOptions(this.moreNode, this.props.status)
|
||||||
}
|
}
|
||||||
|
@ -57,6 +64,26 @@ class Comment extends ImmutablePureComponent {
|
||||||
this.setState({ showMedia: !this.state.showMedia })
|
this.setState({ showMedia: !this.state.showMedia })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleOnThreadMouseEnter = (event) => {
|
||||||
|
if (event.target) {
|
||||||
|
const threadKey = event.target.getAttribute('data-threader-indent')
|
||||||
|
const elems = document.querySelectorAll(`[data-threader-indent="${threadKey}"]`)
|
||||||
|
elems.forEach((elem) => elem.classList.add('thread-hovering'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
handleOnThreadMouseLeave = (event) => {
|
||||||
|
if (event.target) {
|
||||||
|
const threadKey = event.target.getAttribute('data-threader-indent')
|
||||||
|
const elems = document.querySelectorAll(`[data-threader-indent="${threadKey}"]`)
|
||||||
|
elems.forEach((elem) => elem.classList.remove('thread-hovering'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
handleOnThreadClick = (event) => {
|
||||||
|
// : todo :
|
||||||
|
}
|
||||||
|
|
||||||
setMoreNode = (c) => {
|
setMoreNode = (c) => {
|
||||||
this.moreNode = c
|
this.moreNode = c
|
||||||
}
|
}
|
||||||
|
@ -81,7 +108,7 @@ class Comment extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
const style = {
|
const style = {
|
||||||
paddingLeft: `${indent * 42}px`,
|
paddingLeft: `${indent * 38}px`,
|
||||||
}
|
}
|
||||||
|
|
||||||
const contentClasses = CX({
|
const contentClasses = CX({
|
||||||
|
@ -95,8 +122,28 @@ class Comment extends ImmutablePureComponent {
|
||||||
})
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={[_s.d, _s.px15, _s.mb10, _s.py5].join(' ')} data-comment={status.get('id')}>
|
<div className={[_s.d, _s.px15, _s.py5].join(' ')} data-comment={status.get('id')}>
|
||||||
<div className={_s.d} style={style}>
|
{
|
||||||
|
indent > 0 &&
|
||||||
|
<div className={[_s.d, _s.z3, _s.flexRow, _s.posAbs, _s.topNeg20PX, _s.left0, _s.bottom20PX, _s.aiCenter, _s.jcCenter].join(' ')}>
|
||||||
|
{Array.apply(null, {
|
||||||
|
length: indent
|
||||||
|
}).map((_, i) => (
|
||||||
|
<button
|
||||||
|
key={`thread-${status.get('id')}-${i}`}
|
||||||
|
data-threader
|
||||||
|
data-threader-indent={i}
|
||||||
|
onMouseEnter={this.handleOnThreadMouseEnter}
|
||||||
|
onMouseLeave={this.handleOnThreadMouseLeave}
|
||||||
|
onClick={this.handleOnThreadClick}
|
||||||
|
className={[_s.d, _s.w14PX, _s.h100PC, _s.outlineNone, _s.bgTransparent, _s.ml20, _s.cursorPointer].join(' ')}
|
||||||
|
>
|
||||||
|
<span className={[_s.d, _s.w2PX, _s.h100PC, _s.mlAuto, _s.mr2, _s.bgSubtle].join(' ')} />
|
||||||
|
</button>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
<div className={[_s.d, _s.mb10].join(' ')} style={style}>
|
||||||
|
|
||||||
<div className={[_s.d, _s.flexRow].join(' ')}>
|
<div className={[_s.d, _s.flexRow].join(' ')}>
|
||||||
<NavLink
|
<NavLink
|
||||||
|
@ -104,7 +151,7 @@ class Comment extends ImmutablePureComponent {
|
||||||
title={status.getIn(['account', 'acct'])}
|
title={status.getIn(['account', 'acct'])}
|
||||||
className={[_s.d, _s.mr10, _s.pt5].join(' ')}
|
className={[_s.d, _s.mr10, _s.pt5].join(' ')}
|
||||||
>
|
>
|
||||||
<Avatar account={status.get('account')} size={32} />
|
<Avatar account={status.get('account')} size={30} />
|
||||||
</NavLink>
|
</NavLink>
|
||||||
|
|
||||||
<div className={[_s.d, _s.flexShrink1, _s.maxW100PC42PX].join(' ')}>
|
<div className={[_s.d, _s.flexShrink1, _s.maxW100PC42PX].join(' ')}>
|
||||||
|
@ -145,6 +192,10 @@ class Comment extends ImmutablePureComponent {
|
||||||
title={intl.formatMessage(messages.reply)}
|
title={intl.formatMessage(messages.reply)}
|
||||||
onClick={this.handleOnReply}
|
onClick={this.handleOnReply}
|
||||||
/>
|
/>
|
||||||
|
<CommentButton
|
||||||
|
title={intl.formatMessage(status.get('reblogged') ? messages.unrepost : messages.repost)}
|
||||||
|
onClick={this.handleOnRepost}
|
||||||
|
/>
|
||||||
<div ref={this.setMoreNode}>
|
<div ref={this.setMoreNode}>
|
||||||
<CommentButton
|
<CommentButton
|
||||||
title='···'
|
title='···'
|
||||||
|
@ -193,6 +244,8 @@ CommentButton.propTypes = {
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
reply: { id: 'status.reply', defaultMessage: 'Reply' },
|
reply: { id: 'status.reply', defaultMessage: 'Reply' },
|
||||||
|
repost: { id: 'status.repost', defaultMessage: 'Repost' },
|
||||||
|
unrepost: { id: 'status.unrepost', defaultMessage: 'Unrepost' },
|
||||||
like: { id: 'status.like', defaultMessage: 'Like' },
|
like: { id: 'status.like', defaultMessage: 'Like' },
|
||||||
unlike: { id: 'status.unlike', defaultMessage: 'Unlike' },
|
unlike: { id: 'status.unlike', defaultMessage: 'Unlike' },
|
||||||
})
|
})
|
||||||
|
@ -227,6 +280,24 @@ const mapDispatchToProps = (dispatch) => ({
|
||||||
dispatch(favorite(status))
|
dispatch(favorite(status))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onRepost(status) {
|
||||||
|
if (!me) return dispatch(openModal('UNAUTHORIZED'))
|
||||||
|
|
||||||
|
const alreadyReposted = status.get('reblogged')
|
||||||
|
|
||||||
|
if (boostModal && !alreadyReposted) {
|
||||||
|
dispatch(openModal(MODAL_BOOST, {
|
||||||
|
status,
|
||||||
|
onRepost: () => dispatch(repost(status)),
|
||||||
|
}))
|
||||||
|
} else {
|
||||||
|
if (alreadyReposted) {
|
||||||
|
dispatch(unrepost(status))
|
||||||
|
} else {
|
||||||
|
dispatch(repost(status))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
onOpenStatusOptions(targetRef, status) {
|
onOpenStatusOptions(targetRef, status) {
|
||||||
dispatch(openPopover('STATUS_OPTIONS', {
|
dispatch(openPopover('STATUS_OPTIONS', {
|
||||||
targetRef,
|
targetRef,
|
||||||
|
@ -260,6 +331,7 @@ Comment.propTypes = {
|
||||||
isHighlighted: PropTypes.bool,
|
isHighlighted: PropTypes.bool,
|
||||||
onReply: PropTypes.func.isRequired,
|
onReply: PropTypes.func.isRequired,
|
||||||
onFavorite: PropTypes.func.isRequired,
|
onFavorite: PropTypes.func.isRequired,
|
||||||
|
onRepost: PropTypes.func.isRequired,
|
||||||
onOpenStatusOptions: PropTypes.func.isRequired,
|
onOpenStatusOptions: PropTypes.func.isRequired,
|
||||||
onOpenLikes: PropTypes.func.isRequired,
|
onOpenLikes: PropTypes.func.isRequired,
|
||||||
onOpenReposts: PropTypes.func.isRequired,
|
onOpenReposts: PropTypes.func.isRequired,
|
||||||
|
|
|
@ -5,8 +5,11 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component'
|
import ImmutablePureComponent from 'react-immutable-pure-component'
|
||||||
import { openModal } from '../../actions/modal'
|
import { openModal } from '../../actions/modal'
|
||||||
import { cancelReplyCompose } from '../../actions/compose'
|
import { cancelReplyCompose } from '../../actions/compose'
|
||||||
import ModalLayout from './modal_layout'
|
|
||||||
import TimelineComposeBlock from '../timeline_compose_block'
|
import TimelineComposeBlock from '../timeline_compose_block'
|
||||||
|
import Block from '../block'
|
||||||
|
import Heading from '../heading'
|
||||||
|
import Text from '../text'
|
||||||
|
import Button from '../button'
|
||||||
|
|
||||||
class ComposeModal extends ImmutablePureComponent {
|
class ComposeModal extends ImmutablePureComponent {
|
||||||
|
|
||||||
|
@ -32,6 +35,10 @@ class ComposeModal extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onHandleSubmit = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
intl,
|
intl,
|
||||||
|
@ -42,13 +49,35 @@ class ComposeModal extends ImmutablePureComponent {
|
||||||
const title = isEditing ? messages.edit : isComment ? messages.comment : messages.title
|
const title = isEditing ? messages.edit : isComment ? messages.comment : messages.title
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalLayout
|
<div style={{width: '512px'}} className={[_s.d, _s.modal].join(' ')}>
|
||||||
noPadding
|
<Block>
|
||||||
title={intl.formatMessage(title)}
|
<div className={[_s.d, _s.flexRow, _s.aiCenter, _s.jcCenter, _s.borderBottom1PX, _s.borderColorSecondary, _s.h53PX, _s.px15].join(' ')}>
|
||||||
onClose={this.onClickClose}
|
<Button
|
||||||
>
|
backgroundColor='none'
|
||||||
<TimelineComposeBlock modal />
|
title={intl.formatMessage(messages.close)}
|
||||||
</ModalLayout>
|
onClick={this.onClickClose}
|
||||||
|
color='secondary'
|
||||||
|
icon='close'
|
||||||
|
iconSize='10px'
|
||||||
|
/>
|
||||||
|
<Heading size='h2'>
|
||||||
|
{intl.formatMessage(title)}
|
||||||
|
</Heading>
|
||||||
|
<Button
|
||||||
|
backgroundColor='none'
|
||||||
|
title={intl.formatMessage(messages.close)}
|
||||||
|
className={_s.mlAuto}
|
||||||
|
onClick={this.onHandleSubmit}
|
||||||
|
color='secondary'
|
||||||
|
>
|
||||||
|
<Text>Post</Text>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<div className={[_s.d].join(' ')}>
|
||||||
|
<TimelineComposeBlock isModal />
|
||||||
|
</div>
|
||||||
|
</Block>
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,6 +87,7 @@ const messages = defineMessages({
|
||||||
title: { id: 'navigation_bar.compose', defaultMessage: 'Compose new gab' },
|
title: { id: 'navigation_bar.compose', defaultMessage: 'Compose new gab' },
|
||||||
comment: { id: 'navigation_bar.compose_comment', defaultMessage: 'Compose new comment' },
|
comment: { id: 'navigation_bar.compose_comment', defaultMessage: 'Compose new comment' },
|
||||||
edit: { id: 'navigation_bar.edit_gab', defaultMessage: 'Edit' },
|
edit: { id: 'navigation_bar.edit_gab', defaultMessage: 'Edit' },
|
||||||
|
close: { id: 'lightbox.close', defaultMessage: 'Close' },
|
||||||
})
|
})
|
||||||
|
|
||||||
const mapStateToProps = (state) => {
|
const mapStateToProps = (state) => {
|
||||||
|
|
|
@ -99,7 +99,7 @@ const mapDispatchToProps = (dispatch) => ({
|
||||||
GroupsPanel.propTypes = {
|
GroupsPanel.propTypes = {
|
||||||
groupIds: ImmutablePropTypes.list,
|
groupIds: ImmutablePropTypes.list,
|
||||||
isLazy: PropTypes.bool,
|
isLazy: PropTypes.bool,
|
||||||
onFetchGroups: PropTypes.func.isRequired,
|
onFetchGroupsByTab: PropTypes.func.isRequired,
|
||||||
shouldLoad: PropTypes.bool,
|
shouldLoad: PropTypes.bool,
|
||||||
groupType: PropTypes.string,
|
groupType: PropTypes.string,
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,12 +160,6 @@ class StatusOptionsPopover extends ImmutablePureComponent {
|
||||||
|
|
||||||
if (me) {
|
if (me) {
|
||||||
if (isReply) {
|
if (isReply) {
|
||||||
menu.push({
|
|
||||||
icon: 'repost',
|
|
||||||
hideArrow: true,
|
|
||||||
title: intl.formatMessage(status.get('reblogged') ? messages.cancel_repost_private : messages.repost_private),
|
|
||||||
onClick: this.handleRepostClick,
|
|
||||||
})
|
|
||||||
menu.push({
|
menu.push({
|
||||||
icon: 'pencil',
|
icon: 'pencil',
|
||||||
hideArrow: true,
|
hideArrow: true,
|
||||||
|
|
|
@ -35,7 +35,7 @@ class SidebarPanelGroup extends React.PureComponent {
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{
|
{
|
||||||
layout.map((panel) => {
|
layout.map((panel, i) => {
|
||||||
if (!panel) return null
|
if (!panel) return null
|
||||||
|
|
||||||
if (typeof panel !== 'function' || panel.key === 'status-promotion-panel') {
|
if (typeof panel !== 'function' || panel.key === 'status-promotion-panel') {
|
||||||
|
@ -44,6 +44,7 @@ class SidebarPanelGroup extends React.PureComponent {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Bundle
|
<Bundle
|
||||||
|
key={`sidebar-panel-group-item-${i}`}
|
||||||
fetchComponent={panel}
|
fetchComponent={panel}
|
||||||
loading={this.renderLoading}
|
loading={this.renderLoading}
|
||||||
error={this.renderError}
|
error={this.renderError}
|
||||||
|
|
|
@ -403,7 +403,6 @@ StatusList.propTypes = {
|
||||||
timelineId: PropTypes.string,
|
timelineId: PropTypes.string,
|
||||||
queuedItemSize: PropTypes.number,
|
queuedItemSize: PropTypes.number,
|
||||||
onDequeueTimeline: PropTypes.func.isRequired,
|
onDequeueTimeline: PropTypes.func.isRequired,
|
||||||
onClearTimeline: PropTypes.func.isRequired,
|
|
||||||
onScrollToTop: PropTypes.func.isRequired,
|
onScrollToTop: PropTypes.func.isRequired,
|
||||||
onScroll: PropTypes.func.isRequired,
|
onScroll: PropTypes.func.isRequired,
|
||||||
onFetchContext: PropTypes.func.isRequired,
|
onFetchContext: PropTypes.func.isRequired,
|
||||||
|
|
|
@ -19,15 +19,15 @@ class TimelineComposeBlock extends ImmutablePureComponent {
|
||||||
account,
|
account,
|
||||||
size,
|
size,
|
||||||
intl,
|
intl,
|
||||||
modal,
|
isModal,
|
||||||
...rest
|
...rest
|
||||||
} = this.props
|
} = this.props
|
||||||
|
|
||||||
if (modal) {
|
if (isModal) {
|
||||||
return (
|
return (
|
||||||
<section className={_s.d}>
|
<section className={_s.d}>
|
||||||
<div className={[_s.d, _s.flexRow].join(' ')}>
|
<div className={[_s.d, _s.flexRow].join(' ')}>
|
||||||
<ComposeFormContainer {...rest} modal={modal} />
|
<ComposeFormContainer {...rest} isModal={isModal} />
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
)
|
)
|
||||||
|
@ -69,7 +69,7 @@ TimelineComposeBlock.propTypes = {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
account: ImmutablePropTypes.map.isRequired,
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
size: PropTypes.number,
|
size: PropTypes.number,
|
||||||
modal: PropTypes.bool,
|
isModal: PropTypes.bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
TimelineComposeBlock.defaultProps = {
|
TimelineComposeBlock.defaultProps = {
|
||||||
|
|
|
@ -71,7 +71,7 @@ UserStat.propTypes = {
|
||||||
PropTypes.number,
|
PropTypes.number,
|
||||||
PropTypes.object,
|
PropTypes.object,
|
||||||
]).isRequired,
|
]).isRequired,
|
||||||
isCentered: PropTypes.bool.isRequired,
|
isCentered: PropTypes.bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default UserStat
|
export default UserStat
|
|
@ -43,10 +43,10 @@ class ComposeExtraButtonList extends React.PureComponent {
|
||||||
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { isMatch, edit, hidePro } = this.props
|
const { isMatch, edit, hidePro, isModal } = this.props
|
||||||
const { height } = this.state
|
const { height } = this.state
|
||||||
|
|
||||||
const small = height <= 660
|
const small = height <= 660 || isModal
|
||||||
|
|
||||||
const containerClasses = CX({
|
const containerClasses = CX({
|
||||||
d: 1,
|
d: 1,
|
||||||
|
@ -83,6 +83,7 @@ ComposeExtraButtonList.propTypes = {
|
||||||
hidePro: PropTypes.bool,
|
hidePro: PropTypes.bool,
|
||||||
edit: PropTypes.bool,
|
edit: PropTypes.bool,
|
||||||
isMatch: PropTypes.bool,
|
isMatch: PropTypes.bool,
|
||||||
|
isModal: PropTypes.bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ComposeExtraButtonList
|
export default ComposeExtraButtonList
|
||||||
|
|
|
@ -35,14 +35,14 @@ import Text from '../../../components/text'
|
||||||
import Icon from '../../../components/icon'
|
import Icon from '../../../components/icon'
|
||||||
import ComposeExtraButtonList from './compose_extra_button_list'
|
import ComposeExtraButtonList from './compose_extra_button_list'
|
||||||
import ComposeDestinationHeader from './compose_destination_header'
|
import ComposeDestinationHeader from './compose_destination_header'
|
||||||
|
import ComposeFormSubmitButton from './compose_form_submit_button'
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
placeholder: { id: 'compose_form.placeholder', defaultMessage: "What's on your mind?" },
|
placeholder: { id: 'compose_form.placeholder', defaultMessage: "What's on your mind?" },
|
||||||
commentPlaceholder: { id: 'compose_form.comment_placeholder', defaultMessage: "Write a comment..." },
|
commentPlaceholder: { id: 'compose_form.comment_placeholder', defaultMessage: "Write a comment..." },
|
||||||
spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },
|
spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },
|
||||||
publish: { id: 'compose_form.publish', defaultMessage: 'Publish' },
|
post: { id: 'compose_form.post', defaultMessage: 'Post' },
|
||||||
publishEdit: { id: 'compose_form.publish_edit', defaultMessage: 'Publish Edit' },
|
postEdit: { id: 'compose_form.post_edit', defaultMessage: 'Post Edit' },
|
||||||
publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}' },
|
|
||||||
schedulePost: { id: 'compose_form.schedule_post', defaultMessage: 'Schedule Post' },
|
schedulePost: { id: 'compose_form.schedule_post', defaultMessage: 'Schedule Post' },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -73,12 +73,19 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleClick = (e) => {
|
handleClick = (e) => {
|
||||||
if (!this.form) return false;
|
const { isStandalone, isModalOpen, shouldCondense } = this.props
|
||||||
|
|
||||||
|
if (!this.form) return false
|
||||||
if (e.target) {
|
if (e.target) {
|
||||||
if (e.target.classList.contains('react-datepicker__time-list-item')) return false
|
if (e.target.classList.contains('react-datepicker__time-list-item')) return false
|
||||||
}
|
}
|
||||||
if (!this.form.contains(e.target)) {
|
if (!this.form.contains(e.target)) {
|
||||||
this.handleClickOutside();
|
this.handleClickOutside()
|
||||||
|
} else {
|
||||||
|
if (!isStandalone && !isModalOpen && !shouldCondense) {
|
||||||
|
this.props.openComposeModal()
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,7 +294,7 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
isDisabled={disabledButton}
|
isDisabled={disabledButton}
|
||||||
className={_s.px10}
|
className={_s.px10}
|
||||||
>
|
>
|
||||||
{intl.formatMessage(scheduledAt ? messages.schedulePost : messages.publish)}
|
{intl.formatMessage(scheduledAt ? messages.schedulePost : messages.post)}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -307,15 +314,11 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isModalOpen) {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isStandalone || isModalOpen) {
|
if (isStandalone || isModalOpen) {
|
||||||
return (
|
return (
|
||||||
<div className={[_s.d, _s.w100PC, _s.flexGrow1, _s.bgTertiary].join(' ')}>
|
<div className={[_s.d, _s.w100PC, _s.flexGrow1, _s.bgTertiary].join(' ')}>
|
||||||
|
|
||||||
<div className={[_s.d, _s.calcMaxH370PX, _s.overflowYScroll, _s.boxShadowBlock, _s.borderBottom1PX, _s.borderColorSecondary].join(' ')}>
|
<div className={[_s.d, _s.pb10, _s.calcMaxH370PX, _s.overflowYScroll, _s.boxShadowBlock, _s.borderBottom1PX, _s.borderColorSecondary].join(' ')}>
|
||||||
<ComposeDestinationHeader account={account} />
|
<ComposeDestinationHeader account={account} />
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
@ -327,11 +330,7 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
{
|
{
|
||||||
!!reduxReplyToId && isModalOpen && isMatch &&
|
!!reduxReplyToId && isModalOpen && isMatch &&
|
||||||
<div className={[_s.d, _s.px15, _s.py10, _s.mt5].join(' ')}>
|
<div className={[_s.d, _s.px15, _s.py10, _s.mt5].join(' ')}>
|
||||||
<StatusContainer
|
<StatusContainer contextType='compose' id={reduxReplyToId} isChild />
|
||||||
contextType='compose'
|
|
||||||
id={reduxReplyToId}
|
|
||||||
isChild
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,10 +373,7 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
{
|
{
|
||||||
(isUploading || anyMedia) &&
|
(isUploading || anyMedia) &&
|
||||||
<div className={[_s.d, _s.px15, _s.mt5].join(' ')}>
|
<div className={[_s.d, _s.px15, _s.mt5].join(' ')}>
|
||||||
<UploadForm
|
<UploadForm replyToId={replyToId} isModalOpen={isModalOpen} />
|
||||||
replyToId={replyToId}
|
|
||||||
isModalOpen={isModalOpen}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,33 +387,15 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
{
|
{
|
||||||
!!quoteOfId && isModalOpen && isMatch &&
|
!!quoteOfId && isModalOpen && isMatch &&
|
||||||
<div className={[_s.d, _s.px15, _s.py10, _s.mt5].join(' ')}>
|
<div className={[_s.d, _s.px15, _s.py10, _s.mt5].join(' ')}>
|
||||||
<StatusContainer
|
<StatusContainer contextType='compose' id={quoteOfId} isChild />
|
||||||
contextType='compose'
|
|
||||||
id={quoteOfId}
|
|
||||||
isChild
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={[_s.d, _s.w100PC, _s.pt10, _s.px10].join(' ')}>
|
{ !isModalOpen && <ComposeFormSubmitButton /> }
|
||||||
<Button
|
|
||||||
isBlock
|
|
||||||
isDisabled={disabledButton}
|
|
||||||
backgroundColor={disabledButton ? 'secondary' : 'brand'}
|
|
||||||
color={disabledButton ? 'tertiary' : 'white'}
|
|
||||||
className={[_s.fs15PX, _s.px15, _s.flexGrow1, _s.mlAuto].join(' ')}
|
|
||||||
onClick={this.handleSubmit}
|
|
||||||
>
|
|
||||||
<Text color='inherit' weight='medium' align='center'>
|
|
||||||
{intl.formatMessage(scheduledAt ? messages.schedulePost : edit ? messages.publishEdit : messages.publish)}
|
|
||||||
</Text>
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ComposeExtraButtonList isMatch={isMatch} hidePro={hidePro} edit={edit} />
|
<ComposeExtraButtonList isMatch={isMatch} hidePro={hidePro} edit={edit} isModal={isModalOpen} />
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -431,26 +409,13 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
<Text className={[_s.d, _s.px15, _s.pt15, _s.pb10].join(' ')} size='medium' color='tertiary'>
|
<Text className={[_s.d, _s.px15, _s.pt15, _s.pb10].join(' ')} size='medium' color='tertiary'>
|
||||||
{intl.formatMessage((shouldCondense || !!reduxReplyToId) && isMatch ? messages.commentPlaceholder : messages.placeholder)}
|
{intl.formatMessage((shouldCondense || !!reduxReplyToId) && isMatch ? messages.commentPlaceholder : messages.placeholder)}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
||||||
<div className={[_s.d, _s.flexRow, _s.aiCenter, _s.mt5, _s.px10, _s.flexWrap].join(' ')}>
|
<div className={[_s.d, _s.flexRow, _s.aiCenter, _s.mt5, _s.px10, _s.flexWrap].join(' ')}>
|
||||||
<UploadButton />
|
<UploadButton />
|
||||||
<EmojiPickerButton isMatch={isMatch} />
|
<EmojiPickerButton isMatch={isMatch} />
|
||||||
<Responsive min={BREAKPOINT_EXTRA_EXTRA_SMALL}>
|
<PollButton />
|
||||||
<PollButton />
|
<ComposeFormSubmitButton />
|
||||||
</Responsive>
|
|
||||||
<Button
|
|
||||||
isOutline
|
|
||||||
isDisabled={disabledButton}
|
|
||||||
backgroundColor='none'
|
|
||||||
color='brand'
|
|
||||||
className={[_s.fs15PX, _s.px15, _s.flexGrow1, _s.maxW212PX, _s.mlAuto].join(' ')}
|
|
||||||
onClick={this.handleSubmit}
|
|
||||||
>
|
|
||||||
<Text color='inherit' weight='medium' align='center'>
|
|
||||||
{intl.formatMessage(scheduledAt ? messages.schedulePost : edit ? messages.publishEdit : messages.publish)}
|
|
||||||
</Text>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div className={[_s.d, _s.posAbs, _s.z2, _s.left0, _s.right0, _s.bottom0, _s.top0].join(' ')} />
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -481,6 +446,7 @@ ComposeForm.propTypes = {
|
||||||
onFetchSuggestions: PropTypes.func.isRequired,
|
onFetchSuggestions: PropTypes.func.isRequired,
|
||||||
onSuggestionSelected: PropTypes.func.isRequired,
|
onSuggestionSelected: PropTypes.func.isRequired,
|
||||||
onChangeSpoilerText: PropTypes.func.isRequired,
|
onChangeSpoilerText: PropTypes.func.isRequired,
|
||||||
|
openComposeModal: PropTypes.func.isRequired,
|
||||||
onPaste: PropTypes.func.isRequired,
|
onPaste: PropTypes.func.isRequired,
|
||||||
showSearch: PropTypes.bool,
|
showSearch: PropTypes.bool,
|
||||||
anyMedia: PropTypes.bool,
|
anyMedia: PropTypes.bool,
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
import React from 'react'
|
||||||
|
import PropTypes from 'prop-types'
|
||||||
|
import { CX } from '../../../constants'
|
||||||
|
import Button from '../../../components/button'
|
||||||
|
import Text from '../../../components/text'
|
||||||
|
|
||||||
|
class ComposeFormSubmitButton extends React.PureComponent {
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const {
|
||||||
|
title,
|
||||||
|
active,
|
||||||
|
small,
|
||||||
|
disabledButton,
|
||||||
|
} = this.props
|
||||||
|
|
||||||
|
const containerClasses = CX({
|
||||||
|
d: 1,
|
||||||
|
mr5: 1,
|
||||||
|
jcCenter: 1,
|
||||||
|
h40PX: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const btnClasses = CX({
|
||||||
|
d: 1,
|
||||||
|
circle: 1,
|
||||||
|
noUnderline: 1,
|
||||||
|
font: 1,
|
||||||
|
cursorPointer: 1,
|
||||||
|
textAlignCenter: 1,
|
||||||
|
outlineNone: 1,
|
||||||
|
bgTransparent: 1,
|
||||||
|
flexRow: 1,
|
||||||
|
bgSubtle_onHover: !active,
|
||||||
|
bgBrandLight: active,
|
||||||
|
py10: 1,
|
||||||
|
px10: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const iconClasses = CX({
|
||||||
|
cSecondary: !active,
|
||||||
|
cWhite: active,
|
||||||
|
mr10: 1,
|
||||||
|
py2: small,
|
||||||
|
ml10: small,
|
||||||
|
})
|
||||||
|
|
||||||
|
const iconSize = !small ? '18px' : '16px'
|
||||||
|
const textColor = !active ? 'primary' : 'white'
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={containerClasses}>
|
||||||
|
<div className={[_s.d, _s.w100PC, _s.py10, _s.px10].join(' ')}>
|
||||||
|
<Button
|
||||||
|
isBlock
|
||||||
|
isDisabled={disabledButton}
|
||||||
|
backgroundColor={disabledButton ? 'secondary' : 'brand'}
|
||||||
|
color={disabledButton ? 'tertiary' : 'white'}
|
||||||
|
className={[_s.fs15PX, _s.px15, _s.flexGrow1, _s.mlAuto].join(' ')}
|
||||||
|
onClick={this.handleSubmit}
|
||||||
|
>
|
||||||
|
<Text color='inherit' weight='medium' align='center'>
|
||||||
|
post
|
||||||
|
</Text>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// {intl.formatMessage(scheduledAt ? messages.schedulePost : edit ? messages.postEdit : messages.post)}
|
||||||
|
ComposeFormSubmitButton.propTypes = {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ComposeFormSubmitButton
|
|
@ -13,6 +13,8 @@ import {
|
||||||
uploadCompose,
|
uploadCompose,
|
||||||
changeScheduledAt,
|
changeScheduledAt,
|
||||||
} from '../../../actions/compose'
|
} from '../../../actions/compose'
|
||||||
|
import { openModal } from '../../../actions/modal'
|
||||||
|
import { MODAL_COMPOSE } from '../../../constants'
|
||||||
import { me } from '../../../initial_state'
|
import { me } from '../../../initial_state'
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => {
|
const mapStateToProps = (state, props) => {
|
||||||
|
@ -20,7 +22,7 @@ const mapStateToProps = (state, props) => {
|
||||||
replyToId,
|
replyToId,
|
||||||
isStandalone,
|
isStandalone,
|
||||||
shouldCondense,
|
shouldCondense,
|
||||||
modal,
|
isModal,
|
||||||
} = props
|
} = props
|
||||||
|
|
||||||
const reduxReplyToId = state.getIn(['compose', 'in_reply_to'])
|
const reduxReplyToId = state.getIn(['compose', 'in_reply_to'])
|
||||||
|
@ -37,7 +39,7 @@ const mapStateToProps = (state, props) => {
|
||||||
|
|
||||||
if (isModalOpen) isMatch = true
|
if (isModalOpen) isMatch = true
|
||||||
if (isModalOpen && shouldCondense) isMatch = false
|
if (isModalOpen && shouldCondense) isMatch = false
|
||||||
if (isModalOpen && (!modal && !isStandalone)) isMatch = false
|
if (isModalOpen && (!isModal && !isStandalone)) isMatch = false
|
||||||
|
|
||||||
if (!isMatch) {
|
if (!isMatch) {
|
||||||
return {
|
return {
|
||||||
|
@ -126,6 +128,10 @@ const mapDispatchToProps = (dispatch, { isStandalone }) => ({
|
||||||
setScheduledAt(date) {
|
setScheduledAt(date) {
|
||||||
dispatch(changeScheduledAt(date))
|
dispatch(changeScheduledAt(date))
|
||||||
},
|
},
|
||||||
|
|
||||||
|
openComposeModal() {
|
||||||
|
dispatch(openModal(MODAL_COMPOSE))
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
function mergeProps(stateProps, dispatchProps, ownProps) {
|
function mergeProps(stateProps, dispatchProps, ownProps) {
|
||||||
|
|
|
@ -43,7 +43,6 @@ class Deck extends React.PureComponent {
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.props.dispatch(deckConnect())
|
this.props.dispatch(deckConnect())
|
||||||
console.log("this.props.isPro:", this.props)
|
|
||||||
if (!this.props.isPro) this.handleOnOpenProUpgradeModal()
|
if (!this.props.isPro) this.handleOnOpenProUpgradeModal()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +51,6 @@ class Deck extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleOnOpenProUpgradeModal = () => {
|
handleOnOpenProUpgradeModal = () => {
|
||||||
console.log("handleOnOpenProUpgradeModal")
|
|
||||||
this.props.dispatch(openModal(MODAL_PRO_UPGRADE))
|
this.props.dispatch(openModal(MODAL_PRO_UPGRADE))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +69,7 @@ class Deck extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
getDeckColumn = (deckColumn, index) => {
|
getDeckColumn = (deckColumn, index) => {
|
||||||
if (!deckColumn || !isPro) return null
|
if (!deckColumn || !this.props.isPro) return null
|
||||||
|
|
||||||
let Component = null
|
let Component = null
|
||||||
let componentParams = {}
|
let componentParams = {}
|
||||||
|
@ -178,7 +176,7 @@ class Deck extends React.PureComponent {
|
||||||
<DeckColumn title='Gab Deck for GabPRO' icon='pro' noButtons>
|
<DeckColumn title='Gab Deck for GabPRO' icon='pro' noButtons>
|
||||||
<div className={[_s.d, _s.px15, _s.py15].join(' ')}>
|
<div className={[_s.d, _s.px15, _s.py15].join(' ')}>
|
||||||
<Text>
|
<Text>
|
||||||
Gab Deck for GabPRO
|
Gab Deck for GabPRO. Some text about what it does and some buttons on going pro to use it.
|
||||||
</Text>
|
</Text>
|
||||||
</div>
|
</div>
|
||||||
</DeckColumn>
|
</DeckColumn>
|
||||||
|
@ -188,7 +186,7 @@ class Deck extends React.PureComponent {
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
!isEmpty && isPro &&
|
!isEmpty && isPro &&
|
||||||
gabDeckOrder.splice(0, GAB_DECK_MAX_ITEMS).map((deckOption, i) => this.getDeckColumn(deckOption, i))
|
gabDeckOrder.map((deckOption, i) => this.getDeckColumn(deckOption, i))
|
||||||
}
|
}
|
||||||
</SortableContainer>
|
</SortableContainer>
|
||||||
)
|
)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"account.follows": "Sigue",
|
"account.follows": "Sigue",
|
||||||
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
|
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
|
||||||
"account.follows_you": "Te sigue",
|
"account.follows_you": "Te sigue",
|
||||||
"account.hide_reposts": "Ocultar retoots de @{name}",
|
"account.hide_reposts": "Ocultar reposts de @{name}",
|
||||||
"account.link_verified_on": "Ownership of this link was checked on {date}",
|
"account.link_verified_on": "Ownership of this link was checked on {date}",
|
||||||
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
||||||
"account.media": "Media",
|
"account.media": "Media",
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
"account.report": "Reportar a @{name}",
|
"account.report": "Reportar a @{name}",
|
||||||
"account.requested": "Esperando aprobación",
|
"account.requested": "Esperando aprobación",
|
||||||
"account.share": "Compartir el perfil de @{name}",
|
"account.share": "Compartir el perfil de @{name}",
|
||||||
"account.show_reposts": "Mostrar retoots de @{name}",
|
"account.show_reposts": "Mostrar reposts de @{name}",
|
||||||
"account.unblock": "Desbloquear a @{name}",
|
"account.unblock": "Desbloquear a @{name}",
|
||||||
"account.unblock_domain": "Mostrar a {domain}",
|
"account.unblock_domain": "Mostrar a {domain}",
|
||||||
"account.unendorse": "No mostrar en el perfil",
|
"account.unendorse": "No mostrar en el perfil",
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||||
"home.column_settings.basic": "Básico",
|
"home.column_settings.basic": "Básico",
|
||||||
"home.column_settings.show_reposts": "Mostrar retoots",
|
"home.column_settings.show_reposts": "Mostrar reposts",
|
||||||
"home.column_settings.show_replies": "Mostrar respuestas",
|
"home.column_settings.show_replies": "Mostrar respuestas",
|
||||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||||
|
@ -263,7 +263,7 @@
|
||||||
"notifications.column_settings.mention": "Menciones:",
|
"notifications.column_settings.mention": "Menciones:",
|
||||||
"notifications.column_settings.poll": "Poll results:",
|
"notifications.column_settings.poll": "Poll results:",
|
||||||
"notifications.column_settings.push": "Notificaciones push",
|
"notifications.column_settings.push": "Notificaciones push",
|
||||||
"notifications.column_settings.repost": "Retoots:",
|
"notifications.column_settings.repost": "reposts:",
|
||||||
"notifications.column_settings.show": "Mostrar en columna",
|
"notifications.column_settings.show": "Mostrar en columna",
|
||||||
"notifications.column_settings.sound": "Reproducir sonido",
|
"notifications.column_settings.sound": "Reproducir sonido",
|
||||||
"notifications.filter.all": "All",
|
"notifications.filter.all": "All",
|
||||||
|
|
|
@ -79,6 +79,10 @@ class GroupsPage extends React.PureComponent {
|
||||||
to: isPro ? '/groups/create' : undefined,
|
to: isPro ? '/groups/create' : undefined,
|
||||||
onClick: isPro ? undefined : this.handleOpenProUpgradeModal,
|
onClick: isPro ? undefined : this.handleOpenProUpgradeModal,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
icon: 'search',
|
||||||
|
to: '/search',
|
||||||
|
},
|
||||||
]}
|
]}
|
||||||
tabs={tabs}
|
tabs={tabs}
|
||||||
page='groups'
|
page='groups'
|
||||||
|
|
|
@ -95,7 +95,7 @@ class HomePage extends React.PureComponent {
|
||||||
UserPanel,
|
UserPanel,
|
||||||
ProgressPanel,
|
ProgressPanel,
|
||||||
<WrappedBundle component={ProPanel} componentParams={{ isPro: isPro }} />,
|
<WrappedBundle component={ProPanel} componentParams={{ isPro: isPro }} />,
|
||||||
<WrappedBundle component={TrendsBreakingPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
<WrappedBundle component={TrendsBreakingPanel} />,
|
||||||
<WrappedBundle component={ShopPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
<WrappedBundle component={ShopPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
||||||
<WrappedBundle component={ListsPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
<WrappedBundle component={ListsPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
||||||
<WrappedBundle component={UserSuggestionsPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
<WrappedBundle component={UserSuggestionsPanel} componentParams={{ isLazy: true, shouldLoad: lazyLoaded }} />,
|
||||||
|
|
|
@ -491,6 +491,7 @@ pre {
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
.topNeg50PX { top: -50px; }
|
.topNeg50PX { top: -50px; }
|
||||||
|
.topNeg20PX { top: -20px; }
|
||||||
.top0 { top: 0; }
|
.top0 { top: 0; }
|
||||||
.top120PX { top: 120px; }
|
.top120PX { top: 120px; }
|
||||||
.top60PX { top: 60px; }
|
.top60PX { top: 60px; }
|
||||||
|
@ -499,6 +500,7 @@ pre {
|
||||||
.top50PC { top: 50%; }
|
.top50PC { top: 50%; }
|
||||||
|
|
||||||
.bottom0 { bottom: 0; }
|
.bottom0 { bottom: 0; }
|
||||||
|
.bottom20PX { bottom: 20px; }
|
||||||
.bottom55PX { bottom: 55px; }
|
.bottom55PX { bottom: 55px; }
|
||||||
.bottom60PX { bottom: 60px; }
|
.bottom60PX { bottom: 60px; }
|
||||||
.bottomAuto { bottom: auto; }
|
.bottomAuto { bottom: auto; }
|
||||||
|
@ -617,6 +619,7 @@ pre {
|
||||||
.w14PX { width: 14px; }
|
.w14PX { width: 14px; }
|
||||||
.w10PX { width: 10px; }
|
.w10PX { width: 10px; }
|
||||||
.w4PX { width: 4px; }
|
.w4PX { width: 4px; }
|
||||||
|
.w2PX { width: 2px; }
|
||||||
.w1PX { width: 1px; }
|
.w1PX { width: 1px; }
|
||||||
.wAuto { width: auto; }
|
.wAuto { width: auto; }
|
||||||
|
|
||||||
|
@ -808,6 +811,7 @@ pre {
|
||||||
.mr2 { margin-right: 2px; }
|
.mr2 { margin-right: 2px; }
|
||||||
.mrAuto { margin-right: auto; }
|
.mrAuto { margin-right: auto; }
|
||||||
|
|
||||||
|
.ml20 { margin-left: 20px; }
|
||||||
.ml15 { margin-left: 15px; }
|
.ml15 { margin-left: 15px; }
|
||||||
.ml10 { margin-left: 10px; }
|
.ml10 { margin-left: 10px; }
|
||||||
.ml7 { margin-left: 7px; }
|
.ml7 { margin-left: 7px; }
|
||||||
|
@ -1205,6 +1209,11 @@ pre {
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* */
|
||||||
|
:global(.thread-hovering > span) {
|
||||||
|
background-color: var(--solid_color_secondary) !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
:global(.emoji-mart-search input) {
|
:global(.emoji-mart-search input) {
|
||||||
|
|
|
@ -21,7 +21,7 @@ class StatusFilter
|
||||||
end
|
end
|
||||||
|
|
||||||
def filtered_status?
|
def filtered_status?
|
||||||
blocking_account? || blocking_domain? || muting_account?
|
blocking_account? || muting_account?
|
||||||
end
|
end
|
||||||
|
|
||||||
def blocking_account?
|
def blocking_account?
|
||||||
|
|
|
@ -87,9 +87,6 @@ class Group < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_slug
|
def set_slug
|
||||||
puts "tilly-5: " + slug.to_s
|
|
||||||
puts "tilly-6: " + self.member_count.to_s
|
|
||||||
|
|
||||||
if !slug.nil? && self.member_count > 50 && self.slug.nil?
|
if !slug.nil? && self.member_count > 50 && self.slug.nil?
|
||||||
self.slug = slug.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
self.slug = slug.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
||||||
elsif !slug.nil? && self.member_count < 50 && self.slug.nil?
|
elsif !slug.nil? && self.member_count < 50 && self.slug.nil?
|
||||||
|
|
|
@ -22,7 +22,6 @@ class InstancePresenter
|
||||||
end
|
end
|
||||||
|
|
||||||
def status_count
|
def status_count
|
||||||
puts "tilly-hello-1"
|
|
||||||
Rails.cache.fetch('local_status_count') { Account.local.joins(:account_stat).sum('account_stats.statuses_count') }.to_i
|
Rails.cache.fetch('local_status_count') { Account.local.joins(:account_stat).sum('account_stats.statuses_count') }.to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
||||||
has_one :preloadable_poll, key: :poll, serializer: REST::PollSerializer
|
has_one :preloadable_poll, key: :poll, serializer: REST::PollSerializer
|
||||||
|
|
||||||
def id
|
def id
|
||||||
# puts "tilly instance:" + instance_options.inspect
|
|
||||||
object.id.to_s
|
object.id.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue