diff --git a/Gemfile.lock b/Gemfile.lock index 16959634..4aacc615 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -15,121 +15,120 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (5.2.3) - actionpack (= 5.2.3) + actioncable (5.2.4.4) + actionpack (= 5.2.4.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) + actionmailer (5.2.4.4) + actionpack (= 5.2.4.4) + actionview (= 5.2.4.4) + activejob (= 5.2.4.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.3) - actionview (= 5.2.3) - activesupport (= 5.2.3) - rack (~> 2.0) + actionpack (5.2.4.4) + actionview (= 5.2.4.4) + activesupport (= 5.2.4.4) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.3) - activesupport (= 5.2.3) + actionview (5.2.4.4) + activesupport (= 5.2.4.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - active_model_serializers (0.10.9) - actionpack (>= 4.1, < 6) - activemodel (>= 4.1, < 6) + active_model_serializers (0.10.11) + actionpack (>= 4.1, < 6.1) + activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - active_record_query_trace (1.6.2) - activejob (5.2.3) - activesupport (= 5.2.3) + active_record_query_trace (1.8) + activejob (5.2.4.4) + activesupport (= 5.2.4.4) globalid (>= 0.3.6) - activemodel (5.2.3) - activesupport (= 5.2.3) - activerecord (5.2.3) - activemodel (= 5.2.3) - activesupport (= 5.2.3) + activemodel (5.2.4.4) + activesupport (= 5.2.4.4) + activerecord (5.2.4.4) + activemodel (= 5.2.4.4) + activesupport (= 5.2.4.4) arel (>= 9.0) - activestorage (5.2.3) - actionpack (= 5.2.3) - activerecord (= 5.2.3) + activestorage (5.2.4.4) + actionpack (= 5.2.4.4) + activerecord (= 5.2.4.4) marcel (~> 0.3.1) - activesupport (5.2.3) + activesupport (5.2.4.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) - airbrussh (1.3.0) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + airbrussh (1.4.0) sshkit (>= 1.6.1, != 1.7.0) annotate (2.7.5) activerecord (>= 3.2, < 7.0) rake (>= 10.4, < 13.0) arel (9.0.0) - ast (2.4.0) + ast (2.4.1) attr_encrypted (3.1.0) encryptor (~> 3.0.0) av (0.9.0) cocaine (~> 0.5.3) - aws-eventstream (1.0.3) - aws-partitions (1.169.0) - aws-sdk-core (3.54.0) - aws-eventstream (~> 1.0, >= 1.0.2) - aws-partitions (~> 1.0) + aws-eventstream (1.1.0) + aws-partitions (1.404.0) + aws-sdk-core (3.110.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.21.0) - aws-sdk-core (~> 3, >= 3.53.0) + aws-sdk-kms (1.39.0) + aws-sdk-core (~> 3, >= 3.109.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.41.0) - aws-sdk-core (~> 3, >= 3.53.0) + aws-sdk-s3 (1.86.0) + aws-sdk-core (~> 3, >= 3.109.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) - aws-sigv4 (1.1.0) - aws-eventstream (~> 1.0, >= 1.0.2) - bcrypt (3.1.12) - benchmark-ips (2.7.2) - better_errors (2.5.1) + aws-sigv4 (1.2.2) + aws-eventstream (~> 1, >= 1.0.2) + bcrypt (3.1.16) + benchmark-ips (2.8.4) + better_errors (2.9.1) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) binding_of_caller (0.8.0) debug_inspector (>= 0.0.1) - blurhash (0.1.3) + blurhash (0.1.4) ffi (~> 1.10.0) - bootsnap (1.4.4) + bootsnap (1.5.1) msgpack (~> 1.0) - brakeman (4.5.1) - browser (2.5.3) - builder (3.2.3) - bullet (6.0.0) + brakeman (4.10.0) + browser (5.1.0) + builder (3.2.4) + bullet (6.1.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) - bundler-audit (0.6.1) + bundler-audit (0.7.0.1) bundler (>= 1.2.0, < 3) - thor (~> 0.18) - byebug (11.0.0) - capistrano (3.11.0) + thor (>= 0.18, < 2) + byebug (11.1.3) + capistrano (3.14.1) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) sshkit (>= 1.9.0) - capistrano-bundler (1.3.0) + capistrano-bundler (2.0.1) capistrano (~> 3.1) - sshkit (~> 1.2) - capistrano-rails (1.4.0) + capistrano-rails (1.6.1) capistrano (~> 3.1) - capistrano-bundler (~> 1.1) - capistrano-rbenv (2.1.4) + capistrano-bundler (>= 1.1, < 3) + capistrano-rbenv (2.2.0) capistrano (~> 3.1) sshkit (~> 1.3) capistrano-yarn (2.0.2) capistrano (~> 3.0) - capybara (3.22.0) + capybara (3.34.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -139,81 +138,83 @@ GEM xpath (~> 3.2) case_transform (0.2) activesupport - charlock_holmes (0.7.6) - chewy (5.0.0) + charlock_holmes (0.7.7) + chewy (5.1.0) activesupport (>= 4.0) elasticsearch (>= 2.0.0) elasticsearch-dsl - chunky_png (1.3.10) - cld3 (3.2.4) - ffi (>= 1.1.0, < 1.11.0) + chunky_png (1.3.14) + cld3 (3.2.6) + ffi (>= 1.1.0, < 1.12.0) climate_control (0.2.0) cocaine (0.5.8) climate_control (>= 0.0.3, < 1.0) - coderay (1.1.2) - concurrent-ruby (1.1.5) + coderay (1.1.3) + concurrent-ruby (1.1.7) connection_pool (2.2.3) - crack (0.4.3) - safe_yaml (~> 1.0.0) - crass (1.0.4) - css_parser (1.6.0) + crack (0.4.4) + crass (1.0.6) + css_parser (1.7.1) addressable debug_inspector (0.0.3) - derailed_benchmarks (1.3.5) + derailed_benchmarks (1.8.1) benchmark-ips (~> 2) get_process_mem (~> 0) heapy (~> 0) memory_profiler (~> 0) + mini_histogram (>= 0.2.1) rack (>= 1) - rake (> 10, < 13) - thor (~> 0.19) - devise (4.6.2) + rake (> 10, < 14) + ruby-statistics (>= 2.1) + thor (>= 0.19, < 2) + devise (4.7.3) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 4.1.0, < 6.0) + railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-two-factor (3.0.3) - activesupport (< 5.3) + devise-two-factor (3.1.0) + activesupport (< 6.1) attr_encrypted (>= 1.3, < 4, != 2) devise (~> 4.0) - railties (< 5.3) + railties (< 6.1) rotp (~> 2.0) devise_pam_authenticatable2 (9.2.0) devise (>= 4.0.0) rpam2 (~> 4.0) - diff-lcs (1.3) - docile (1.3.0) - domain_name (0.5.20180417) + diff-lcs (1.4.4) + docile (1.3.2) + domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.1.0) + doorkeeper (5.4.0) railties (>= 5) - dotenv (2.7.2) - dotenv-rails (2.7.2) - dotenv (= 2.7.2) - railties (>= 3.2, < 6.1) - elasticsearch (6.0.2) - elasticsearch-api (= 6.0.2) - elasticsearch-transport (= 6.0.2) - elasticsearch-api (6.0.2) + dotenv (2.7.6) + dotenv-rails (2.7.6) + dotenv (= 2.7.6) + railties (>= 3.2) + e2mmap (0.1.0) + elasticsearch (7.10.0) + elasticsearch-api (= 7.10.0) + elasticsearch-transport (= 7.10.0) + elasticsearch-api (7.10.0) multi_json - elasticsearch-dsl (0.1.5) - elasticsearch-transport (6.0.2) - faraday + elasticsearch-dsl (0.1.9) + elasticsearch-transport (7.10.0) + faraday (~> 1) multi_json encryptor (3.0.0) - equatable (0.5.0) - erubi (1.8.0) - et-orbi (1.1.6) + erubi (1.10.0) + et-orbi (1.2.4) tzinfo - excon (0.62.0) - fabrication (2.20.2) - faker (1.9.3) + excon (0.78.1) + fabrication (2.21.1) + faker (1.9.6) i18n (>= 0.7) - faraday (0.15.0) + faraday (1.1.0) multipart-post (>= 1.2, < 3) + ruby2_keywords fast_blank (1.0.0) - fastimage (2.1.5) + fastimage (2.2.0) ffi (1.10.0) fog-core (2.1.0) builder @@ -223,18 +224,19 @@ GEM fog-json (1.2.0) fog-core multi_json (~> 1.10) - fog-openstack (0.3.7) + fog-openstack (0.3.10) fog-core (>= 1.45, <= 2.1.0) fog-json (>= 1.0) ipaddress (>= 0.8) formatador (0.2.5) - fugit (1.1.6) - et-orbi (~> 1.1, >= 1.1.6) - raabro (~> 1.1) - fuubar (2.3.2) + fugit (1.4.1) + et-orbi (~> 1.1, >= 1.1.8) + raabro (~> 1.4) + fuubar (2.5.0) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) - get_process_mem (0.2.3) + get_process_mem (0.2.7) + ffi (~> 1.0) globalid (0.4.2) activesupport (>= 4.2.0) goldfinger (2.1.0) @@ -242,8 +244,8 @@ GEM http (~> 3.0) nokogiri (~> 1.8) oj (~> 3.0) - hamlit (2.9.3) - temple (>= 0.8.0) + hamlit (2.13.0) + temple (>= 0.8.2) thor tilt hamlit-rails (0.2.3) @@ -253,10 +255,11 @@ GEM railties (>= 4.0.1) hamster (3.0.0) concurrent-ruby (~> 1.0) - hashdiff (0.3.7) - hashie (3.6.0) - heapy (0.1.4) - highline (2.0.1) + hashdiff (1.0.1) + hashie (4.1.0) + heapy (0.2.0) + thor + highline (2.0.3) hiredis (0.6.3) hkdf (0.3.0) htmlentities (4.3.4) @@ -267,14 +270,14 @@ GEM http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (2.1.1) + http-form_data (2.3.0) http_accept_language (2.1.1) - httplog (1.3.0) + httplog (1.4.3) rack (>= 1.0) rainbow (>= 2.0.0) - i18n (1.6.0) + i18n (1.8.5) concurrent-ruby (~> 1.0) - i18n-tasks (0.9.29) + i18n-tasks (0.9.31) activesupport (>= 4.0.2) ast (>= 2.1.0) erubi @@ -286,46 +289,49 @@ GEM terminal-table (>= 1.5.1) idn-ruby (0.1.0) ipaddress (0.8.3) - iso-639 (0.2.8) - jaro_winkler (1.5.2) + iso-639 (0.3.5) jmespath (1.4.0) - json (2.1.0) - json-ld (3.0.2) - multi_json (~> 1.12) - rdf (>= 2.2.8, < 4.0) - json-ld-preloaded (3.0.2) - json-ld (~> 3.0) - multi_json (~> 1.12) - rdf (~> 3.0) - jsonapi-renderer (0.2.0) - jwt (2.1.0) - kaminari (1.1.1) + json (2.3.1) + json-canonicalization (0.2.0) + json-ld (3.1.5) + htmlentities (~> 4.3) + json-canonicalization (~> 0.2) + link_header (~> 0.0, >= 0.0.8) + multi_json (~> 1.14) + rack (~> 2.0) + rdf (~> 3.1) + json-ld-preloaded (3.1.3) + json-ld (~> 3.1) + rdf (~> 3.1) + jsonapi-renderer (0.2.2) + jwt (2.2.2) + kaminari (1.2.1) activesupport (>= 4.1.0) - kaminari-actionview (= 1.1.1) - kaminari-activerecord (= 1.1.1) - kaminari-core (= 1.1.1) - kaminari-actionview (1.1.1) + kaminari-actionview (= 1.2.1) + kaminari-activerecord (= 1.2.1) + kaminari-core (= 1.2.1) + kaminari-actionview (1.2.1) actionview - kaminari-core (= 1.1.1) - kaminari-activerecord (1.1.1) + kaminari-core (= 1.2.1) + kaminari-activerecord (1.2.1) activerecord - kaminari-core (= 1.1.1) - kaminari-core (1.1.1) - launchy (2.4.3) - addressable (~> 2.3) + kaminari-core (= 1.2.1) + kaminari-core (1.2.1) + launchy (2.5.0) + addressable (~> 2.7) letter_opener (1.7.0) launchy (~> 2.2) - letter_opener_web (1.3.4) + letter_opener_web (1.4.0) actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) link_header (0.0.8) - lograge (0.11.1) + lograge (0.11.2) actionpack (>= 4) activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.2.3) + loofah (2.8.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -336,54 +342,54 @@ GEM mimemagic (~> 0.3.2) mario-redis-lock (1.2.1) redis (>= 3.0.5) - memory_profiler (0.9.13) - method_source (0.9.2) - microformats (4.1.0) - json (~> 2.1) - nokogiri (~> 1.8, >= 1.8.3) - mime-types (3.2.2) + memory_profiler (0.9.14) + method_source (1.0.0) + microformats (4.2.1) + json (~> 2.2) + nokogiri (~> 1.10) + mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2018.0812) - mimemagic (0.3.3) - mini_mime (1.0.1) + mime-types-data (3.2020.1104) + mimemagic (0.3.5) + mini_histogram (0.3.1) + mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.11.3) - msgpack (1.2.10) - multi_json (1.13.1) - multipart-post (2.0.0) - necromancer (0.5.0) - net-ldap (0.16.1) - net-scp (1.2.1) - net-ssh (>= 2.6.5) - net-ssh (5.0.2) - nio4r (2.3.1) - nokogiri (1.10.3) + minitest (5.14.2) + msgpack (1.3.3) + multi_json (1.15.0) + multipart-post (2.1.1) + net-ldap (0.17.0) + net-scp (3.0.0) + net-ssh (>= 2.6.5, < 7.0.0) + net-ssh (6.1.0) + nio4r (2.5.4) + nokogiri (1.10.10) mini_portile2 (~> 2.4.0) - nokogumbo (2.0.0) + nokogumbo (2.0.4) nokogiri (~> 1.8, >= 1.8.4) nsa (0.2.7) activesupport (>= 4.2, < 6) concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.7.12) - omniauth (1.9.0) - hashie (>= 3.4.6, < 3.7.0) + oj (3.10.16) + omniauth (1.9.1) + hashie (>= 3.4.6) rack (>= 1.6.2, < 3) omniauth-cas (1.1.1) addressable (~> 2.3) nokogiri (~> 1.5) omniauth (~> 1.2) - omniauth-saml (1.10.1) + omniauth-saml (1.10.3) omniauth (~> 1.3, >= 1.3.2) - ruby-saml (~> 1.7) + ruby-saml (~> 1.9) orm_adapter (0.5.0) ostatus2 (2.0.3) addressable (~> 2.5) http (~> 3.0) nokogiri (~> 1.8) - ox (2.10.1) - paperclip (6.0.0) + ox (2.13.4) + paperclip (6.1.0) activemodel (>= 4.2.0) activesupport (>= 4.2.0) mime-types @@ -392,155 +398,161 @@ GEM paperclip-av-transcoder (0.6.4) av (~> 0.9.0) paperclip (>= 2.5.2) - parallel (1.17.0) - parallel_tests (2.29.0) + parallel (1.20.1) + parallel_tests (2.32.0) parallel - parser (2.6.3.0) - ast (~> 2.4.0) - pastel (0.7.2) - equatable (~> 0.5.0) - tty-color (~> 0.4.0) + parser (2.7.2.0) + ast (~> 2.4.1) + pastel (0.8.0) + tty-color (~> 0.5) pg (1.2.3) - pghero (2.7.0) + pghero (2.7.3) activerecord (>= 5) - pkg-config (1.3.7) - premailer (1.11.1) + pkg-config (1.4.4) + premailer (1.14.2) addressable css_parser (>= 1.6.0) htmlentities (>= 4.0.0) - premailer-rails (1.10.2) - actionmailer (>= 3, < 6) + premailer-rails (1.11.1) + actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) private_address_check (0.5.0) - pry (0.12.2) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.7.0) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) byebug (~> 11.0) - pry (~> 0.10) + pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (3.1.0) - puma (5.0) + public_suffix (4.0.6) + puma (5.1.0) nio4r (~> 2.0) - pundit (2.0.1) + pundit (2.1.0) activesupport (>= 3.0.0) - raabro (1.1.6) + raabro (1.4.0) rack (2.2.3) - rack-attack (6.0.0) + rack-attack (6.3.1) rack (>= 1.0, < 3) - rack-cors (1.0.3) + rack-cors (1.1.1) + rack (>= 2.0.0) rack-proxy (0.6.5) rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.3) - actioncable (= 5.2.3) - actionmailer (= 5.2.3) - actionpack (= 5.2.3) - actionview (= 5.2.3) - activejob (= 5.2.3) - activemodel (= 5.2.3) - activerecord (= 5.2.3) - activestorage (= 5.2.3) - activesupport (= 5.2.3) + rails (5.2.4.4) + actioncable (= 5.2.4.4) + actionmailer (= 5.2.4.4) + actionpack (= 5.2.4.4) + actionview (= 5.2.4.4) + activejob (= 5.2.4.4) + activemodel (= 5.2.4.4) + activerecord (= 5.2.4.4) + activestorage (= 5.2.4.4) + activesupport (= 5.2.4.4) bundler (>= 1.3.0) - railties (= 5.2.3) + railties (= 5.2.4.4) sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.4) - actionpack (>= 5.0.1.x) - actionview (>= 5.0.1.x) - activesupport (>= 5.0.1.x) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.0.4) - loofah (~> 2.2, >= 2.2.2) + rails-html-sanitizer (1.3.0) + loofah (~> 2.3) rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) - rails-settings-cached (0.6.6) + rails-settings-cached (0.7.2) rails (>= 4.2.0) - railties (5.2.3) - actionpack (= 5.2.3) - activesupport (= 5.2.3) + railties (5.2.4.4) + actionpack (= 5.2.4.4) + activesupport (= 5.2.4.4) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) - rake (12.3.2) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + rake (12.3.3) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) ffi (~> 1.0) - rdf (3.0.9) + rdf (3.1.7) hamster (~> 3.0) link_header (~> 0.0, >= 0.0.8) - rdf-normalize (0.3.3) - rdf (>= 2.2, < 4.0) - redcarpet (3.4.0) + rdf-normalize (0.4.0) + rdf (~> 3.1) + redcarpet (3.5.0) redis (4.2.5) - redis-actionpack (5.0.2) - actionpack (>= 4.0, < 6) - redis-rack (>= 1, < 3) + redis-actionpack (5.2.0) + actionpack (>= 5, < 7) + redis-rack (>= 2.1.0, < 3) redis-store (>= 1.1.0, < 2) - redis-activesupport (5.0.4) - activesupport (>= 3, < 6) + redis-activesupport (5.2.0) + activesupport (>= 3, < 7) redis-store (>= 1.3, < 2) - redis-namespace (1.6.0) + redis-namespace (1.8.0) redis (>= 3.0.4) - redis-rack (2.0.4) - rack (>= 1.5, < 3) + redis-rack (2.1.3) + rack (>= 2.0.8, < 3) redis-store (>= 1.2, < 2) redis-rails (5.0.2) redis-actionpack (>= 5.0, < 6) redis-activesupport (>= 5.0, < 6) redis-store (>= 1.2, < 2) - redis-store (1.5.0) - redis (>= 2.2, < 5) - regexp_parser (1.5.1) - request_store (1.4.1) + redis-store (1.9.0) + redis (>= 4, < 5) + regexp_parser (1.8.2) + request_store (1.5.0) rack (>= 1.4) - responders (2.4.1) - actionpack (>= 4.2.0, < 6.0) - railties (>= 4.2.0, < 6.0) + responders (3.0.1) + actionpack (>= 5.0) + railties (>= 5.0) + rexml (3.2.4) rotp (2.1.2) rpam2 (4.0.2) rqrcode (0.10.1) chunky_png (~> 1.0) - rspec-core (3.8.0) - rspec-support (~> 3.8.0) - rspec-expectations (3.8.2) + rspec-core (3.9.3) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.4) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-mocks (3.8.0) + rspec-support (~> 3.9.0) + rspec-mocks (3.9.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-rails (3.8.2) + rspec-support (~> 3.9.0) + rspec-rails (3.9.1) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) - rspec-support (~> 3.8.0) - rspec-sidekiq (3.0.3) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-support (~> 3.9.0) + rspec-sidekiq (3.1.0) rspec-core (~> 3.0, >= 3.0.0) sidekiq (>= 2.4.0) - rspec-support (3.8.0) - rubocop (0.71.0) - jaro_winkler (~> 1.5.1) + rspec-support (3.9.4) + rubocop (0.93.1) parallel (~> 1.10) - parser (>= 2.6) + parser (>= 2.7.1.5) rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8) + rexml + rubocop-ast (>= 0.6.0) 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-saml (1.9.0) + ruby-saml (1.11.0) nokogiri (>= 1.5.10) - rufus-scheduler (3.5.2) - fugit (~> 1.1, >= 1.1.5) - safe_yaml (1.0.4) - sanitize (5.0.0) + ruby-statistics (2.1.2) + ruby2_keywords (0.0.2) + rufus-scheduler (3.6.0) + fugit (~> 1.1, >= 1.1.6) + sanitize (5.2.1) crass (~> 1.0.2) nokogiri (>= 1.8.0) nokogumbo (~> 2.0) @@ -549,8 +561,7 @@ GEM sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - scss_lint (0.58.0) - rake (>= 0.9, < 13) + scss_lint (0.59.0) sass (~> 3.5, >= 3.5.5) sidekiq (6.1.2) connection_pool (>= 2.2.2) @@ -558,91 +569,95 @@ GEM redis (>= 4.2.0) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (3.0.0) + sidekiq-scheduler (3.0.1) + e2mmap redis (>= 3, < 5) rufus-scheduler (~> 3.2) sidekiq (>= 3) + thwait tilt (>= 1.4.0) - sidekiq-unique-jobs (6.0.13) + sidekiq-unique-jobs (6.0.25) concurrent-ruby (~> 1.0, >= 1.0.5) sidekiq (>= 4.0, < 7.0) - thor (~> 0) - simple-navigation (4.0.5) + thor (>= 0.20, < 2.0) + simple-navigation (4.1.0) activesupport (>= 2.3.2) simple_form (4.1.0) actionpack (>= 5.0) activemodel (>= 5.0) - simplecov (0.16.1) + simplecov (0.20.0) docile (~> 1.1) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - simplecov-html (0.10.2) - sprockets (3.7.2) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.2) + sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.1) + sprockets-rails (3.2.2) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sshkit (1.17.0) + sshkit (1.21.1) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.12) + stackprof (0.2.16) statsd-ruby (1.4.0) stoplight (2.1.3) streamio-ffmpeg (3.0.2) multi_json (~> 1.8) - strong_migrations (0.4.0) + strong_migrations (0.7.3) activerecord (>= 5) - temple (0.8.1) - terminal-table (1.8.0) + temple (0.8.2) + terminal-table (2.0.0) unicode-display_width (~> 1.1, >= 1.1.1) terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) thor (0.20.3) thread_safe (0.3.6) - tilt (2.0.9) - tty-color (0.4.3) - tty-command (0.8.2) - pastel (~> 0.7.0) - tty-cursor (0.7.0) - tty-prompt (0.19.0) - necromancer (~> 0.5.0) - pastel (~> 0.7.0) - tty-reader (~> 0.6.0) - tty-reader (0.6.0) + thwait (0.2.0) + e2mmap + tilt (2.0.10) + tty-color (0.6.0) + tty-command (0.10.0) + pastel (~> 0.8) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) tty-cursor (~> 0.7) - tty-screen (~> 0.7) - wisper (~> 2.0.0) - tty-screen (0.7.0) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) twitter-text (1.14.7) unf (~> 0.1.0) - tzinfo (1.2.5) + tzinfo (1.2.8) thread_safe (~> 0.1) - tzinfo-data (1.2019.1) + tzinfo-data (1.2020.4) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.5) - unicode-display_width (1.6.0) - uniform_notifier (1.12.1) - warden (1.2.8) - rack (>= 2.0.6) - webmock (3.5.1) + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) + uniform_notifier (1.13.0) + warden (1.2.9) + rack (>= 2.0.9) + webmock (3.10.0) addressable (>= 2.3.6) crack (>= 0.3.2) - hashdiff - webpacker (4.0.6) + hashdiff (>= 0.4.0, < 2.0.0) + webpacker (4.3.0) activesupport (>= 4.2) rack-proxy (>= 0.6.1) railties (>= 4.2) - webpush (0.3.8) + webpush (1.1.0) hkdf (~> 0.2) jwt (~> 2.0) - websocket-driver (0.7.0) + websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) - wisper (2.0.0) + websocket-extensions (0.1.5) + wisper (2.0.1) xpath (3.2.0) nokogiri (~> 1.8) diff --git a/app/controllers/api/v1/chat_conversation_controller.rb b/app/controllers/api/v1/chat_conversation_controller.rb index 9ada4081..dbb113d1 100644 --- a/app/controllers/api/v1/chat_conversation_controller.rb +++ b/app/controllers/api/v1/chat_conversation_controller.rb @@ -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] def show - puts "tilly ChatConversationsController-0" render json: {}, each_serializer: REST::ChatConversationAccountSerializer end def create - puts "tilly ChatConversationsController-1" # : todo : # check if already created # check if blocked diff --git a/app/controllers/api/v1/chat_messages_controller.rb b/app/controllers/api/v1/chat_messages_controller.rb index 22c7dec3..e5611b13 100644 --- a/app/controllers/api/v1/chat_messages_controller.rb +++ b/app/controllers/api/v1/chat_messages_controller.rb @@ -27,12 +27,8 @@ class Api::V1::ChatMessagesController < Api::BaseController end def destroy - puts "tilly destry chat" - @chat = ChatMessage.where(from_account: current_user.account).find(params[:id]) - puts "tilly @chat: " + @chat.inspect - # : todo : # 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 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) end diff --git a/app/javascript/gabsocial/components/comment.js b/app/javascript/gabsocial/components/comment.js index d1a28b08..9bde176f 100644 --- a/app/javascript/gabsocial/components/comment.js +++ b/app/javascript/gabsocial/components/comment.js @@ -8,6 +8,8 @@ import ImmutablePureComponent from 'react-immutable-pure-component' import { favorite, unfavorite, + repost, + unrepost, } from '../actions/interactions' import { replyCompose } from '../actions/compose' import { openModal } from '../actions/modal' @@ -15,8 +17,9 @@ import { openPopover } from '../actions/popover' import { makeGetStatus } from '../selectors' import { CX, + MODAL_BOOST, } from '../constants' -import { me } from '../initial_state' +import { me, boostModal } from '../initial_state' import Avatar from './avatar' import Button from './button' import CommentHeader from './comment_header' @@ -49,6 +52,10 @@ class Comment extends ImmutablePureComponent { this.props.onFavorite(this.props.status) } + handleOnRepost = () => { + this.props.onRepost(this.props.status) + } + handleOnOpenStatusOptions = () => { this.props.onOpenStatusOptions(this.moreNode, this.props.status) } @@ -57,6 +64,26 @@ class Comment extends ImmutablePureComponent { 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) => { this.moreNode = c } @@ -81,7 +108,7 @@ class Comment extends ImmutablePureComponent { } const style = { - paddingLeft: `${indent * 42}px`, + paddingLeft: `${indent * 38}px`, } const contentClasses = CX({ @@ -95,8 +122,28 @@ class Comment extends ImmutablePureComponent { }) return ( -
-
+
+ { + indent > 0 && +
+ {Array.apply(null, { + length: indent + }).map((_, i) => ( + + ))} +
+ } +
- +
@@ -145,6 +192,10 @@ class Comment extends ImmutablePureComponent { title={intl.formatMessage(messages.reply)} onClick={this.handleOnReply} /> +
({ 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) { dispatch(openPopover('STATUS_OPTIONS', { targetRef, @@ -260,6 +331,7 @@ Comment.propTypes = { isHighlighted: PropTypes.bool, onReply: PropTypes.func.isRequired, onFavorite: PropTypes.func.isRequired, + onRepost: PropTypes.func.isRequired, onOpenStatusOptions: PropTypes.func.isRequired, onOpenLikes: PropTypes.func.isRequired, onOpenReposts: PropTypes.func.isRequired, diff --git a/app/javascript/gabsocial/components/modal/compose_modal.js b/app/javascript/gabsocial/components/modal/compose_modal.js index b6c5e845..0bdcea73 100644 --- a/app/javascript/gabsocial/components/modal/compose_modal.js +++ b/app/javascript/gabsocial/components/modal/compose_modal.js @@ -5,8 +5,11 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl' import ImmutablePureComponent from 'react-immutable-pure-component' import { openModal } from '../../actions/modal' import { cancelReplyCompose } from '../../actions/compose' -import ModalLayout from './modal_layout' 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 { @@ -32,6 +35,10 @@ class ComposeModal extends ImmutablePureComponent { } } + onHandleSubmit = () => { + + } + render() { const { intl, @@ -42,13 +49,35 @@ class ComposeModal extends ImmutablePureComponent { const title = isEditing ? messages.edit : isComment ? messages.comment : messages.title return ( - - - +
+ +
+ +
+
+ +
+
+
) } } @@ -58,6 +87,7 @@ const messages = defineMessages({ title: { id: 'navigation_bar.compose', defaultMessage: 'Compose new gab' }, comment: { id: 'navigation_bar.compose_comment', defaultMessage: 'Compose new comment' }, edit: { id: 'navigation_bar.edit_gab', defaultMessage: 'Edit' }, + close: { id: 'lightbox.close', defaultMessage: 'Close' }, }) const mapStateToProps = (state) => { diff --git a/app/javascript/gabsocial/components/panel/groups_panel.js b/app/javascript/gabsocial/components/panel/groups_panel.js index aedaeb6b..e5ec29ca 100644 --- a/app/javascript/gabsocial/components/panel/groups_panel.js +++ b/app/javascript/gabsocial/components/panel/groups_panel.js @@ -99,7 +99,7 @@ const mapDispatchToProps = (dispatch) => ({ GroupsPanel.propTypes = { groupIds: ImmutablePropTypes.list, isLazy: PropTypes.bool, - onFetchGroups: PropTypes.func.isRequired, + onFetchGroupsByTab: PropTypes.func.isRequired, shouldLoad: PropTypes.bool, groupType: PropTypes.string, } diff --git a/app/javascript/gabsocial/components/popover/status_options_popover.js b/app/javascript/gabsocial/components/popover/status_options_popover.js index 43ee0111..7ce05ba8 100644 --- a/app/javascript/gabsocial/components/popover/status_options_popover.js +++ b/app/javascript/gabsocial/components/popover/status_options_popover.js @@ -160,12 +160,6 @@ class StatusOptionsPopover extends ImmutablePureComponent { if (me) { 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({ icon: 'pencil', hideArrow: true, diff --git a/app/javascript/gabsocial/components/sidebar_panel_group.js b/app/javascript/gabsocial/components/sidebar_panel_group.js index 822cdbb4..7769c216 100644 --- a/app/javascript/gabsocial/components/sidebar_panel_group.js +++ b/app/javascript/gabsocial/components/sidebar_panel_group.js @@ -35,7 +35,7 @@ class SidebarPanelGroup extends React.PureComponent { return ( { - layout.map((panel) => { + layout.map((panel, i) => { if (!panel) return null if (typeof panel !== 'function' || panel.key === 'status-promotion-panel') { @@ -44,6 +44,7 @@ class SidebarPanelGroup extends React.PureComponent { return (
- +
) @@ -69,7 +69,7 @@ TimelineComposeBlock.propTypes = { intl: PropTypes.object.isRequired, account: ImmutablePropTypes.map.isRequired, size: PropTypes.number, - modal: PropTypes.bool, + isModal: PropTypes.bool, } TimelineComposeBlock.defaultProps = { diff --git a/app/javascript/gabsocial/components/user_stat.js b/app/javascript/gabsocial/components/user_stat.js index 49f18cf2..f91b7ca5 100644 --- a/app/javascript/gabsocial/components/user_stat.js +++ b/app/javascript/gabsocial/components/user_stat.js @@ -71,7 +71,7 @@ UserStat.propTypes = { PropTypes.number, PropTypes.object, ]).isRequired, - isCentered: PropTypes.bool.isRequired, + isCentered: PropTypes.bool, } export default UserStat \ No newline at end of file diff --git a/app/javascript/gabsocial/features/compose/components/compose_extra_button_list.js b/app/javascript/gabsocial/features/compose/components/compose_extra_button_list.js index 04779fcf..3b47fa82 100644 --- a/app/javascript/gabsocial/features/compose/components/compose_extra_button_list.js +++ b/app/javascript/gabsocial/features/compose/components/compose_extra_button_list.js @@ -43,10 +43,10 @@ class ComposeExtraButtonList extends React.PureComponent { render() { - const { isMatch, edit, hidePro } = this.props + const { isMatch, edit, hidePro, isModal } = this.props const { height } = this.state - const small = height <= 660 + const small = height <= 660 || isModal const containerClasses = CX({ d: 1, @@ -83,6 +83,7 @@ ComposeExtraButtonList.propTypes = { hidePro: PropTypes.bool, edit: PropTypes.bool, isMatch: PropTypes.bool, + isModal: PropTypes.bool, } export default ComposeExtraButtonList diff --git a/app/javascript/gabsocial/features/compose/components/compose_form.js b/app/javascript/gabsocial/features/compose/components/compose_form.js index 39e23315..b7330e8b 100644 --- a/app/javascript/gabsocial/features/compose/components/compose_form.js +++ b/app/javascript/gabsocial/features/compose/components/compose_form.js @@ -35,14 +35,14 @@ import Text from '../../../components/text' import Icon from '../../../components/icon' import ComposeExtraButtonList from './compose_extra_button_list' import ComposeDestinationHeader from './compose_destination_header' +import ComposeFormSubmitButton from './compose_form_submit_button' const messages = defineMessages({ placeholder: { id: 'compose_form.placeholder', defaultMessage: "What's on your mind?" }, commentPlaceholder: { id: 'compose_form.comment_placeholder', defaultMessage: "Write a comment..." }, spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' }, - publish: { id: 'compose_form.publish', defaultMessage: 'Publish' }, - publishEdit: { id: 'compose_form.publish_edit', defaultMessage: 'Publish Edit' }, - publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}' }, + post: { id: 'compose_form.post', defaultMessage: 'Post' }, + postEdit: { id: 'compose_form.post_edit', defaultMessage: 'Post Edit' }, schedulePost: { id: 'compose_form.schedule_post', defaultMessage: 'Schedule Post' }, }) @@ -73,12 +73,19 @@ class ComposeForm extends ImmutablePureComponent { } handleClick = (e) => { - if (!this.form) return false; + const { isStandalone, isModalOpen, shouldCondense } = this.props + + if (!this.form) return false if (e.target) { if (e.target.classList.contains('react-datepicker__time-list-item')) return false } 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} className={_s.px10} > - {intl.formatMessage(scheduledAt ? messages.schedulePost : messages.publish)} + {intl.formatMessage(scheduledAt ? messages.schedulePost : messages.post)}
@@ -307,15 +314,11 @@ class ComposeForm extends ImmutablePureComponent { ) } - if (isModalOpen) { - // - } - if (isStandalone || isModalOpen) { return (
-
+
- +
} @@ -374,10 +373,7 @@ class ComposeForm extends ImmutablePureComponent { { (isUploading || anyMedia) &&
- +
} @@ -391,33 +387,15 @@ class ComposeForm extends ImmutablePureComponent { { !!quoteOfId && isModalOpen && isMatch &&
- +
} -
-
- -
+ { !isModalOpen && } - +
) } @@ -431,26 +409,13 @@ class ComposeForm extends ImmutablePureComponent { {intl.formatMessage((shouldCondense || !!reduxReplyToId) && isMatch ? messages.commentPlaceholder : messages.placeholder)} -
- - - - + +
+
) } @@ -481,6 +446,7 @@ ComposeForm.propTypes = { onFetchSuggestions: PropTypes.func.isRequired, onSuggestionSelected: PropTypes.func.isRequired, onChangeSpoilerText: PropTypes.func.isRequired, + openComposeModal: PropTypes.func.isRequired, onPaste: PropTypes.func.isRequired, showSearch: PropTypes.bool, anyMedia: PropTypes.bool, diff --git a/app/javascript/gabsocial/features/compose/components/compose_form_submit_button.js b/app/javascript/gabsocial/features/compose/components/compose_form_submit_button.js new file mode 100644 index 00000000..37b0c2c7 --- /dev/null +++ b/app/javascript/gabsocial/features/compose/components/compose_form_submit_button.js @@ -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 ( +
+
+ +
+
+ ) + } + +} + +// {intl.formatMessage(scheduledAt ? messages.schedulePost : edit ? messages.postEdit : messages.post)} +ComposeFormSubmitButton.propTypes = { + +} + +export default ComposeFormSubmitButton \ No newline at end of file diff --git a/app/javascript/gabsocial/features/compose/containers/compose_form_container.js b/app/javascript/gabsocial/features/compose/containers/compose_form_container.js index d9da6dd0..9c769027 100644 --- a/app/javascript/gabsocial/features/compose/containers/compose_form_container.js +++ b/app/javascript/gabsocial/features/compose/containers/compose_form_container.js @@ -13,6 +13,8 @@ import { uploadCompose, changeScheduledAt, } from '../../../actions/compose' +import { openModal } from '../../../actions/modal' +import { MODAL_COMPOSE } from '../../../constants' import { me } from '../../../initial_state' const mapStateToProps = (state, props) => { @@ -20,7 +22,7 @@ const mapStateToProps = (state, props) => { replyToId, isStandalone, shouldCondense, - modal, + isModal, } = props const reduxReplyToId = state.getIn(['compose', 'in_reply_to']) @@ -37,7 +39,7 @@ const mapStateToProps = (state, props) => { if (isModalOpen) isMatch = true if (isModalOpen && shouldCondense) isMatch = false - if (isModalOpen && (!modal && !isStandalone)) isMatch = false + if (isModalOpen && (!isModal && !isStandalone)) isMatch = false if (!isMatch) { return { @@ -126,6 +128,10 @@ const mapDispatchToProps = (dispatch, { isStandalone }) => ({ setScheduledAt(date) { dispatch(changeScheduledAt(date)) }, + + openComposeModal() { + dispatch(openModal(MODAL_COMPOSE)) + }, }) function mergeProps(stateProps, dispatchProps, ownProps) { diff --git a/app/javascript/gabsocial/features/deck.js b/app/javascript/gabsocial/features/deck.js index 3cbf881c..28e2f55a 100644 --- a/app/javascript/gabsocial/features/deck.js +++ b/app/javascript/gabsocial/features/deck.js @@ -43,7 +43,6 @@ class Deck extends React.PureComponent { componentDidMount () { this.props.dispatch(deckConnect()) - console.log("this.props.isPro:", this.props) if (!this.props.isPro) this.handleOnOpenProUpgradeModal() } @@ -52,7 +51,6 @@ class Deck extends React.PureComponent { } handleOnOpenProUpgradeModal = () => { - console.log("handleOnOpenProUpgradeModal") this.props.dispatch(openModal(MODAL_PRO_UPGRADE)) } @@ -71,7 +69,7 @@ class Deck extends React.PureComponent { } getDeckColumn = (deckColumn, index) => { - if (!deckColumn || !isPro) return null + if (!deckColumn || !this.props.isPro) return null let Component = null let componentParams = {} @@ -178,7 +176,7 @@ class Deck extends React.PureComponent {
- Gab Deck for GabPRO + Gab Deck for GabPRO. Some text about what it does and some buttons on going pro to use it.
@@ -188,7 +186,7 @@ class Deck extends React.PureComponent { } { !isEmpty && isPro && - gabDeckOrder.splice(0, GAB_DECK_MAX_ITEMS).map((deckOption, i) => this.getDeckColumn(deckOption, i)) + gabDeckOrder.map((deckOption, i) => this.getDeckColumn(deckOption, i)) } ) diff --git a/app/javascript/gabsocial/locales/es.json b/app/javascript/gabsocial/locales/es.json index e920dc15..2c16352d 100644 --- a/app/javascript/gabsocial/locales/es.json +++ b/app/javascript/gabsocial/locales/es.json @@ -14,7 +14,7 @@ "account.follows": "Sigue", "account.follows.empty": "Este usuario todavía no sigue a nadie.", "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.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -28,7 +28,7 @@ "account.report": "Reportar a @{name}", "account.requested": "Esperando aprobación", "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_domain": "Mostrar a {domain}", "account.unendorse": "No mostrar en el perfil", @@ -155,7 +155,7 @@ "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "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", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", @@ -263,7 +263,7 @@ "notifications.column_settings.mention": "Menciones:", "notifications.column_settings.poll": "Poll results:", "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.sound": "Reproducir sonido", "notifications.filter.all": "All", diff --git a/app/javascript/gabsocial/pages/groups_page.js b/app/javascript/gabsocial/pages/groups_page.js index 2a47e39e..6bb17da8 100644 --- a/app/javascript/gabsocial/pages/groups_page.js +++ b/app/javascript/gabsocial/pages/groups_page.js @@ -79,6 +79,10 @@ class GroupsPage extends React.PureComponent { to: isPro ? '/groups/create' : undefined, onClick: isPro ? undefined : this.handleOpenProUpgradeModal, }, + { + icon: 'search', + to: '/search', + }, ]} tabs={tabs} page='groups' diff --git a/app/javascript/gabsocial/pages/home_page.js b/app/javascript/gabsocial/pages/home_page.js index 7c054f51..82a399c9 100644 --- a/app/javascript/gabsocial/pages/home_page.js +++ b/app/javascript/gabsocial/pages/home_page.js @@ -95,7 +95,7 @@ class HomePage extends React.PureComponent { UserPanel, ProgressPanel, , - , + , , , , diff --git a/app/javascript/styles/global.css b/app/javascript/styles/global.css index 6442029a..33b0907c 100644 --- a/app/javascript/styles/global.css +++ b/app/javascript/styles/global.css @@ -491,6 +491,7 @@ pre { /* */ .topNeg50PX { top: -50px; } +.topNeg20PX { top: -20px; } .top0 { top: 0; } .top120PX { top: 120px; } .top60PX { top: 60px; } @@ -499,6 +500,7 @@ pre { .top50PC { top: 50%; } .bottom0 { bottom: 0; } +.bottom20PX { bottom: 20px; } .bottom55PX { bottom: 55px; } .bottom60PX { bottom: 60px; } .bottomAuto { bottom: auto; } @@ -617,6 +619,7 @@ pre { .w14PX { width: 14px; } .w10PX { width: 10px; } .w4PX { width: 4px; } +.w2PX { width: 2px; } .w1PX { width: 1px; } .wAuto { width: auto; } @@ -808,6 +811,7 @@ pre { .mr2 { margin-right: 2px; } .mrAuto { margin-right: auto; } +.ml20 { margin-left: 20px; } .ml15 { margin-left: 15px; } .ml10 { margin-left: 10px; } .ml7 { margin-left: 7px; } @@ -1205,6 +1209,11 @@ pre { margin-bottom: 0.5rem; } +/* */ +:global(.thread-hovering > span) { + background-color: var(--solid_color_secondary) !important; +} + /* */ :global(.emoji-mart-search input) { diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb index a0f30b64..94edd0dd 100644 --- a/app/lib/status_filter.rb +++ b/app/lib/status_filter.rb @@ -21,7 +21,7 @@ class StatusFilter end def filtered_status? - blocking_account? || blocking_domain? || muting_account? + blocking_account? || muting_account? end def blocking_account? diff --git a/app/models/group.rb b/app/models/group.rb index c71876cf..fcf78cd4 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -87,9 +87,6 @@ class Group < ApplicationRecord end 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? self.slug = slug.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') elsif !slug.nil? && self.member_count < 50 && self.slug.nil? diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index 100bb9ba..aeab0c0c 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -22,7 +22,6 @@ class InstancePresenter end 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 end diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index b8e22918..7f4b9b3c 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -32,7 +32,6 @@ class REST::StatusSerializer < ActiveModel::Serializer has_one :preloadable_poll, key: :poll, serializer: REST::PollSerializer def id - # puts "tilly instance:" + instance_options.inspect object.id.to_s end