Compare commits

..

1670 Commits

Author SHA1 Message Date
Dennis Schubert
49f3442f64 Merge branch 'next-minor' into develop 2025-06-22 14:41:04 +02:00
Dennis Schubert
aadd8396cc Update open_graph_reader to 0.9.1 and set new config flag.
closes #8465
2025-06-22 14:40:56 +02:00
Dennis Schubert
251e4329c5 Merge branch 'next-minor' into develop 2025-04-13 18:09:23 +02:00
flaburgan
452f46a548 Add reported user diaspora ID in /report view
closes #8464
2025-04-13 18:09:15 +02:00
Dennis Schubert
c2589f10cc Merge branch 'next-minor' into develop 2025-01-23 22:21:26 +01:00
Dennis Schubert
c24ca7d56c Update open_graph_reader to 0.8.0
closes #8463
2025-01-23 22:21:21 +01:00
Benjamin Neff
e569ec72c7 Merge branch 'next-minor' into develop 2025-01-23 01:36:16 +01:00
flaburgan
d26b917e6f Update diaspora.toml.example
closes #8462
2025-01-23 01:36:10 +01:00
Benjamin Neff
0ea682b1d5 Merge branch 'next-minor' into develop 2025-01-11 00:48:59 +01:00
Benjamin Neff
3fcd5708e9 Revert "Start 1.0.0 cycle (again)" on next-minor
This reverts commit 094cb73b05.
2025-01-11 00:47:25 +01:00
Dennis Schubert
b9c36fadfd Add Changelog entry for #8460...
Nobody saw anything! This commit does not exist!
2025-01-10 23:31:53 +01:00
Dennis Schubert
150331ec9d Merge pull request #8460 from denschub/bump-imagemagick-disk-limit 2025-01-10 23:28:32 +01:00
Dennis Schubert
eede6e0f68 Allow ImageMagick to use 1GiB of disk caches
This matches the "websafe" upstream preset[0], and our current limit is too low for high-noise images (like a scene full of snow).

[0]: c7d070ec65/config/policy-websafe.xml (L58)
2025-01-10 23:07:21 +01:00
Benjamin Neff
37096d9c88 Merge branch 'next-minor' into develop 2024-09-05 01:39:56 +02:00
Daniel Black
53b9e3cbf3 docker-compose.yml - bump mariadb version
Noted its not the primary development environment, but 10.9 is out of support so just keep the the LTS tag.

MARIADB_AUTO_UPGRADE=1 facilitates in place upgrades.

closes #8452
2024-09-05 01:39:30 +02:00
Benjamin Neff
094cb73b05 Start 1.0.0 cycle (again) 2024-06-16 02:37:05 +02:00
Benjamin Neff
83a97420d9 Start 0.9.1.0 cycle 2024-06-16 02:35:30 +02:00
Benjamin Neff
94a72e1108 Merge branch 'release/0.9.0.0' 2024-06-16 02:25:33 +02:00
Benjamin Neff
d81aa12d54 Prepare 0.9.0.0 release and replace 1.0 version numbers 2024-06-16 01:45:50 +02:00
Benjamin Neff
7355df5202 updated 250 locale files [ci skip]
The script changed from old unmaintained ya2yaml (which is broken with
current ruby version) to default `to_yaml` from ruby. That's why the
diff is "a bit" bigger than usual, because it looks like some keys are
sorted differently.
2024-06-16 00:53:29 +02:00
Benjamin Neff
70e293ba94 Add rack-attack to throttle login actions
This also fixes CVE-2024-0227 for 2FA brute force

See: https://blog.inhq.net/posts/totp-CVE-2024-0227/
2024-06-15 18:32:09 +02:00
Benjamin Neff
0d41b7ca13 Merge pull request #8449 from denschub/blindness
Replace eye with foreman.
2024-06-09 03:17:39 +02:00
Dennis Schubert
619722490c Replace eye with foreman. 2024-06-09 02:01:38 +02:00
Benjamin Neff
fddfd8b8c0 Merge pull request #8363 from cmrd-senya/fix-api-tags-stream-to-hide-ignores
API: update Search endpoint to be aware of ignored users
2024-06-05 01:06:26 +02:00
Benjamin Neff
c3eaa212af Merge pull request #8406 from Flaburgan/6184-service-disabled
Do not show the service to the user if it is disabled, fixes #6184

Fixes #6184
2024-06-05 01:04:00 +02:00
Benjamin Neff
7ec2a68256 Merge pull request #8439 from jhass/feature/comment_likes_api
add API routes for comment likes
2024-06-05 01:01:52 +02:00
Benjamin Neff
80beedfe63 Merge pull request #8442 from Flaburgan/mark-like-on-comment-notifications-as-read
Mark Likes on comment notifications as read when visiting a post
2024-06-05 01:01:04 +02:00
Benjamin Neff
cc50077188 Merge pull request #8448 from SuperTux88/gem-updates
Update dependencies and ruby version
2024-06-05 00:55:00 +02:00
Benjamin Neff
07f6a91d02 Upgrade to ruby 3.3 2024-06-05 00:35:48 +02:00
Benjamin Neff
02f8629254 Fix Person spec to prepare ruby upgrade 2024-06-05 00:35:48 +02:00
Benjamin Neff
8b6adee359 Bump perfect-scrollbar 2024-06-05 00:35:48 +02:00
Benjamin Neff
7a8bc40bb8 Bump highlightjs 2024-06-05 00:35:48 +02:00
Benjamin Neff
69637608e8 Bump fine-uploader 2024-06-05 00:35:48 +02:00
Benjamin Neff
14ddc750d0 Bump cropperjs 2024-06-05 00:35:48 +02:00
Benjamin Neff
794545278b Bump corejs-typeahead 2024-06-05 00:35:47 +02:00
Benjamin Neff
195be4fc83 Bump backbone 2024-06-05 00:35:47 +02:00
Benjamin Neff
342b82dfd2 Bump autosize 2024-06-05 00:35:47 +02:00
Benjamin Neff
2f78f97ded Bump other dependencies not directly in Gemfile 2024-06-05 00:35:47 +02:00
Benjamin Neff
7726855d1c Bump cucumber-rails 2024-06-05 00:34:02 +02:00
Benjamin Neff
4d38b8592f Bump rspec-rails 2024-06-05 00:34:02 +02:00
Benjamin Neff
6321215bb4 Bump webmock 2024-06-05 00:34:02 +02:00
Benjamin Neff
e8fc097728 Bump timecop 2024-06-05 00:34:02 +02:00
Benjamin Neff
fbdb9edbf2 Bump shoulda-matchers 2024-06-05 00:34:01 +02:00
Benjamin Neff
781fda001b Bump factory_bot_rails 2024-06-05 00:34:01 +02:00
Benjamin Neff
140168ea2d Bump cuprite 2024-06-05 00:34:01 +02:00
Benjamin Neff
f1523b0260 Bump capybara 2024-06-05 00:34:01 +02:00
Benjamin Neff
2878537ca0 Bump listen 2024-06-05 00:34:01 +02:00
Benjamin Neff
1bf1b7bda1 Bump rubocop and rubocop-rails 2024-06-05 00:34:01 +02:00
Benjamin Neff
7e8bf20299 Bump pronto 2024-06-05 00:34:01 +02:00
Benjamin Neff
2e5224c50d Bump haml_lint 2024-06-05 00:34:01 +02:00
Benjamin Neff
dc83503868 Bump asset_sync 2024-06-05 00:34:01 +02:00
Benjamin Neff
ddc1f65b57 Bump minitest 2024-06-05 00:34:01 +02:00
Benjamin Neff
34c2b87ed7 Bump typhoeus 2024-06-05 00:34:01 +02:00
Benjamin Neff
e7549a07e2 Bump faraday-typhoeus 2024-06-05 00:34:01 +02:00
Benjamin Neff
68575f6c58 Bump faraday 2024-06-05 00:34:01 +02:00
Benjamin Neff
2123e1f311 Bump addressable 2024-06-05 00:34:00 +02:00
Benjamin Neff
e64cd6038c Bump acts-as-taggable-on 2024-06-05 00:34:00 +02:00
Benjamin Neff
a1abcdb1c0 Bump active_model_serializers 2024-06-05 00:34:00 +02:00
Benjamin Neff
027c0420c9 Bump openid_connect 2024-06-05 00:34:00 +02:00
Benjamin Neff
1c621dc999 Bump omniauth and omniauth-rails_csrf_protection 2024-06-05 00:34:00 +02:00
Benjamin Neff
12e21555ee Bump ruby-oembed 2024-06-05 00:34:00 +02:00
Benjamin Neff
84794a1b25 Bump nokogiri 2024-06-05 00:34:00 +02:00
Benjamin Neff
e8a374a16d Bump leaflet-rails 2024-06-05 00:34:00 +02:00
Benjamin Neff
046280c480 Bump rails-i18n 2024-06-05 00:34:00 +02:00
Benjamin Neff
813e44c0a9 Bump jquery-ui-rails 2024-06-05 00:34:00 +02:00
Benjamin Neff
dcd29a6968 Bump jquery-rails and jquery 2024-06-05 00:34:00 +02:00
Benjamin Neff
769c6b1a8c Bump js-routes 2024-06-05 00:34:00 +02:00
Benjamin Neff
a080d2a01a Bump fog-aws 2024-06-05 00:34:00 +02:00
Benjamin Neff
541da9f682 Bump carrierwave
Carrierwave 3.0.4 cleans the original_filename after store, but we can
still get the original filename from the file directly.
2024-06-05 00:33:58 +02:00
Benjamin Neff
016b2f15c5 Bump activerecord-import 2024-06-05 00:25:29 +02:00
Benjamin Neff
cb0c02f9f2 Bump pg 2024-06-05 00:24:54 +02:00
Benjamin Neff
47b7181061 Bump mysql2 2024-06-05 00:24:54 +02:00
Benjamin Neff
2c34f271d9 Bump autoprefixer-rails 2024-06-05 00:24:54 +02:00
Benjamin Neff
0615ac112b Bump rack-cors 2024-06-05 00:24:54 +02:00
Benjamin Neff
7dc1e2d026 Bump toml-rb 2024-06-05 00:24:53 +02:00
Benjamin Neff
abb59cc1b4 Bump configurate 2024-06-05 00:24:53 +02:00
Benjamin Neff
5eec93d2ef Bump terser 2024-06-05 00:24:53 +02:00
Benjamin Neff
d390499e86 Bump sidekiq and sidekiq-cron 2024-06-05 00:24:53 +02:00
Benjamin Neff
630b70bcf0 Bump devise 2024-06-05 00:24:53 +02:00
Benjamin Neff
61592cca67 Bump json-schema 2024-06-05 00:24:53 +02:00
Benjamin Neff
9ed57596c1 Bump json 2024-06-05 00:24:53 +02:00
Benjamin Neff
7910103f60 Bump puma 2024-06-05 00:24:53 +02:00
Benjamin Neff
eb12b5596c Bump responders 2024-06-05 00:24:53 +02:00
Benjamin Neff
5e13a7208d Bump rails 2024-06-05 00:24:50 +02:00
Benjamin Neff
4b49270be7 Simplify comment and post validation
It's enough to check if the comment exists on the specified post, if it
doesn't exist at all, that check will also fail.

Also do that check directly on SQL level and just check if the comment
exist instead of looping through all comments.
2024-06-05 00:14:31 +02:00
Benjamin Neff
649d8c5b56 Mark notifications as read in a single SQL query
There is no need to load all comments only to count them. Lets just let
the database do all the work. If there are no comments found, nothing
will happen anyway.

Also already filter the comments to only search for notifications for
own comments.

And add some tests :)
2024-06-03 00:11:45 +02:00
Benjamin Neff
52424fba6d Add available_services helper to be used for desktop and mobile 2024-06-02 05:08:29 +02:00
Benjamin Neff
a83d34dcda Bump bundler to match ruby 3.1.5 2024-05-30 02:28:34 +02:00
flaburgan
71e6f20740 Mark Likes on comment notifications as read when visiting a post 2024-02-11 18:40:29 +01:00
flaburgan
14cf4ff85d Do not show the service to the user if it is disabled, fixes #6184 2024-02-11 17:12:02 +01:00
Benjamin Neff
ae3b7804f0 Merge pull request #8441 from SuperTux88/fix-fetch-comments
Allow fetching comments
2024-01-24 01:03:08 +01:00
Benjamin Neff
7cc48bec54 Merge pull request #8285 from Flaburgan/revamped-registrations
New registration page
2024-01-24 01:00:11 +01:00
Benjamin Neff
9e61693e20 Allow fetching comments
Now with likes on comments, diaspora also tries to fetch comments if it
receives a like for a comment it doesn't know yet. So this now also
allows to fetch comments with `/fetch/comment/<guid>`.
2024-01-21 23:30:51 +01:00
Jonne Haß
1e1130e211 add API routes for comment likes 2023-11-24 18:12:59 +01:00
flaburgan
89f906b1b1 Fix horizontal scroll and captcha on mobile, host for user id 2023-11-13 22:13:44 +01:00
flaburgan
7782a32921 New registration page, mentionning the import, fixes #8009 2023-11-13 21:06:20 +01:00
Benjamin Neff
389b1870d3 Merge pull request #8437 from SuperTux88/fix-photo-export-spec
Ensure image processing gets disabled again, even after exceptions
2023-11-13 02:32:57 +01:00
Benjamin Neff
42ffd6322f Merge pull request #8203 from tclaus/2999-likes-comment
Re-introduce likes on comments
2023-11-13 02:32:43 +01:00
Benjamin Neff
686f67d2f8 Merge pull request #8035 from Flaburgan/improve-report-form
Add a more detailed modal when reporting a post or a comment
2023-11-13 02:31:20 +01:00
Benjamin Neff
b0c196aea0 Add notifications for likes on comments 2023-11-13 02:27:55 +01:00
Benjamin Neff
3e1407d242 Fix comments not being lazy loaded in streams anymore 2023-11-13 02:27:55 +01:00
Benjamin Neff
df8275f000 Fix participations for likes on comments in the backend
When liking a comment, the post also gets a participation, and if all
likes/comments get removed again, the participation also gets removed
again.

The only thing still not working properly is the frontend, but that is
already broken when unliking a post. So it shows an invalids state in
the frontend when unliking the post/comment.
2023-11-13 02:27:55 +01:00
Benjamin Neff
edfb603965 Fix API v1 schema for likes on comments and add test 2023-11-13 02:27:55 +01:00
flaburgan
5153534f4c Fix pronto in Ruby 2023-11-13 02:27:55 +01:00
flaburgan
1b2f85c384 Improve styling for mobile comments 2023-11-13 02:27:55 +01:00
Benjamin Neff
71d071be60 Only show heart icon when avatars are shown for comment likes 2023-11-13 02:27:55 +01:00
Benjamin Neff
ad6c9dd55f Fix styling and spacing for likes on comments 2023-11-13 02:27:55 +01:00
Thorsten Claus
9c0f8cdf11 Dont send all likes with list of comments
Due to historic reasons with a comment the list of all likes was sent to the frontend.
This is needed just to detect if one of the likes is current users like.
So if sending just the own like, the frontend can do it's job.

When the frontend is refactured in any way, post and comment like handling should be improved.
2023-11-13 02:27:55 +01:00
Thorsten Claus
c2a2fb63b0 In API dont fetch liked from all comments 2023-11-13 02:27:55 +01:00
Thorsten Claus
67f8ba5d57 Refacor files namespaces 2023-11-13 02:27:55 +01:00
Thorsten Claus
9b19be18f2 Adding eventhandler for Mobile views 2023-11-13 02:26:59 +01:00
Thorsten Claus
06a0dc68a9 Enabled likes-on-comments in mobile view 2023-11-13 02:26:59 +01:00
Thorsten Claus
35f1cd61b1 set correct comment like avatar by removing size 2023-11-13 02:26:59 +01:00
flaburgan
8d6548b610 Introduce like-interactions.js
Adapt to latest development

User likes
 Set css class for inline likes on comment

Re-set participation on comment likes

Co-authored-by: Thorsten Claus <ThorstenClaus@web.de>
2023-11-13 02:26:59 +01:00
flaburgan
82ff57a750 Bring back likes on comments 2023-11-13 02:26:59 +01:00
Benjamin Neff
4f798fc5d8 Ensure image processing gets disabled again, even after exceptions
Otherwise this leaves it enabled if the processing failed, which then
makes other specs fail where they expect the image not being processed
(for example still have the initial set dimensions, instead of the one
read from image after processing).
2023-11-13 01:36:54 +01:00
flaburgan
587e106095 Add a more detailed modal when reporting a post or a comment 2023-11-13 00:15:33 +01:00
Dennis Schubert
bb882daeae Merge branch 'pr8436' into develop 2023-10-16 15:22:50 +02:00
Wladimir Palant
c791421280 Allow CORS requests to nodeinfo endpoint 2023-10-16 12:11:42 +02:00
Dennis Schubert
744f5449fb Merge branch 'next-minor' into develop 2023-07-10 01:19:08 +02:00
Dennis Schubert
f042f5d490 Merge branch 'hotfix/0.7.18.2' 2023-07-10 01:13:45 +02:00
Dennis Schubert
42b835f0c0 Enforce an ImageMagick policy.xml for all pods.
This fix was heavily inspired by Mastodon's fix for GHSA-9928-3cp5-93fm.
So, thank you Cure53 for finding this issue, thank you Mozilla for
paying Cure53 to look into it, and thanks for Mastodon for fixing it.
2023-07-10 01:12:36 +02:00
Benjamin Neff
8d38193096 Merge pull request #8434 from SuperTux88/fix-pumactl-restart
Silence warning about unused callbacks to fix pumactl restart
2023-06-30 01:40:39 +02:00
Benjamin Neff
994f003b5f Silence warning about unused callbacks
The callbacks aren't used in cluster mode, and puma prints a warning
about that. This is fine, we don't need the callbacks in single-mode,
but can still keep it, in case somebody switches on cluster mode.

The problem is, the current puma version has a bug, where pumactl
crashes when trying to print these warnings, so lets just silence the
warnings. People running in single mode also don't need to care about
the warnings anyway.
2023-06-29 03:14:32 +02:00
Dennis Schubert
49198904f3 Merge pull request #8433 from SuperTux88/add-faraday-retry-for-pronto
Add 'faraday-retry' to Gemfile to be used by pronto/octokit
2023-06-29 01:44:47 +02:00
Benjamin Neff
28b7a62939 Add 'faraday-retry' to Gemfile to be used by pronto/octokit
This prevents a "To use retry middleware with Faraday v2.0+, install
`faraday-retry` gem" warning whenever pronto runs.
2023-06-28 21:59:02 +02:00
Benjamin Neff
f05d9bac69 Merge pull request #8432 from SuperTux88/downgrade-sidekiq
Downgrade sidekiq to latest 6.x version
2023-06-28 21:28:57 +02:00
Benjamin Neff
14c4010471 Downgrade sidekiq to latest 6.x version
Sidekiq 7 requires redis 6.2+, which isn't available in a lot of distros
yet :( So lets wait with this for a while.

This partially reverts commit a59505574a.
2023-06-28 14:05:55 +02:00
Benjamin Neff
040e1dc9ee Merge pull request #8431 from SuperTux88/gem-updates
Updating all ruby dependencies to current versions
2023-06-28 02:38:50 +02:00
Benjamin Neff
7a8e1fe2d5 Bump other dependencies not directly in Gemfile 2023-06-28 01:19:37 +02:00
Benjamin Neff
c665d01cc5 Bump openid_connect 2023-06-28 01:19:37 +02:00
Benjamin Neff
62fdac807e Bump faraday 2023-06-28 01:19:37 +02:00
Benjamin Neff
1bd0c7bb2d Bump cucumber-rails 2023-06-28 01:19:37 +02:00
Benjamin Neff
c5699b7a43 Bump rspec-rails 2023-06-28 01:19:37 +02:00
Benjamin Neff
bdfaff5009 Bump webmock 2023-06-28 01:19:37 +02:00
Benjamin Neff
50422c5902 Bump timecop 2023-06-28 01:19:37 +02:00
Benjamin Neff
313e96d5c3 Bump shoulda-matchers 2023-06-28 01:19:37 +02:00
Benjamin Neff
00b1ed3e76 Bump database_cleaner-active_record 2023-06-28 01:19:37 +02:00
Benjamin Neff
302bd03923 Bump listen 2023-06-28 01:19:37 +02:00
Benjamin Neff
3c3d73fedb Bump simplecov 2023-06-28 01:19:36 +02:00
Benjamin Neff
f2c0688aed Bump haml_lint 2023-06-28 01:19:36 +02:00
Benjamin Neff
d180cd2eaf Bump rubocop 2023-06-28 01:19:36 +02:00
Benjamin Neff
dbc095c895 Bump pronto-rubocop 2023-06-28 01:19:36 +02:00
Benjamin Neff
4fbd5b226b Bump pronto-eslint 2023-06-28 01:19:36 +02:00
Benjamin Neff
d37193f24c Bump pronto 2023-06-28 01:19:36 +02:00
Benjamin Neff
e3149bdea8 Bump asset_sync 2023-06-28 01:19:36 +02:00
Benjamin Neff
bb8486eec5 Bump minitest 2023-06-28 01:19:36 +02:00
Benjamin Neff
7cefa8577a Bump will_paginate 2023-06-28 01:19:36 +02:00
Benjamin Neff
64887e75c5 Bump hamlit 2023-06-28 01:19:36 +02:00
Benjamin Neff
a33803ac19 Bump addressable 2023-06-28 01:19:36 +02:00
Benjamin Neff
9f5d2a8ac6 Bump active_model_serializers 2023-06-28 01:19:36 +02:00
Benjamin Neff
ab08d97dda Bump twitter 2023-06-28 01:19:36 +02:00
Benjamin Neff
4068de6d75 Bump omniauth 2023-06-28 01:19:36 +02:00
Benjamin Neff
8ccca9609f Bump secure_headers 2023-06-28 01:19:35 +02:00
Benjamin Neff
386717b6c4 Bump redcarpet 2023-06-28 01:19:35 +02:00
Benjamin Neff
a7320a872c Bump nokogiri 2023-06-28 01:19:35 +02:00
Benjamin Neff
f8fe914212 Bump leaflet-rails 2023-06-28 01:19:35 +02:00
Benjamin Neff
184bd7c7fd Bump rails-i18n 2023-06-28 01:19:35 +02:00
Benjamin Neff
abedbf10bd Bump js-routes 2023-06-28 01:19:35 +02:00
Benjamin Neff
8184031c4a Bump mini_magick 2023-06-28 01:19:35 +02:00
Benjamin Neff
3aa44edd49 Bump fog-aws 2023-06-28 01:19:35 +02:00
Benjamin Neff
211f34806b Bump activerecord-import 2023-06-28 01:19:35 +02:00
Benjamin Neff
26b99671c4 Bump pg 2023-06-28 01:19:35 +02:00
Benjamin Neff
ed51a17ea6 Bump mysql2 2023-06-28 01:19:35 +02:00
Benjamin Neff
509b302073 Bump autoprefixer-rails 2023-06-28 01:19:35 +02:00
Benjamin Neff
462d3936a1 Bump rack-cors 2023-06-28 01:19:35 +02:00
Benjamin Neff
7d7305028d Bump toml-rb 2023-06-28 01:19:35 +02:00
Benjamin Neff
c11928111d Bump terser 2023-06-28 01:19:35 +02:00
Benjamin Neff
a59505574a Bump sidekiq, sidekiq-cron and migrate to redis-client
This breaks compatibility with redis <6
2023-06-28 01:19:34 +02:00
Benjamin Neff
cc4d2e0832 Bump rqrcode 2023-06-28 00:54:05 +02:00
Benjamin Neff
19c48d5738 Bump devise-two-factor 2023-06-28 00:54:05 +02:00
Benjamin Neff
906cc19eb0 Bump devise 2023-06-28 00:54:05 +02:00
Benjamin Neff
ab02c86fa8 Bump json-schema 2023-06-28 00:54:05 +02:00
Benjamin Neff
dbe644ede6 Bump json 2023-06-28 00:54:05 +02:00
Benjamin Neff
ebcbdd823c Bump diaspora_federation 2023-06-28 00:54:05 +02:00
Benjamin Neff
a784e32840 Bump puma 2023-06-28 00:54:05 +02:00
Benjamin Neff
c286123cc1 Bump responders 2023-06-28 00:54:05 +02:00
Benjamin Neff
033492f2ab Bump rails 2023-06-28 00:54:03 +02:00
Dennis Schubert
6288fe3dde Merge pull request #8429 from denschub/prontohub
[CI] Run Pronto on GitHub Actions.
2023-06-15 16:17:30 +02:00
Dennis Schubert
78925beec5 [CI] Run Pronto on GitHub Actions. 2023-06-14 21:52:26 +02:00
Dennis Schubert
6430aa3bad Merge pull request #8428 from denschub/hackaround-flaky-cuke
Attempt at un-flaky'ing the `preview a very long message` cucumber scenario
2023-06-13 15:24:54 +02:00
Dennis Schubert
c095959e6a [CI] Make the extremely long status message less long.
The old message, being 2048 chars long, apparently sometimes tripped up
Ferrum or Chrome itself. The new, shorter, message does that less or not
at all. It's still long enough, though, as the way we determine if a
status message is "too long" is by height only, so line-breaks work.
2023-06-13 05:00:29 +02:00
Benjamin Neff
3b07b16962 Merge pull request #8427 from SuperTux88/gem-updates
Bump net-* gems and digest
2023-06-12 05:04:10 +02:00
Benjamin Neff
f420a78a79 Bump net-* gems and digest
I don't know why it pinned them to older versions when adding them, lets
use the latest versions instead.
2023-06-12 04:35:45 +02:00
Benjamin Neff
b34a184b0a Merge pull request #8426 from SuperTux88/add-ruby-3.1
Add ruby 3.1, drop ruby 2.7
2023-06-12 04:07:09 +02:00
Benjamin Neff
297fd722ab Bump jwt and json-jwt to support openssl 3.0 2023-06-12 03:39:18 +02:00
Benjamin Neff
9dfce77a4d Remove workaround required to load YAML with ruby 2.7 and 3.1
This works now with ruby >= 3.0
2023-06-12 02:51:41 +02:00
Benjamin Neff
faf9390e70 Add ruby 3.1, drop ruby 2.7 2023-06-12 02:51:16 +02:00
Benjamin Neff
72e1daa5e3 Bump capybara for ruby 3.1
The matrix gem was removed from ruby 3.1, but was required for capybara,
but the current version added it as a dependency.
2023-06-12 02:25:26 +02:00
Benjamin Neff
7934f3e916 Add mail protocol gems
This is required for ruby 3.1 with rails 6.1, as they were removed from
being bundled with ruby 3.1. It can be removed with rails 7 again, as
they were added as a dependency to rails 7.
2023-06-12 02:25:07 +02:00
Benjamin Neff
9cdfd3a55b Merge pull request #8425 from jhass/8424_fix_yaml_load
Use YAML.unsafe_load_file when available in bundler helper
2023-06-12 01:57:45 +02:00
Jonne Haß
324851eeb5 Use YAML.unsafe_load_file when available in bundler helper
fixes #8424
2023-06-11 12:53:27 +02:00
Dennis Schubert
7ce4309fcb Merge pull request #8423 from SuperTux88:update-carrierwave-ruby-3
Update carrierwave and add ruby 3.0 support
2023-06-11 03:31:16 +02:00
Benjamin Neff
ae813f0cf2 Enable ruby 3.0 on CI and switch default to 3.0 2023-06-10 20:30:26 +02:00
Benjamin Neff
d790e3dcba Bump scss_lint and rake
Old rake version didn't work with ruby 3.0 in docker
2023-06-10 19:56:22 +02:00
Benjamin Neff
3c10dbc547 Bump carrierwave 2023-06-10 19:09:53 +02:00
Benjamin Neff
0a545c7092 Merge pull request #8422 from SuperTux88/fix-checkout-deprecation-warning
Upgrade to actions/checkout@v3 to get rid of deprecation warning
2023-06-10 17:27:11 +02:00
Benjamin Neff
02182e3b59 Merge pull request #8421 from SuperTux88/cleanup-from-header-unicode-emojis
Cleanup unicode emojis from email headers
2023-06-10 17:26:48 +02:00
Benjamin Neff
cf49899069 updated 6 locale files [ci skip] 2023-06-10 17:22:19 +02:00
Benjamin Neff
d5a338ad0e Merge pull request #8420 from SuperTux88/remove-i18n-inflector-rails
Remove i18n-inflector-rails dependency
2023-06-10 17:13:15 +02:00
Benjamin Neff
5ce5cfdecf Upgrade to actions/checkout@v3 to get rid of deprecation warning 2023-06-10 05:35:31 +02:00
Benjamin Neff
5508401ed8 Don't modify default translations when merging with other language
`deep_merge!` modifies the hash of the default translation, and it looks
like `I18n.t` always returns the same instance, so after that, the
default stays translated. So lets duplicate the hash first, before
modifying it, this also helps because we also add more keys below, which
probably also shouldn't be added to the original.
2023-06-10 05:00:27 +02:00
Benjamin Neff
dc9a18e24d Cleanup unicode emojis from email headers
Some email providers (for example gmail) block emails if they have
emojis in the from header, as they could be confused with UI elements.
So the easy solution is to just filter all emojis from the name.

The normal `\p{Emoji}` selector also matches normal numbers, because of
the emoji-version of numbers (1️⃣), but the `\p{Emoji_Presentation}` then
doesn't match colored emojis anymore (❄️), so we need a mix of both to
find all emojis
2023-06-09 04:20:15 +02:00
Benjamin Neff
6f802417c6 Remove i18n-inflector-rails dependency
There are no new releases anymore and the current version isn't
compatible with ruby 3.x.

As this feature wasn't really used a lot (Icelandic didn't even setup
inflections properly), it's probably not worth fighting for it, so lets
just drop it.

Related to #8369
2023-06-09 01:13:16 +02:00
Benjamin Neff
87f17fe907 Merge pull request #8418 from SuperTux88/switch-to-cuprite
Switch from apparition to cuprite driver
2023-06-08 22:58:29 +02:00
Benjamin Neff
8ebfd4892f Merge pull request #8419 from SuperTux88/podman-build
Use podman to build when installed and configured
2023-06-08 22:52:37 +02:00
Benjamin Neff
e7e3d3c326 Use podman to build when installed and configured
I had problems when trying to build with podman with docker-compose 2.x,
but it works when just calling the `podman build` command directly
instead.
2023-06-07 02:46:28 +02:00
Benjamin Neff
bb7e5a369d Correctly escape username pattern regex
Without the escaping, the backslash doesn't get renderet in the frontend
which leads to some browsers (chrome >= 114?) just allowing every input.
2023-06-05 23:35:31 +02:00
Benjamin Neff
5425f5cfa6 Switch from apparition to cuprite driver
Apparition4 isn't really maintained anymore and there are no new releases
and it always logs a lot of errors, making the output hard to read.

So lets switch to cuprite, as it also supports everything we need and is
still maintained.

Supersedes #8330
2023-06-05 23:34:52 +02:00
Benjamin Neff
ce32a7d16b Merge pull request #8409 from tclaus/add_app_smart_banner
Add app smart banner to web site when using an iOS device
2023-06-04 21:38:34 +02:00
Benjamin Neff
e29f9e2fa2 Merge pull request #8410 from SuperTux88/allow-DOCKER_HOST-env-var
Allow DOCKER_HOST env var for diaspora-dev docker setup
2023-06-04 21:35:07 +02:00
Benjamin Neff
6510bafa88 Merge pull request #8417 from SuperTux88/remove-strip_exif-flag
Always strip exif data and drop user setting for it
2023-06-04 21:30:01 +02:00
Benjamin Neff
11107ee637 Fix chrome parameters for running jasmine
Yes, I know this is a very ugly workaround, but it works ...

Chrome now requires to add `about:blank` as parameter to open and be
able to use remote debugging. The jasmine-gem isn't supported anymore,
and we need to switch to the `jasmine-browser-runner`, I was working on
that a few months ago, but ran into problems.

As the jasmine-gem doesn't allow to add parameters without `--` infront
of it, lets just add a dummy parameter and add the required
`about:blank` with a space after that. This is ugly, but works for now,
until we can upgrade to the new jasmine version. We could also just
replace the `nil` of the last parameter with that value, but I think
that way it's clearer that this is a workaround and how it works.
2023-06-04 17:10:51 +02:00
Benjamin Neff
763dffa328 Always strip exif data and drop user setting for it
Some imagemagick-versions (I tested Ubuntu 22.04 and debian bullseye)
always loose exif data when converting from jpg to webp. So this made
our CI fail now, but even if it wasn't failing before, some pods always
had and have versions which might loose the information anyway. So
having a setting to keep exif information is kinda pointless, if we
can't guarantee that the information isn't lost. Also, diaspora isn't a
photo sharing platform and we don't display exif information anywhere,
so I think we should just always strip exif data (which was already the
default before), as we don't need them.
2023-06-04 04:25:01 +02:00
Benjamin Neff
f3a6cd9a7f Use specific registry in Dockerfile
Otherwise podman asks which one to use every time
2022-12-05 01:02:46 +01:00
Benjamin Neff
0c163b8c49 Allow to use different DOCKER_HOST env var
This allows to use rootless podman (which doesn't require sudo) instead
of docker.
2022-12-05 00:53:33 +01:00
Thorsten Claus
83a2274f47 Adding Smart App Banner for insporation on iOS devices 2022-11-17 23:20:35 +01:00
Benjamin Neff
2fe5a7bd40 updated 30 locale files [ci skip] 2022-11-04 02:09:11 +01:00
Benjamin Neff
b0b2083fea Merge pull request #8407 from Flaburgan/4821-help-mobile
Tell users that there is no help in mobile version, allow to switch to desktop
2022-11-04 02:07:36 +01:00
flaburgan
3d84ae18a7 Tell users that there is no help in mobile version, allow to switch to desktop, fixes #4821 2022-11-02 23:27:58 +01:00
Benjamin Neff
5f6b01e086 Merge pull request #8404 from Flaburgan/8118-scrolling-photos
Do not recreate blueimp each time you're scrolling in the photos page
2022-11-01 21:20:12 +01:00
Benjamin Neff
80c0888176 Merge pull request #8403 from SuperTux88/cleanup-duplicate-pods-for-real-this-time
Cleanup duplicate pods
2022-11-01 21:17:17 +01:00
Benjamin Neff
acc76a383f Merge pull request #8398 from SuperTux88/fix-mentions-with-underscores
Escape mentions before parsing message with markdown for mobile UI
2022-11-01 21:15:47 +01:00
Dennis Schubert
6af305b2be Merge pull request #8405 from Flaburgan/7949-feedback-mobile
Add info links (the ones in the footer in the desktop version) into the drawer for mobile
2022-10-31 23:29:42 +01:00
flaburgan
fbc096c7a7 Add info links (the ones in the footer in the desktop version) into the drawer for mobile, fixes #7949 2022-10-31 12:11:46 +01:00
flaburgan
35c254c88c Do not recreate blueimp each time you're scrolling in the photos page, fixes #8118 2022-10-31 11:21:08 +01:00
Benjamin Neff
800f394870 Show ports on pods list
otherwise pods with different ports (or without port) all look the same,
like if they are duplicates
2022-10-31 01:45:13 +01:00
Benjamin Neff
8334eeeeff Ensure pod urls are always lowercase
otherwise pods can exist multiple times with mixed case
2022-10-31 01:45:13 +01:00
Benjamin Neff
6bdf6f03b4 Cleanup duplicate pods in database
The unique index doesn't work when the port is `NULL`. So use `-1`
instead for when using the default ports (80/443), as if we would use
the real ports, we could still have both 80 and 443 in the database at
the same time.
2022-10-31 01:45:13 +01:00
Benjamin Neff
bfe1b84a2e Merge pull request #8399 from SuperTux88/docker-pull
Add pull command to diaspora-dev script
2022-10-30 01:46:57 +02:00
Benjamin Neff
f6105e54a9 Merge pull request #8400 from SuperTux88/8352-mobile-photo-url-redirect
Add redirect to mobile-only photo URL when in desktop UI
2022-10-30 01:45:27 +02:00
Benjamin Neff
abcbfcef15 Merge pull request #8397 from SuperTux88/remove-sprockets-es6
Replace sprockets-es6 with babel-transpiler
2022-10-30 01:43:12 +02:00
Benjamin Neff
7e15d9ec8a Merge pull request #8402 from denschub/cucumber-docker-fixes
Fix running Cucumber in Docker
2022-10-30 01:41:31 +02:00
Benjamin Neff
8b74138e5a Update postgres and mariadb container to latest major version
This is a breaking change, so dev-databases need to be recreated.
2022-10-30 01:17:11 +02:00
Benjamin Neff
cbbb0a55c2 Add redirect to mobile-only photo URL when in desktop UI
This URL is only used in the mobile UI, but when somebody then copies
the link and sends it to somebody on the desktop UI, they don't see
anything. So lets just redirect to the post containing the photo, so
there is at least something to show.

If there is no linked post, just redirect to the image instead.

Fixes #8352
2022-10-30 00:32:31 +02:00
Dennis Schubert
bd2a45615f Disable Chromium sandbox for Apparition 2022-10-29 06:30:34 +02:00
Benjamin Neff
ee593933a1 Add a pull command to update docker images to diaspora-dev script
Before the images were only pulled once and then never updated which
lead to really outdated images and OS dependencies. Now all images
(including the base image for the diaspora container) are pulled when
running `setup`. So the idea is to run the `setup` command from time to
time to bring everything up to date again.
2022-10-06 02:08:02 +02:00
Benjamin Neff
536c96f217 Escape mentions before parsing message with markdown
Usernames that contained underscores were parsed by markdown first. This
broke the diaspora IDs and also added weird html at places where it
wasn't needed. Escaping them before sending the message through the
markdown parser fixes this issue.

As underscores are the only allowed character that can be used for
markdown that is also allowed inside a diaspora ID, this escaping can be
kept pretty simple.

This only fixes it for the mobile UI at the moment, for the desktop UI
it's probably better to fix it in markdown-it.

Related to #7975
2022-10-06 00:45:50 +02:00
Benjamin Neff
185f8a1404 Replace sprockets-es6 with babel-transpiler
Sprockets 4 now has direct babel support, so we can remove the temporary
sprockets-es6 dependency and use babel-transpiler directly.
2022-10-01 02:55:50 +02:00
Benjamin Neff
03796e8fe2 Merge pull request #8395 from denschub/time-travel
Fixes for two date-related spec breakages
2022-09-21 02:47:06 +02:00
Benjamin Neff
57cdc288e2 Merge pull request #8396 from SuperTux88/fix-docker-dev
Fix docker development setup after switch to puma
2022-09-21 02:46:08 +02:00
Benjamin Neff
19b32cf6e3 Merge pull request #8217 from tclaus/7080_multi_select_on_aspects_on_mobile
multi select on aspects on mobile

closes #7080
2022-09-21 02:42:25 +02:00
Dennis Schubert
c47258a873 Don't time travel in check_birthday_spec 2022-09-20 03:20:48 +02:00
Dennis Schubert
6dd8af70f7 Force the dev-docker to always run as amd64
We download a static amd64 browser, so this would explode on arm64, for example.
2022-09-20 00:27:45 +02:00
Benjamin Neff
1358f6fbb8 Expose docker-compose through diaspora-dev script
As the docker-compose.yml contains variables, it can't just be used with
docker-compose directly. So this manually use docker-compose commands
with all the required environment variables set.
2022-09-19 04:01:16 +02:00
Benjamin Neff
a4d45358a2 Set listen not only on localhost when used in docker
When puma was introduced in #8392 the default listen configuration was
set to only localhost, which makes sense for most development setups,
but when run within docker, it needs to listen on all IPs so the port
can be forwarded to be accessable outside of docker.

Because the new default makes sense without docker, I overwrite the
option with a environment variable only in the docker-setup. This also
ensures that it always contains the right value needed for the
docker-setup to work, no matter what was configured outside of docker.
2022-09-19 04:01:16 +02:00
Benjamin Neff
84df8eed33 Add redis to docker development setup
With #8392 the `single_process_mode` was removed, which means that
development now also requires a redis.
2022-09-19 04:01:16 +02:00
Thorsten Claus
65456c7f5e Using mixins for aspects css style 2022-09-12 08:25:37 +02:00
Dennis Schubert
6ddd16267a Give queue_users_for_removal_spec a bit of allowance to accord for timezone changes 2022-09-10 23:22:34 +02:00
Benjamin Neff
7c450b4446 Merge pull request #8390 from cmrd-senya/improve-public-fetch
Improve public posts fetch on account search
2022-09-10 01:34:54 +02:00
Benjamin Neff
af0b1c55e3 Merge pull request #8389 from SuperTux88/update-changelog
Update next major to 1.0.0
2022-09-10 01:29:10 +02:00
Benjamin Neff
ae4cbb18f7 Merge pull request #8392 from denschub/unicorn-dust
Replace Unicorn with Puma
2022-09-10 01:20:34 +02:00
Benjamin Neff
1c72dcc412 Merge branch 'next-minor' into develop 2022-09-10 01:16:09 +02:00
Benjamin Neff
52f206fa8a Merge branch 'hotfix/0.7.18.1' 2022-09-10 01:13:25 +02:00
Dennis Schubert
9075dfa470 Update binstubs
Newly generated binstubs will check for the string
`This file was generated by Bundler` inside `bin/bundle`, so we'd have
to update that anyway.

Also, there is a non-zero chance the updated `bundle` binstub resolves
some of the setup-specific issues we've seen.
2022-09-10 00:43:20 +02:00
Dennis Schubert
97cfc80a1f Replace Unicorn with Puma
… and drop the single_process_mode. See the included Changelog entry
for full details on what this change means.
2022-09-09 04:33:37 +02:00
Dennis Schubert
bb80ca3394 Remove artifacts from the old Federation integration testing attempt
It's… safe to assume that nobody is using this, as this has been broken
for quite some time.
2022-09-07 03:17:03 +02:00
Dennis Schubert
bfd42a1914 Update binstubs
Newly generated binstubs will check for the string
`This file was generated by Bundler` inside `bin/bundle`, so we'd have
to update that anyway.

Also, there is a non-zero chance the updated `bundle` binstub resolves
some of the setup-specific issues we've seen.
2022-09-07 03:15:39 +02:00
cmrd Senya
e77d785d9c post fetch: update spec to test reshares data too 2022-09-06 10:22:08 +03:00
cmrd Senya
61d7eb100a post fetch: use warn not debug for exception logging 2022-09-05 23:22:26 +03:00
cmrd Senya
a6e7c8e2d5 post fetch: update post fetch spec 2022-09-05 23:19:11 +03:00
cmrd Senya
f3c01d5a46 post fetch: remove check for type to allow fetching reshares 2022-09-04 23:28:43 +03:00
cmrd Senya
93d61c7f21 Use federation code for fetching public posts on search 2022-09-04 23:15:30 +03:00
Benjamin Neff
66a0994c91 Change development version number to 1.0.0-dev
Lets use the `-dev` suffix for future development versions.
2022-09-04 19:11:25 +02:00
Benjamin Neff
8a249c06c7 Change deprecation warning for diaspora.yml to version 2.0
as this will be the next major after 1.0
2022-09-03 02:56:46 +02:00
Benjamin Neff
6afaa264ee Change next major release to 1.0.0 in the changelog 2022-09-03 02:52:45 +02:00
Thorsten Claus
8e01a66cb5 Finishing Touches 2022-09-01 22:49:48 +02:00
Benjamin Neff
1c064e016f Merge pull request #8387 from denschub/linked-inline-code-color
Make inline code inside links show the link color.
2022-08-31 22:40:49 +02:00
Benjamin Neff
d18243b5cf Merge pull request #8385 from SuperTux88/remove-therubyracer
Remove note about therubyracer from Gemfile
2022-08-31 22:38:25 +02:00
Sébastien Adam
71c856e330 #7080: SCSS adaptation for displaying the selection of the aspect selection button 2022-08-30 22:55:52 +02:00
Sébastien Adam
fa39f7d348 #7080 Adaptation of the JS for the behavior of the aspect selection button. 2022-08-30 22:51:18 +02:00
Sébastien Adam
29fa1e582a #7080 using aspect selecting button form html into mobile version 2022-08-30 22:51:18 +02:00
Dennis Schubert
0ede0233df Make inline code inside links show the link color.
Fixes #8386
2022-08-26 20:24:32 +02:00
Benjamin Neff
6687f85164 Remove note about therubyracer from Gemfile
podmins should just install nodejs instead
2022-08-24 02:52:16 +02:00
Benjamin Neff
58483bdd2c Merge branch 'next-minor' into develop 2022-07-31 23:14:32 +02:00
Benjamin Neff
9485a02639 Merge branch 'next-minor' 2022-07-31 23:12:00 +02:00
Benjamin Neff
eaedd3d26c updated 11 locale files [ci skip] 2022-07-31 23:08:59 +02:00
Benjamin Neff
77af1b9942 Merge pull request #8383 from tclaus/show_available_pods
Prepare the backend for generating a list of active pods
2022-07-31 04:12:02 +02:00
Thorsten Claus
416c806012 Adding total and active count to pod view
The backend adds the total count for all pods, as well as the count for active pods.

In the frontend shows the new counts but without any further user interactions
2022-07-31 00:19:41 +02:00
Benjamin Neff
496ec4b059 Merge branch 'next-minor' into develop 2022-07-24 21:09:52 +02:00
Benjamin Neff
65909700f3 Merge pull request #8384 from SuperTux88/downgrade-bundler-next-minor
Downgrade Gemfile.lock to bundler 2.1.4
2022-07-24 21:08:14 +02:00
Benjamin Neff
586b319c79 Downgrade Gemfile.lock to bundler 2.1.4
This is the default bundler version that comes with ruby 2.7, and it
looks like ruby ruby 2.7 and bundler 2.3.18 have a problem with the new
splitted version where each gem source has it's own block and it
crashes.

To have less problems for podmins when updating, lets just downgrade
bundler and use the old lockfile format in next-minor. It's not a
problem anymore in develop as we don't have rails-assets anymore there,
as we switched to yarn.
2022-07-24 20:50:01 +02:00
Benjamin Neff
a661b0b608 Merge branch 'next-minor' into develop 2022-07-24 17:22:41 +02:00
Benjamin Neff
646685b42c Handle Faraday::ServerError (for example 502) as HTTPFailure
closes #8380
2022-07-24 17:20:21 +02:00
Benjamin Neff
78b28c3d54 Handle nodeinfo timeouts gracefully
some (especially bigger pods) are sometimes slow to respond with
statistics, so lets handle that gracefully and not mark the pods as
down.
2022-07-24 17:19:04 +02:00
Benjamin Neff
b29675fead Remove error if there was no error anymore
also add pod uri when logging offline pods ... just having a bunch of
"OFFLINE" log messages doesn't help at all.
2022-07-24 17:17:51 +02:00
Benjamin Neff
429a47d64d Merge pull request #8381 from SuperTux88/fix-forgery-protection-for-federation
Bump diaspora_federation and enable forgery protection by default again
2022-07-24 01:30:43 +02:00
Benjamin Neff
9b6a2268e9 Bump diaspora_federation and enable forgery protection by default 2022-07-24 00:29:56 +02:00
Benjamin Neff
a88a25a5eb Merge branch 'next-minor' into develop 2022-07-23 18:41:31 +02:00
Benjamin Neff
eb1c571511 Add xmppChat to NodeInfo 2.1 test for 0.7.x
Follow up for #8379
2022-07-23 18:40:11 +02:00
Benjamin Neff
78ea344454 Merge branch 'next-minor' into develop 2022-07-23 17:01:02 +02:00
Benjamin Neff
4efc4dabf8 Show software and version directly in the pods table if no errors
closes #8379
2022-07-23 17:00:48 +02:00
Benjamin Neff
01f8f55dbb Add parsing of newer versions of NodeInfo
Always take the newest versions both nodes support
2022-07-23 16:59:41 +02:00
Benjamin Neff
49ba740b45 Add NodeInfo 2.1 2022-07-23 16:59:37 +02:00
Benjamin Neff
1be79fb40e Merge pull request #8376 from SuperTux88/improve-setup-and-docker-scripts
Improve setup and docker scripts
2022-07-23 00:56:30 +02:00
Benjamin Neff
2af2bd80f7 Merge pull request #8378 from SuperTux88/add-dummy-host-meta
Add dummy host meta
2022-07-23 00:54:44 +02:00
Benjamin Neff
37a00173f5 Merge branch 'next-minor' into develop 2022-07-23 00:54:06 +02:00
Benjamin Neff
e984fa7d91 Don't use host-meta in connection tester anymore
This route was removed from the federation and doesn't exist anymore, so
checking for it doesn't make any sense.

But lets check if a server responds to /.well-known/nodeinfo instead.
All other software which supports the diaspora protocol should have this
endpoint by now. Parsing/validating nodeinfo is still handled
gracefully.

closes #8377
2022-07-23 00:53:07 +02:00
Benjamin Neff
419ed4d9fc Remove old stubs for /.well-known/host-meta
Since the diaspora_federation gem doesn't try to access host-meta
anymore, there is no need to create stubs for it anymore.
2022-07-23 00:21:06 +02:00
Benjamin Neff
ed8e340fa2 Add a dummy route for /.well-known/host-meta
This was removed from the diaspora_federation gem, since it's not used
for the federation/discovery anymore since a long time. But old versions
of the ConnectionTester up to version 0.7.17 still check if this route
exist or else they mark the pod as offline. So lets add a dummy
host-meta with an empty response back, so the ConnectionTester is happy
again until we can remove this workaround again.
2022-07-23 00:17:06 +02:00
Benjamin Neff
662635fe35 Upgrade development Dockerfile to debian bullseye
to have a current version of yarn
2022-07-21 23:24:55 +02:00
Benjamin Neff
fdcea3e824 Add yarn command to the diaspora-dev docker script 2022-07-21 23:24:55 +02:00
Benjamin Neff
95a9c329af Add command for bin/setup to the diaspora-dev docker script
and also use it for the initial setup command, so it also install yarn
dependencies
2022-07-21 23:24:55 +02:00
Benjamin Neff
08e6f1e2a3 Configure bundler and copy example configs on bin/setup
and also remove `bin/rails restart`, this does nothing for us at the
moment anyway, so just remove it.
2022-07-21 23:13:44 +02:00
Benjamin Neff
9b24407b68 Merge branch 'next-minor' into develop 2022-07-21 05:31:11 +02:00
Dennis Schubert
428c97d089 Disable the default CSRF protection.
This was added in Rails 5.2 defaults, but we upgraded from 5.1 defaults to 6.1, so we didn't notice until now.

closes #8374
2022-07-21 05:30:55 +02:00
Benjamin Neff
975afe03bb Merge branch 'next-minor' into develop 2022-07-21 04:00:30 +02:00
Benjamin Neff
3cf84c838f Disable export_concurrent to prevent segfault during precompile
See https://github.com/sass/sassc-ruby/issues/207

closes #8372
2022-07-21 03:57:26 +02:00
Benjamin Neff
ee68da7eeb Don't eager load active storage in production
We don't use active storage, but eager loading it tries to read the
config/storage.yml, which doesn't exist, because we don't need it.

571b4d5fb9/activestorage/lib/active_storage/engine.rb (L137)
571b4d5fb9/activestorage/app/models/active_storage/blob.rb (L354)

closes #8371
2022-07-21 03:53:47 +02:00
Benjamin Neff
d6436f4d03 Merge pull request #8368 from SuperTux88/upgrade-diaspora-federation
Upgrade diaspora federation (and some preparations for ruby 3)
2022-07-21 02:22:43 +02:00
Benjamin Neff
022f367692 Fix some keyword args for ruby 3 compatibility 2022-07-21 01:25:53 +02:00
Benjamin Neff
93c69c4d42 Bump factory_bot for ruby 3 support 2022-07-20 23:13:06 +02:00
Benjamin Neff
111b3cdc8e Upgrade diaspora_federation to 1.0 2022-07-20 23:06:18 +02:00
Benjamin Neff
c2acf6168a Merge branch 'next-minor' into develop 2022-07-20 22:59:36 +02:00
Benjamin Neff
2e3bd14a09 Fix some update_attributes in tests only on next-minor
These were already fixed on develop in another branch but were never
backported, so lets do that now.
2022-07-20 22:59:30 +02:00
Benjamin Neff
8299aabc25 Drop ruby 2.6 to allow new diaspora_federation version 2022-07-20 22:42:01 +02:00
Benjamin Neff
03d2001cf2 Update yarn files for rails 6
Also allow `yarnpkg` binary for `bin/yarn`
2022-07-20 21:35:22 +02:00
Benjamin Neff
e7e34a8c24 Bump yajl-ruby 2022-07-20 21:35:13 +02:00
Benjamin Neff
4edaebb94f Remove "Did you mean?" from api errors when a parameter is missing
This isn't helpful at all for an api if you don't send a required
parameter and get an error response that just tells you what parameters
that were available.

This is a new feature with rails >= 6.1 and ruby >= 2.7, so this just
keeps the old behaviour of older rails/ruby versions.
2022-07-20 21:35:02 +02:00
Benjamin Neff
d4079070ed Merge branch 'next-minor' into develop 2022-07-20 21:34:39 +02:00
Benjamin Neff
3c4da76be5 Fix follow up tasks for assets:precompile when no manifest existed
When no `.sprockets-manifest-xxx.json` existed, every instance of
`Sprockets::Manifest` generated their own path with their own random
filename, and since this happened before the assets were actually
precompiled, they were all empty. So the error pages didn't find the
manifest and the non-digest assets also didn't have any assets to copy.

So lets create our own instance of `Sprockets::Manifest` here, AFTER
`assets:precompile`, which then loads the manifest json that was used
during precompile, so all precompiled assets are available.

closes #8366
2022-07-20 21:32:21 +02:00
Benjamin Neff
3b02eb87bd Upgrade to bundler 2 2022-07-20 21:32:11 +02:00
Benjamin Neff
c72b30130e Bump sidekiq and sidekiq-cron 2022-07-20 21:27:53 +02:00
Benjamin Neff
01ab639736 Bump acts-as-taggable-on 2022-07-20 21:27:52 +02:00
Benjamin Neff
8a1e3fbec2 Bump nokogiri 2022-07-20 21:27:46 +02:00
Benjamin Neff
c1c9469840 Add ruby 2.7, drop ruby 2.5 2022-07-20 21:27:46 +02:00
Benjamin Neff
3bb9b9a18d Fix deprecation warnings for rails 6.1 2022-07-20 21:27:41 +02:00
Benjamin Neff
fe84d3e101 Upgrade to rails 6.1 2022-07-20 21:27:41 +02:00
Benjamin Neff
1ef3c83a0a Remove workaround for schema.rb
We don't have the schema.rb anymore in the repo, so we don't need it
compatible with both databases anymore.

See 5b1be7d8da
2022-07-20 21:26:58 +02:00
Benjamin Neff
ac86c29a85 Use template_name instead of action_name for notification mails
This is a new feature in rails 6
2022-07-20 21:26:58 +02:00
Benjamin Neff
17b84d3ddd Fix rendering of error pages to remove deprecation warning for rails 6.0 2022-07-20 21:26:58 +02:00
Benjamin Neff
b5a46cf7bb Fix deprecation warnings for rails 6.0 2022-07-20 21:26:58 +02:00
Benjamin Neff
2d38a24a86 Upgrade to rails 6.0 2022-07-20 21:26:58 +02:00
Benjamin Neff
2f30b42d93 Don't load sidekiq workers during initialization
This is to prevent the warning about zeitwerk autoloader
2022-07-20 21:26:40 +02:00
Benjamin Neff
14e27a65ae Move ActsAsTaggableOn::Tag overrides to initializer
This is to prepare for zeitwerk autoloader, and the old file couldn't be
autoloaded anyway, so the easiest is to just move it out of the models
folder.
2022-07-20 21:26:40 +02:00
Benjamin Neff
429aa8f374 Upgrade to sprockets 4 2022-07-20 21:26:40 +02:00
Benjamin Neff
0382cb48c1 Bump diaspora_federation to support rails 6 2022-07-20 21:26:13 +02:00
Benjamin Neff
13eb095e83 Bump js_image_paths to support rails 6 and sprockets 4 2022-07-20 21:25:51 +02:00
Benjamin Neff
1b826eff9b Merge branch 'next-minor' into develop 2022-07-18 00:56:41 +02:00
Benjamin Neff
3598a17ee2 Update .gitignore from develop branch 2022-07-18 00:54:42 +02:00
Benjamin Neff
0cd1080b76 Merge pull request #8364 from cmrd-senya/use-yarn-for-assets
Use yarn for assets
2022-07-18 00:50:23 +02:00
cmrd Senya
ad266e5fda Add url fix for blueimp-gallery error.svg in css 2022-07-18 00:09:15 +03:00
cmrd Senya
7b3ff37079 Replace textchange with native input event 2022-07-17 22:49:29 +03:00
cmrd Senya
ac39716ab4 Drop jquery.textchange 2022-07-17 22:16:05 +03:00
cmrd Senya
1206b3c37d Update package.json fields 2022-07-17 13:27:08 +03:00
cmrd Senya
f702d3c872 Add yarnpkg to developer dockerfile 2022-07-17 13:18:15 +03:00
cmrd Senya
3c3b988603 Merge branch 'develop' into use-yarn-for-assets 2022-07-17 13:07:09 +03:00
Benjamin Neff
d0af34c079 Merge pull request #8358 from tclaus/supporting_heic_images
Using webp as storage format for images
2022-07-16 04:48:03 +02:00
Benjamin Neff
5669ba6b48 Merge branch 'next-minor' into develop 2022-07-16 04:44:59 +02:00
Benjamin Neff
a5e5c7f378 Fix Link to OWASP CSRF more information page
closes #8365
2022-07-16 04:44:17 +02:00
Benjamin Neff
dd3bc39c97 Render markdown to html for notifications 2022-07-16 04:34:07 +02:00
Benjamin Neff
3c02a1f067 Remove unused translation fallback 2022-07-16 04:22:51 +02:00
Benjamin Neff
a9ae84f3a6 Remove markerb dependency
markerb is dead and isn't compatible with rails 6 anymore. Removing it
means adding separate templates for text and html, this sadly means some
code duplication, but also luckily the templates aren't that
complicated, so the duplication is also very minimal.
2022-07-16 04:22:51 +02:00
Benjamin Neff
6cea355636 Fix escaping of names in the from header 2022-07-16 04:22:51 +02:00
Benjamin Neff
f76a8d7deb Fix sending mails after photo export 2022-07-16 04:22:51 +02:00
Benjamin Neff
41633fcea9 Don't autoload PeopleHelper during initialization
this is for future rails versions with zeitwerk autoloader where this
isn't allowed anymore
2022-07-16 04:22:51 +02:00
Thorsten Claus
f995e6af0d Dont Convert when initialized by import 2022-07-16 04:12:01 +02:00
cmrd Senya
551841e0ad blueimp: fix image asset URL 2022-07-12 23:42:01 +03:00
cmrd Senya
e6e6299588 Add yarn install before generating error pages 2022-07-12 22:46:08 +03:00
cmrd Senya
db917caaf5 Add yarnpkg on CI 2022-07-12 22:35:17 +03:00
cmrd Senya
406bb4af68 Add bin/yarn 2022-07-12 22:02:28 +03:00
cmrd Senya
b8b448ae40 Use yarn for front-end dependencies instead of rails-assets 2022-07-12 22:02:05 +03:00
cmrd Senya
834f158d01 API: update Search endpoint to be aware of ignored users 2022-07-06 12:10:45 +03:00
Benjamin Neff
c6dda6cf2d Merge branch 'next-minor' into develop 2022-07-03 23:14:51 +02:00
Benjamin Neff
a7a02e87cf Replace unmaintained sass-rails with sassc-rails
closes #8362
2022-07-03 23:14:42 +02:00
Benjamin Neff
485af7ea78 Remove compass-rails and just use the few images without a sprite
Fixes #6433
2022-07-03 23:14:01 +02:00
Benjamin Neff
1e3386c77a Merge branch 'next-minor' into develop 2022-07-03 20:44:24 +02:00
Benjamin Neff
5f48cedb84 Remove entypo-rails dependency and add font to vendor/assets
entypo-rails doesn't support newer rails versions

closes #8361
2022-07-03 20:44:10 +02:00
Thorsten Claus
492ac74819 Issue #8355: Adding webp as supported file format
Converting all uploaded images to the webp format.
2022-07-01 13:50:01 +02:00
Benjamin Neff
1b2270572b Merge branch 'next-minor' into develop 2022-06-29 13:28:02 +02:00
Benjamin Neff
739fc780c3 Manually stringify keys to fix sidekiq 7.0 deprecation warning
closes #8359
2022-06-29 13:27:37 +02:00
Benjamin Neff
add707252a Merge branch 'next-minor' into develop
... and also remove json-schema-rspec dependency from api specs
2022-06-28 02:08:42 +02:00
Benjamin Neff
2d9f133d30 Merge pull request #8357 from SuperTux88/gem-updates
Gem updates
2022-06-28 00:43:11 +02:00
Benjamin Neff
3ff162320e Bump rails-assets-jquery and jquery-rails 2022-06-27 03:21:28 +02:00
Benjamin Neff
edbb26b926 Bump other dependencies not directly in Gemfile 2022-06-27 03:00:34 +02:00
Benjamin Neff
9b23411d25 Add rails-assets-bootstrap to gems.diasporafoundation.org source block
this prevents a warning because somebody also uploaded an old version of
this to rubygems.org
2022-06-27 02:53:14 +02:00
Benjamin Neff
6753761c74 Bump cucumber-rails 2022-06-27 02:53:14 +02:00
Benjamin Neff
86f306fce8 Bump rspec-rails 2022-06-27 02:53:14 +02:00
Benjamin Neff
b48c72f188 Bump timecop 2022-06-27 02:53:14 +02:00
Benjamin Neff
47d0269043 Bump listen 2022-06-27 02:53:14 +02:00
Benjamin Neff
a1b6209415 Bump pronto-haml 2022-06-27 02:53:14 +02:00
Benjamin Neff
7d7549e01e Bump haml_lint 2022-06-27 02:53:14 +02:00
Benjamin Neff
25f5236d66 Bump asset_sync 2022-06-27 02:53:14 +02:00
Benjamin Neff
f044030db0 Fix version for minitest to 5.15.0
Newer versions don't support ruby 2.5 anymore, which we still use in CI
2022-06-27 02:53:13 +02:00
Benjamin Neff
e3e7d2daab Bump rails-timeago 2022-06-27 02:53:13 +02:00
Benjamin Neff
9189dbf348 Bump hamlit 2022-06-27 02:53:13 +02:00
Benjamin Neff
796047f543 Bump faraday 2022-06-27 02:53:13 +02:00
Benjamin Neff
61a560a58d Bump active_model_serializers 2022-06-27 02:53:13 +02:00
Benjamin Neff
aa0ac5bec6 Bump omniauth and omniauth-rails_csrf_protection 2022-06-27 02:53:13 +02:00
Benjamin Neff
1ba9416e22 Bump ruby-oembed 2022-06-27 02:53:13 +02:00
Benjamin Neff
c0450cbe9d Bump js-routes 2022-06-27 02:53:13 +02:00
Benjamin Neff
8ccf94a587 Bump fog-aws 2022-06-27 02:53:13 +02:00
Benjamin Neff
5238bb4c5d Bump activerecord-import 2022-06-27 02:53:13 +02:00
Benjamin Neff
e096c96c44 Bump pg 2022-06-27 02:53:13 +02:00
Benjamin Neff
a5a0b28d39 Bump mysql2 2022-06-27 02:53:13 +02:00
Benjamin Neff
ca40ca202a Bump sprockets-rails 2022-06-27 02:53:13 +02:00
Benjamin Neff
077bac95c0 Bump autoprefixer-rails 2022-06-27 02:53:13 +02:00
Benjamin Neff
dc1ec7665b Bump toml-rb 2022-06-27 02:53:12 +02:00
Benjamin Neff
d97ff9afce Bump terser 2022-06-27 02:53:12 +02:00
Benjamin Neff
8c4381c1ce Bump sidekiq and sidekiq-cron 2022-06-27 02:53:12 +02:00
Benjamin Neff
db74b364d6 Bump redis 2022-06-27 02:19:39 +02:00
Benjamin Neff
5b298e330c Bump rqrcode 2022-06-27 02:19:39 +02:00
Benjamin Neff
3d8cdc78e0 Bump devise-two-factor 2022-06-27 02:19:39 +02:00
Benjamin Neff
d801adcb6e Bump devise 2022-06-27 02:19:38 +02:00
Benjamin Neff
4076eb3fcf Bump json-schema and remove json-schema-rspec (unmaintained) 2022-06-27 02:19:38 +02:00
Benjamin Neff
7447beb04a Bump json 2022-06-27 02:19:38 +02:00
Benjamin Neff
a8dc10f5ad Bump unicorn 2022-06-27 02:19:38 +02:00
Benjamin Neff
0f7ea165f7 Bump rails 2022-06-27 02:19:38 +02:00
Benjamin Neff
792d034059 Merge pull request #8345 from tclaus/feature/set_name_in_auth_dialog
Set Name from client in auth dialog
2022-06-20 23:54:02 +02:00
Thorsten Claus
18f63250e1 Adding default value to predefined username 2022-06-20 21:59:43 +02:00
Thorsten Claus
84b33f8c63 Using login_hint instead of username 2022-06-20 08:04:03 +02:00
Sage Ross
2ce99d5b5a Remove unread var in mobile_file_uploader.js
This doesn't appear to be actually used, but if `gon` on not defined — which may happen in jasmine tests when run in random order — then it causes test failures.

Closes #8333
2022-06-19 19:31:09 +02:00
Benjamin Neff
6c9e7f283f Merge branch 'next-minor' into develop 2022-06-19 19:30:56 +02:00
Sage Ross
6fadfb30fe Undo another Capybara refactor that causes CI to break
Alas.

Closed #8331
2022-06-19 19:30:41 +02:00
Sage Ross
107f118db4 Undo change to aspects_steps.rb that breaks the build
When I removed this and tested it locally, the feature spec still passed, but it is failing on CI, so it looks like we still need this `execute_script` use until we find a better Capybara strategy.
2022-06-19 19:29:57 +02:00
Sage Ross
ae5333d67d Revert "Replace "execute_script" for triggering hovercards"
This reverts commit e7dc4eca9e.
2022-06-19 19:29:57 +02:00
Sage Ross
4fe52a72f1 Fix comment style violation 2022-06-19 19:29:57 +02:00
Sage Ross
4588ce11c9 Replace "execute_script" for uploading images in specs 2022-06-19 19:29:57 +02:00
Sage Ross
d14036b630 Replace "evaluate_script" for toggling a Bootstrap switch in spec 2022-06-19 19:29:57 +02:00
Sage Ross
637dad208a Replace "execute_script" in publisher_steps definitions 2022-06-19 19:29:57 +02:00
Sage Ross
4548380080 Replace "execute_script" in spec scrolling down on notifications 2022-06-19 19:29:57 +02:00
Sage Ross
b67cf8e983 Replace "execute_script" for filling in Close Account modal
Using "fill_in" seems to work fine with the apparition driver, and will hopefully also work on CI now.
2022-06-19 19:29:57 +02:00
Sage Ross
ef7a5f8d6e Replace "execute_script" for triggering hovercards
In addition to getting rid of an "execute_script" instance, this approach is slightly higher fidelity, as it renders the hovercard at the correct place on the page and doesn't reach into jQuery to trigger the hovercard.
2022-06-19 19:29:57 +02:00
Sage Ross
688245c0de Remove unnecessary execute_script call in feature spec
This call to `execute_script` would directly call jQuery's `sortable` function on an element to make it sortable. However, this isn't necessary; the test can still drag the "Cat People" aspect to the desired position without it.
2022-06-19 19:29:57 +02:00
Sage Ross
245bc1a05f Remove unused custom web step
It looks like this web step is no longer used anywhere. It was implemented for the "Feature: inifinite scroll" test, but that no longer exists.
2022-06-19 19:29:57 +02:00
Sage Ross
df4504979e Refactor "I scroll" web step to avoid using execute_script
The apparition driver does not support "scroll_by" without going through "execute_script", but we can better express the intention of this test and make the scrolling action a bit more general by replacing "scroll a bit" with "scroll to [some element]" — in this case, we need to scroll until the "Change" button is visible so that we can press it.

This change_settings.feature spec is the only place that used "I scroll a bit".
2022-06-19 19:29:57 +02:00
Benjamin Neff
e5b65f6498 Fix jasmine fake publisher messing with follow up tests in random order 2022-06-19 19:29:50 +02:00
Sage Ross
cb774d1c50 Fix another order-dependent failure in router_spec.js 2022-06-19 17:24:41 +02:00
Sage Ross
692f5fdafb Fix style violations, per automated code review 2022-06-19 17:24:40 +02:00
Sage Ross
37d440f91e Turn on random spec order in jasmine.yml 2022-06-19 17:23:00 +02:00
Sage Ross
baeeee8e73 More order-dependent Jasmine test fixes 2022-06-19 17:23:00 +02:00
Sage Ross
23c2487550 Delete specs that cause order-dependent failures elsewhere
This set of specs — in particular, all the calls to `this.view.$el.find(...).trigger('click') — are changing the environment in ways that cause I18n missing key errors elsewhere.

There are failures in `app_spec.js` if this spec file is run before it, and I haven't found a way to reset the environment to avoid the issue.
2022-06-19 17:23:00 +02:00
Sage Ross
94956a2eda Add workound for order-dependent notification_collection_spec.js
This is from Flaburgan: https://github.com/diaspora/diaspora/pull/8305/files

I can't find a better way around it. The specs that call `onChangedUnreadStatus` change the environment in ways we can't figure out how to reset cleanly.
2022-06-19 17:23:00 +02:00
Sage Ross
09ecaec0b5 Fix order-dependent Jasmine failure due to missing translation key
There must be another Jasmine spec that modifies the locale without loading the default afterwards.
2022-06-19 17:23:00 +02:00
Sage Ross
2b352b86ae Fix order-dependent failures in comment_view_spec.js
It looks like these specs expect a logged-in user, and would fail when run after a test that logged out.
2022-06-19 17:23:00 +02:00
Sage Ross
1c577fb5b2 More fixes for order-dependent Jasmine spec failures
These ones would fail if `app.page` was in the wrong state from a previous test.
2022-06-19 17:23:00 +02:00
Sage Ross
b2ee986815 Fix order-dependent failure in app_spec.js
The 'sets the user' spec was failing if run after a spec that had already set the user.
2022-06-19 17:23:00 +02:00
Sage Ross
ae3bd1f62e Fix order-dependent jasmine failure in contacts_collection_spec.js
This was failing if `app.aspect` got set by another spec than ran before it (such as one of the other specs in the same file, when run in a different order).
2022-06-19 17:22:59 +02:00
Sage Ross
b195861483 Fix order-dependent failures in notification_dropdown_view_spec.js
These tests were failing because of an error thrown from `this.header.render()`, unless `head_view_spec.js` had already been run to set app.notificationsCollection.
2022-06-19 17:22:59 +02:00
Sage Ross
4e4d332d6e Fix more order-dependent jasmine specs 2022-06-19 17:22:59 +02:00
Sage Ross
56ef83fa8a Don't overwrite app.stream properties in tests
These cases of modifying app.stream can cause other specs to fail, depending on test order. Here we either don't modify them if the tests still pass without manually stubbing `addNow`, or we cache and restore the properties we need to test.
2022-06-19 17:22:59 +02:00
Sage Ross
f4234fa3a0 Fix order-dependence bug in single_post_interactions_spec.js
This was only passing when run after a loginAs from another spec.
2022-06-19 17:22:59 +02:00
Sage Ross
f85135f726 Make shortcuts_spec.js more order-independent
This spec was failing whenever router_spec.js was not run prior it it running.
2022-06-19 17:22:59 +02:00
Sage Ross
0831d4e294 Fix order-dependent failure of stream_view_spec.js
This spec was only passing when it was run after another spec (router_spec.js) that put `app.page` in an appropriate state.
2022-06-19 17:22:53 +02:00
Dennis Schubert
865c36bc8a Merge branch 'next-minor' into develop 2022-04-27 21:17:23 +02:00
Dennis Schubert
058090afe7 Start 0.7.18.0 cycle 2022-04-27 21:15:32 +02:00
Dennis Schubert
02eba842ae Merge branch 'next-minor' 2022-04-27 21:11:26 +02:00
Dennis Schubert
22ac0872bd Merge branch 'next-minor' into develop 2022-04-27 20:37:49 +02:00
Dennis Schubert
9212fd3f46 Merge pull request #8351 into next-minor 2022-04-27 20:35:34 +02:00
Dennis Schubert
31ea07daa1 Merge pull request #8350 into next-minor 2022-04-27 20:32:19 +02:00
Jonne Haß
43ee2dbb50 Do not allow to mass assign OTP fields on user edit page 2022-04-27 19:48:42 +02:00
Jonne Haß
8e6f3b91d3 bump rails to 5.2.7 2022-04-27 19:06:22 +02:00
Jonne Haß
1cfe0037f9 Do not allow the user to mass assign their own password alongside other
parameters

Much thanks to Breno Vitório (@brenu) for the report!
2022-04-27 13:44:48 +02:00
Dennis Schubert
0cab9f595b Merge branch 'next-minor' into develop 2022-04-26 21:04:25 +02:00
Dennis Schubert
f88807909c Merge branch 'main' into next-minor 2022-04-26 21:03:43 +02:00
Dennis Schubert
6ad4eb3be7 Add dedicated SECURITY.md.
Closes #8348
2022-04-26 21:02:35 +02:00
Thorsten Claus
96c5146ebd Set Name from client in auth dialog 2022-03-29 08:25:32 +02:00
Benjamin Neff
5d81555ae1 Merge branch 'next-minor' into develop 2022-03-05 16:31:34 +01:00
Dennis Schubert
7611391f9f Don't suggest to retry exports on failure.
closes #8343
2022-03-05 16:31:25 +01:00
Benjamin Neff
2b1f27a850 Merge pull request #8341 from SuperTux88/remove-auth-token
Remove /user/auth_token route, this was a leftover from the chat
2022-02-27 23:31:25 +01:00
Benjamin Neff
36778dbeac Remove /user/auth_token route, this was a leftover from the chat
Also remove authentication_token from database
2022-02-27 23:06:24 +01:00
Benjamin Neff
7e889f71eb Merge branch 'next-minor' into develop 2022-02-12 00:12:01 +01:00
Benjamin Neff
d896744ca1 Start 0.7.17.0 cycle 2022-02-12 00:07:58 +01:00
Benjamin Neff
82291ed7e7 Merge branch 'next-minor' 2022-02-12 00:06:20 +01:00
Benjamin Neff
d7fb7405ae updated 25 locale files [ci skip] 2022-02-11 23:59:53 +01:00
Benjamin Neff
d4800544f0 Bump rails to fix CVE-2022-23633
closes #8336
2022-02-11 23:31:19 +01:00
Benjamin Neff
37a7c0b35d Merge pull request #8298 from tclaus/migration_backend
Migration: Backend, Rake file, Photos import
2021-11-25 01:39:57 +01:00
Benjamin Neff
d3c2407df1 Don't overwrite photos of other users during import
If a photo with the same filename already exists, generate a new random
filename, and re-federate the photo with that filename. This ensures
users can't modify their archive to overwrite other users photos.
2021-11-24 02:42:31 +01:00
Benjamin Neff
e9f7bf382e Send new remote_photo_path in migration message 2021-11-24 01:18:07 +01:00
Benjamin Neff
34528521f2 Allow to choose to overwrite settings and profile data 2021-11-23 01:48:33 +01:00
Benjamin Neff
96493b4a5c Refactory archive concurrency so the same logic can be reused 2021-11-23 01:48:33 +01:00
Benjamin Neff
1eb2c59cce Move extension logic to SecureUploader class 2021-11-23 01:48:32 +01:00
Thorsten Claus
6c4c6f8889 Migration Backend Part 2021-11-23 01:48:32 +01:00
Benjamin Neff
ced6905cbc Merge pull request #8320 from tclaus/8319-fix_show_local_posts_link_in_ui
Show local posts in sidebar, if enabled
2021-11-23 01:42:01 +01:00
Benjamin Neff
b1a2cf616e Merge pull request #8302 from SuperTux88/fix-local-sharing-with-me
Fix sharing status of local contacts after an import
2021-11-23 01:40:37 +01:00
Benjamin Neff
4902a35972 Merge branch 'next-minor' into develop 2021-11-23 00:56:41 +01:00
Benjamin Neff
eb977dc25a Use old person private key if relayable author migrated away
We only store signatures for relayables if the author is external, but
if the author becomes external through a migration, the signature is
missing. Lets just use the old persons private key to still be able to
generate a signature for the export.

closes #8310
2021-11-23 00:46:50 +01:00
Benjamin Neff
1570e3fb9a Migrate remote_photo_path and cleanup old photo uploads
If the migration contains a new remote_photo_path migrate all photos of
the old person to this path. If the person was local before, cleanup old
uploaded files of the photos.

closes #8314
2021-11-23 00:43:56 +01:00
flaburgan
c67fc4e0f7 Add sharing status in hovercards, fixes #6542
closes #8317
2021-11-23 00:31:41 +01:00
flaburgan
f6c885394d Refactor hovercards, fixes #8315
closes #8316
2021-11-23 00:30:21 +01:00
flaburgan
37f081959c Add a max-width to user name in the header, fixes #7676
closes #8313
2021-11-23 00:27:05 +01:00
Benjamin Neff
f69215edf1 Merge pull request #8318 from SuperTux88/update-gems
Update gems
2021-11-23 00:22:31 +01:00
Thorsten Claus
d531b64d66 fixes #8319 2021-11-08 18:47:01 +01:00
Benjamin Neff
ec22f5883e Bump omniauth 2021-11-06 17:43:57 +01:00
Benjamin Neff
fbd14c8804 Bump indirect dependency gems 2021-11-06 05:01:21 +01:00
Benjamin Neff
b8e5021dd1 Bump will_paginate 2021-11-06 05:01:21 +01:00
Benjamin Neff
862796131f Bump webmock 2021-11-06 05:01:21 +01:00
Benjamin Neff
a5f59ef105 Bump toml-rb 2021-11-06 05:01:20 +01:00
Benjamin Neff
eea6d71c8d Bump terser 2021-11-06 05:01:20 +01:00
Benjamin Neff
c8fba1ffad Bump sidekiq 2021-11-06 05:01:20 +01:00
Benjamin Neff
fe0c143c89 Bump secure_headers 2021-11-06 05:01:20 +01:00
Benjamin Neff
62f98dcaff Bump rubyzip 2021-11-06 05:01:20 +01:00
Benjamin Neff
19f6057ded Bump rspec-rails 2021-11-06 05:01:20 +01:00
Benjamin Neff
ae6b5a634c Bump rqrcode 2021-11-06 05:01:20 +01:00
Benjamin Neff
cd32959b93 Bump redis 2021-11-06 05:01:20 +01:00
Benjamin Neff
6e8a0dd66a Bump openid_connect 2021-11-06 05:01:19 +01:00
Benjamin Neff
b3c13bc49e Bump nokogiri 2021-11-06 02:35:57 +01:00
Benjamin Neff
fef6380721 Bump js-routes 2021-11-06 02:35:57 +01:00
Benjamin Neff
9548a3645c Bump jasmine 2021-11-06 02:35:56 +01:00
Benjamin Neff
51a46f60f1 Bump hamlit 2021-11-06 02:35:56 +01:00
Benjamin Neff
a66bfc9614 Bump fog-aws 2021-11-06 02:35:56 +01:00
Benjamin Neff
10f62391d4 Bump faraday_middleware and faraday-cookie_jar 2021-11-06 02:35:56 +01:00
Benjamin Neff
a0646e9363 Bump devise-two-factor 2021-11-06 00:51:12 +01:00
Benjamin Neff
2eb52cedec Bump database_cleaner 2021-11-06 00:48:51 +01:00
Benjamin Neff
67069b1519 Bump cucumber 2021-11-06 00:45:06 +01:00
Benjamin Neff
ad24678be3 Bump autoprefixer-rails 2021-11-06 00:29:51 +01:00
Benjamin Neff
f27b4ae920 Bump asset_sync 2021-11-06 00:28:15 +01:00
Benjamin Neff
c939829912 Bump addressable 2021-11-06 00:25:18 +01:00
Benjamin Neff
d1e0b163e2 Merge branch 'next-minor' into develop 2021-10-30 03:14:55 +02:00
Benjamin Neff
39ab87d111 Remove deprecated Sidekiq::Web.sessions
See https://github.com/mperham/sidekiq/pull/4804

closes #8311
2021-10-30 03:11:23 +02:00
flaburgan
8a3c9a2463 Bump faraday to 0.17.4, diaspora_federation to 0.2.7
closes #8312
2021-10-30 03:10:36 +02:00
Benjamin Neff
36e6b31135 Merge pull request #8237 from tclaus/7878-direct-image-pasting
7878 direct image pasting

fixes #7878
closes #7883
2021-10-25 03:51:58 +02:00
Benjamin Neff
95c0bb9ef2 Merge branch 'next-minor' into develop 2021-10-25 03:46:48 +02:00
Benjamin Neff
5714e83ab2 Store signatures of AccountMigrations if the old person is local
That way it can be re-used when sending the AccountMigrations to other
pods again if a message for the migrated account is received.

fixes #7902
closes #8309
2021-10-25 03:40:16 +02:00
Benjamin Neff
3cb1e470a4 Resend AccountMigration or AccountDeletion for closed recipients 2021-10-25 03:34:03 +02:00
Thorsten Claus
88e2e593a4 Update open_graph_reader gem
closes #8307
2021-10-25 03:28:56 +02:00
Benjamin Neff
3292ce64fc Change placeholder in translations for #8304 2021-10-25 03:26:05 +02:00
Benjamin Neff
89cd77751f Change placeholder in translations for #8037 2021-10-25 03:26:04 +02:00
Benjamin Neff
d22ae06cff updated 82 locale files [ci skip] 2021-10-25 03:26:04 +02:00
David Morley
af9f26d11c Change domain for poduptime
closes #8304
2021-10-25 01:59:30 +02:00
flaburgan
5b3f75f011 Remind the username in the reset password e-mail
closes #8037
2021-10-25 01:58:47 +02:00
Benjamin Neff
5e47c284b6 Merge branch 'next-minor' into develop 2021-10-01 02:12:37 +02:00
Benjamin Neff
dc99f0f77a Fix namespace for LineLength rule
closes #8303
2021-10-01 02:12:33 +02:00
Benjamin Neff
59baef3146 Enable HashTransform rules in rubocop because we have ruby >= 2.5 now 2021-10-01 02:12:25 +02:00
Benjamin Neff
0bb4ffce89 Disable Style/AccessorGrouping in rubocop
It makes more sense to allow to structure and group accessors how it
makes sense in the code instead of enforcing it to be grouped in a
specific way.
2021-10-01 02:12:25 +02:00
Benjamin Neff
b2a56376cd Fix running jasmine tests in docker
closes #8299
2021-10-01 02:11:36 +02:00
Benjamin Neff
0e6caf61ff Fix sharing status with local users when importing archive
* Local contacts also start sharing again with imported user if they
  were sharing with the old account
* Don't create empty contact entities for contacts which the imported
  user doesn't share with and also maybe the contact doesn't share with
  the importer
* Ensure people which were a contact in the archive still receive the
  migration, even when the importer doesn't share with them, so they can
  resend their contact message

fixes #8106 for real this time
2021-09-29 05:05:28 +02:00
Benjamin Neff
d9116efb85 Revert #8254
This reverts commit 123b8b906c.
This reverts commit 60f9dbcdbd.
2021-09-29 01:58:57 +02:00
Benjamin Neff
274edf7589 Merge branch 'next-minor' into develop 2021-09-19 14:30:07 +02:00
Thorsten Claus
4c337c6952 8139 add a podmin mail to footer
fixes #8139
closes #8242
2021-09-19 14:27:46 +02:00
Benjamin Neff
991148bd30 Merge branch 'next-minor' into develop 2021-09-19 03:47:12 +02:00
Benjamin Neff
d39a4e3621 Also need to handle account_migration in AccountDeleter spec
Also backported from #7660
2021-09-19 03:45:52 +02:00
Benjamin Neff
c05079d1d3 Merge branch 'next-minor' into develop 2021-09-19 03:41:51 +02:00
Benjamin Neff
fab48ee96d Also need to exclude account_migration from persons reference
Also backported from #7660
2021-09-19 03:41:26 +02:00
Benjamin Neff
e902261c45 Merge branch 'next-minor' into develop 2021-09-19 03:14:07 +02:00
Benjamin Neff
b8ea120ff2 Backport account_migration relation on person from #7660 2021-09-19 03:13:02 +02:00
Benjamin Neff
c740660c0c Merge pull request #8260 from tclaus/import_zipped_archive
Migration: Import compressed archive file handling
2021-09-19 02:28:43 +02:00
Benjamin Neff
0e7c91aeac Merge branch 'next-minor' into develop 2021-09-19 02:22:05 +02:00
Thorsten Claus
2a99cc93ba diaspora should send AccountMigration message back when a federation message received for a moved account
I use Senya's Patch for this
The extra check is for satisfying tests, which don't create real database objects.

fixes #7902
closes #8288
2021-09-19 02:20:38 +02:00
Thorsten Claus
85a5744867 Import compressed archive file 2021-09-19 02:14:50 +02:00
Benjamin Neff
2081f39a72 Merge pull request #8010 from cmrd-senya/fix-archive-edge-cases
Fix archive edge cases

closes #8017
closes #8257
2021-09-18 19:29:56 +02:00
Benjamin Neff
750186319e Merge branch 'next-minor' into develop 2021-09-18 19:24:20 +02:00
Thorsten Claus
8f9ac33649 Using shared markdown options for plain text
fixes #7960
closes #8277
2021-09-18 19:22:27 +02:00
Thorsten Claus
c71caa5cb8 #7960 Add support for Markdown footnote syntax in Mobile view
Splitting stripdown and markdownify options, because the footnote option seems to let the Redcarpet::Render::StripDown function crash
2021-09-18 19:19:02 +02:00
Thorsten Claus
122e12a068 #7960 Add support for Markdown footnote syntax 2021-09-18 19:19:02 +02:00
Benjamin Neff
28f03f0a11 Cleanup person_by_handle route
I think this is a leftover from a long time ago and I can't find
anything that still uses that

closes #8280
2021-09-18 19:18:34 +02:00
Thorsten Claus
8392c894d2 ensure ./log folder exists
closes #8287
2021-09-18 19:18:03 +02:00
Thorsten Claus
4630b49ec4 Update reshare import test with more generic test from #8257 and #8017
Just test for generic NotFetchable error, which also includes the root
author failing to be fetched.
2021-09-18 18:09:30 +02:00
cmrd Senya
9723bd37a7 Fix relayable import when parent is not fetchable 2021-09-18 18:09:30 +02:00
cmrd Senya
1ec0314752 Fix reshare import when root is not fetchable 2021-09-18 04:44:19 +02:00
Benjamin Neff
413926b56e Merge branch 'next-minor' into develop 2021-08-16 01:03:05 +02:00
Benjamin Neff
b2ba0123e1 Fix FactoryBot for next-minor 2021-08-16 01:02:08 +02:00
Thorsten Claus
cdb50edabc Person.find_or_fetch_by_identifier never return nil
Person.find_or_fetch_by_identifier raises an exception if person is not found localy and not fetchable. It never returns nil. These code changes take care about this behaviour and changes specs and code to behave equally.

Close #8273
2021-08-16 00:24:59 +02:00
Benjamin Neff
e2b96c81f2 Merge branch 'next-minor' into develop 2021-08-16 00:24:47 +02:00
Thorsten Claus
8691e650dc Person.find_or_fetch_by_identifier never return nil
Person.find_or_fetch_by_identifier raises an exception if person is not found localy and not fetchable. It never returns nil. These code changes take care about this behaviour and changes specs and code to behave equally.

Also related to #8253
2021-08-16 00:24:33 +02:00
Pirate Praveen
20a3abd864 Switch to terser gem from uglifier for JS compression
closes #8268
2021-08-16 00:21:17 +02:00
Benjamin Neff
d02848c216 Merge branch 'next-minor' into develop 2021-07-26 02:37:40 +02:00
Thorsten Claus
07a49de7e1 Using galleries default border radius Small indicator images in image gallery are round ones, this doesn't correspond with preview shown in stream. It also doesn't look good on real-world images. (may look OK for User profile images)
closes #8275
2021-07-26 02:37:22 +02:00
Benjamin Neff
7d0c29e99a Update repo data before trying to install packages
closes #8276
2021-07-26 02:31:53 +02:00
Benjamin Neff
8d5abe8892 Merge pull request #8264 from tclaus/migration_importing_blocks
Migration: Importing user blocks
2021-07-13 01:40:04 +02:00
Benjamin Neff
2e6ae8c967 Merge pull request #8254 from tclaus/8106_set_contact_status_on_account_migration
Migration: set share status in contacts

closes #8106
2021-07-13 01:36:48 +02:00
Thorsten Claus
1ec7bd7ce1 Migration: Importing user blocks
Migration: fix error on blocks import
2021-07-13 01:22:14 +02:00
Benjamin Neff
7896dbada5 Merge branch 'next-minor' into develop 2021-07-04 23:28:20 +02:00
Benjamin Neff
7e9987b7f5 Downgrade ethon because of https://github.com/typhoeus/ethon/issues/194
closes #8267
2021-07-04 23:28:15 +02:00
Dennis Schubert
0810fa77e9 Remove special-case for diaspora-handle lookups in people controller.
Thss partly reverts a475d5fb62. The special case here was only ever used for the chat, which no longer exists.
2021-07-04 22:10:20 +02:00
Benjamin Neff
4c46ca1a94 Merge branch 'next-minor' into develop 2021-07-04 22:09:32 +02:00
Dennis Schubert
805a35e985 Point /protocol route to the current federation documentation. 2021-07-04 22:07:51 +02:00
Dennis Schubert
407f51d5a3 Allow points and dashes in the username.
This reverts b3ca504c40. We don't quite know why that was added, but we assume it's because of format strings. Some pre-2011 users exist that still have dots or dashes in their username, and those accounts are somewhat broken now.

closes #8266
2021-07-04 22:07:21 +02:00
Benjamin Neff
8f804e376a Don't export chat_enabled flag anymore
The chat is already removed for 0.8, so there is no need to still export
this data since it can't be imported anyway.

Related to #8069

closes #8265
2021-07-04 22:03:37 +02:00
Benjamin Neff
caeeac6c59 Merge branch 'next-minor' into develop 2021-07-03 03:03:32 +02:00
Benjamin Neff
342d4f7fde Add blocks to archive json schema 2021-07-03 03:00:45 +02:00
Thorsten Claus
b31f9106a1 Migration: Exporting user blocks
closes #8263
2021-07-03 02:51:41 +02:00
Benjamin Neff
d27eefeb34 Merge branch 'next-minor' into develop 2021-06-30 23:27:57 +02:00
Benjamin Neff
7b73002a2c Merge pull request #8261 from SuperTux88/gem-updates
Gem updates
2021-06-30 23:21:52 +02:00
Benjamin Neff
c203c1eb94 Cleanup unused commenting_disabled? and can_comment?
closes #8262
2021-06-30 23:19:29 +02:00
Benjamin Neff
c1093abaef Bump some dependency gems 2021-06-28 01:34:26 +02:00
Benjamin Neff
319d5b55d9 Bump webmock 2021-06-28 01:34:26 +02:00
Benjamin Neff
6b48580373 Bump sprockets-rails 2021-06-28 01:34:25 +02:00
Benjamin Neff
da68d363a0 Bump simplecov 2021-06-28 01:34:25 +02:00
Benjamin Neff
2f29bb3035 Bump ruby-oembed 2021-06-28 01:34:25 +02:00
Benjamin Neff
b08202f51d Bump rqrcode 2021-06-28 01:31:01 +02:00
Benjamin Neff
053a93ea08 Bump redis 2021-06-28 01:30:37 +02:00
Benjamin Neff
e790e01753 Bump rails-timeago 2021-06-28 01:30:37 +02:00
Benjamin Neff
0e81a2da86 Bump rails-controller-testing 2021-06-28 01:30:37 +02:00
Benjamin Neff
2fd82c92dd Bump pry 2021-06-28 01:30:37 +02:00
Benjamin Neff
72b66a2782 Bump openid_connect 2021-06-28 01:30:37 +02:00
Benjamin Neff
72ad6fd23b Bump mini_magick 2021-06-28 01:30:37 +02:00
Benjamin Neff
29ea68737d Bump leaflet-rails 2021-06-28 01:30:37 +02:00
Benjamin Neff
c98598b8bc Bump js-routes 2021-06-28 01:30:37 +02:00
Benjamin Neff
edccab4ab3 Bump handlebars_assets 2021-06-28 01:30:36 +02:00
Benjamin Neff
414638476e Bump hamlit 2021-06-28 01:30:36 +02:00
Benjamin Neff
8eb2a9ca12 Bump haml_lint 2021-06-28 01:30:36 +02:00
Benjamin Neff
e1061c3d5c Bump fog-aws 2021-06-28 01:30:36 +02:00
Benjamin Neff
096297bd86 Bump devise 2021-06-28 01:30:34 +02:00
Benjamin Neff
dc3bef6a93 Bump carrierwave 2021-06-28 01:28:15 +02:00
Benjamin Neff
0c4d9bb702 Bump autoprefixer-rails 2021-06-28 01:28:15 +02:00
Benjamin Neff
ca44e91de6 Bump asset_sync 2021-06-28 01:28:15 +02:00
Benjamin Neff
93fae13cab Bump acts-as-taggable-on 2021-06-28 01:28:15 +02:00
Benjamin Neff
bd68e8ec83 Bump activerecord-import 2021-06-28 01:28:14 +02:00
Benjamin Neff
22f0538464 Bump gon 2021-06-27 23:09:12 +02:00
Benjamin Neff
486026a1b6 Bump nokogiri 2021-06-27 23:07:28 +02:00
Benjamin Neff
32e580b3ec Bump bindata 2021-06-27 23:05:02 +02:00
Benjamin Neff
2a22bb01c4 Bump rails 2021-06-27 23:01:41 +02:00
Benjamin Neff
5fcc60fea8 Merge branch 'next-minor' into develop 2021-06-27 22:29:12 +02:00
Akshay S Dinesh
b375bfa630 Add more closing tags to fix specs
closes #8159
2021-06-27 22:23:22 +02:00
Pirate Praveen
77edc5105e Update jquery to 3.5.1 (jquery-rails 4.4.0 and rails-assets-jquery 3.5.1) 2021-06-27 22:21:27 +02:00
Thorsten Claus
60f9dbcdbd Adapted tests for imported share-attribute 2021-06-17 11:15:21 +02:00
Thorsten Claus
123b8b906c 8106 set share status in contacts 2021-06-17 10:26:39 +02:00
Benjamin Neff
1dd2382d03 Merge pull request #8243 from tclaus/8192_drop_relay_example
drop relay example and implementation

closes #8192
2021-06-13 01:35:42 +02:00
Benjamin Neff
a6c79f5e57 Merge pull request #8232 from tclaus/local_public_posts
Show Local public posts

closes #8220
2021-06-13 01:32:24 +02:00
Benjamin Neff
a17fca02ff Merge branch 'next-minor' into develop 2021-06-13 01:27:34 +02:00
Thorsten Claus
43d489edda Fixed test
closes #8244
2021-06-13 01:26:27 +02:00
Thorsten Claus
3793d36609 Added tag handling 2021-06-13 01:24:49 +02:00
Allan Klaus
b2b03d2679 Improve Service::Tumblr
- Fix rubocop styles
- Improve specs coverage
2021-06-13 01:24:48 +02:00
Pirate Praveen
92a096f03c Add closing tags to replace invalid self-closing tags
closes #8251
closes #8158
2021-06-13 01:14:03 +02:00
Thorsten Claus
1f510d0b40 Wrapped local_comments also in a cache
closes #8241
closes #7992
2021-06-13 01:09:44 +02:00
Thorsten Claus
7042237218 Styles, SQL format 2021-06-13 01:03:22 +02:00
Thorsten Claus
d4331f4e65 7992 wrap local_posts from statistics in a cache 2021-06-13 01:03:18 +02:00
Thorsten Claus
47a603a346 Remove route to social relay 2021-05-20 07:59:18 +02:00
Thorsten Claus
61de6e117d 8192 drop relay example and implementation 2021-05-12 23:23:46 +02:00
Thorsten Claus
64d65269d8 Fixing robocop 2021-04-18 13:25:50 +02:00
Thorsten Claus
c937e17335 Set correct defaults for local mode stream 2021-04-18 13:23:17 +02:00
Jonne Haß
85bb022b2a Merge branch 'next-minor' into develop 2021-04-18 13:15:14 +02:00
Jonne Haß
ba905334f7 Start 0.7.16.0 cycle 2021-04-18 13:14:29 +02:00
Thorsten Claus
7fae5ca3b8 More optimized and faster query for local public posts
Even faster with new index
2021-04-18 13:11:25 +02:00
Thorsten Claus
2db1d5d641 Fixing PR Rewview issues 2021-04-18 13:11:25 +02:00
Thorsten Claus
4147249d2d Makes the local posts link be configured for special audiences 2021-04-18 13:11:25 +02:00
Thorsten Claus
34d9d9c3ee Fixing test 2021-04-18 13:11:25 +02:00
Thorsten Claus
ddee980426 Adds a local-public tag on the sidebar that shows all posts local to this pod 2021-04-18 13:11:25 +02:00
Jonne Haß
1d0982822b Merge branch 'next-minor' 2021-04-18 13:09:59 +02:00
Jonne Haß
e8442021b6 Merge branch 'next-minor' into develop 2021-04-17 11:56:04 +02:00
Jonne Haß
33b7d3253a Update unicorn to 6.0.0 2021-04-17 11:55:47 +02:00
Thorsten Claus
6c3269c6d5 Expand publisher on drag&drop 2021-04-14 08:27:06 +02:00
Hank Grabowski
0638619f81 7878 directly pasting images into edit box and broader drag and drop areas 2021-04-13 20:59:45 +02:00
Jonne Haß
69c6305e62 Merge branch 'next-minor' into develop 2021-04-11 20:50:31 +02:00
Jonne Haß
0fcd166387 Redis#client.disconnect is Redis#close now 2021-04-11 20:49:41 +02:00
Jonne Haß
76f759d9f7 Merge branch 'next-minor' into develop 2021-04-11 20:35:18 +02:00
Jonne Haß
cba2b9a3a9 Revert "Update bootstrap-switch-rails 3.3.3 -> 3.3.5"
This reverts commit cb675f5c8d.
2021-04-11 20:34:11 +02:00
Jonne Haß
22815abb22 Rails depends on the listen gem in development mode 2021-04-11 20:30:11 +02:00
Jonne Haß
705bef1dea update twitter-text to 3.1.0 2021-04-11 18:25:58 +02:00
Pirate Praveen
b9f570c68d Use jquery-ui-rails instead of rails-assets-jquery.ui
closes #8147
2021-04-11 18:25:58 +02:00
Jonne Haß
4f9257985c Merge branch 'next-minor' into develop 2021-04-11 17:42:40 +02:00
Jonne Haß
6e55ae7b5e update Gemfile.lock for carrierwave 1.3.2
🙈
2021-04-11 17:42:21 +02:00
Jonne Haß
98d1b54a82 Merge branch 'next-minor' into develop 2021-04-11 17:35:05 +02:00
Jonne Haß
6f9c52e2b4 update to carrierwave 1.3.2 2021-04-11 17:35:01 +02:00
Jonne Haß
28213b1a47 Merge branch 'next-minor' into develop 2021-04-11 17:29:57 +02:00
Jonne Haß
231ca2c3b1 update unrestricted gems 2021-04-11 17:25:18 +02:00
Jonne Haß
24e8be37c2 update jasmine to 3.7.0 2021-04-11 17:25:18 +02:00
Jonne Haß
1d8b9bde43 update hamlit to 2.14.6 2021-04-11 17:25:18 +02:00
Jonne Haß
a18defc90f update haml to 5.2.1 2021-04-11 17:25:18 +02:00
Jonne Haß
e4164eb18f update rspec suite dependencies 2021-04-11 17:25:18 +02:00
Jonne Haß
a36ffff5f7 update linters 2021-04-11 17:25:18 +02:00
Jonne Haß
2412ee390d update capybara and cucumber-rails 2021-04-11 17:25:18 +02:00
Jonne Haß
f949ae2aab update pry 2021-04-11 17:25:18 +02:00
Jonne Haß
b4b4efbab1 drop guard dev tool 2021-04-11 17:25:18 +02:00
Jonne Haß
7277200bc5 update devise to 4.7.3 2021-04-11 17:25:18 +02:00
Jonne Haß
7960a51d12 update open_graph_reader to 0.7.1 2021-04-11 17:25:18 +02:00
Jonne Haß
f55237ca6b update nokogiri to 1.11.3 2021-04-11 17:25:18 +02:00
Jonne Haß
52f08f1178 update redcarpet to 3.5.1 2021-04-11 17:25:18 +02:00
Jonne Haß
aa51329a49 update to rails 5.2.5 2021-04-11 17:25:18 +02:00
Jonne Haß
62bb4dc7b6 Update to Sidekiq 6
closes #8153
closes #8162
2021-04-11 17:25:18 +02:00
Jonne Haß
f52dbe570d Update autoprefixer-rails to 10.2.4.0
closes #8155
2021-04-11 17:25:18 +02:00
Jonne Haß
8d7b866c87 update secure_headers to 6.3.2
closes #8151
2021-04-11 17:25:18 +02:00
Jonne Haß
ee35ad3200 update devise-two-factor to 4.0.0 2021-04-11 17:25:18 +02:00
Pirate Praveen
cb675f5c8d Update bootstrap-switch-rails 3.3.3 -> 3.3.5
closes #8149
2021-04-11 17:25:18 +02:00
Pirate Praveen
4c6937838d Update responders 2.4.1 -> 3.0.1
closes #8148
2021-04-11 17:25:18 +02:00
Pirate Praveen
18ea3343fd Update typhoeus 1.3.1 -> 1.4.0
closes #8145
2021-04-11 17:25:18 +02:00
Pirate Praveen
cd9f79a018 Update rubyzip from 1.3.0 to 2.3.0
closes #8145
2021-04-11 17:25:18 +02:00
Jonne Haß
f4dc6d0dc7 Merge branch 'next-minor' into develop 2021-04-11 17:23:46 +02:00
gabrielrumiranda
394eafccc5 Actually implement validation error case in Photo#ownserhip_of_status_message
closes #8214
closes #8048

Co-authored-by: Thorsten Claus <thorstenclaus@web.de>
2021-04-11 17:22:40 +02:00
Jonne Haß
5f00b4a4e6 Merge branch 'next-minor' into develop 2021-04-11 17:13:46 +02:00
Gayathrir1666
ef9e764f7a Add scrollbar to aspect dropdowns
closes #8213
closes #7696

Co-authored-by: Hank Grabowski <hankgrabowski@gmail.com>
Co-authored-by: Thorsten Claus <thorstenclaus@web.de>
2021-04-11 17:13:25 +02:00
Jonne Haß
2c8bf3b5da Merge branch 'next-minor' into develop 2021-04-11 13:16:21 +02:00
Thorsten Claus
a420ba2cfc Formatting post per user fractions
closes #8227
2021-04-11 13:16:15 +02:00
Jonne Haß
cc5fca99be Fixup rubocop warnings from factory_bot introduction 2021-04-11 01:59:47 +02:00
Jonne Haß
3e6bb01199 Fix specs for factory_bot 6 2021-04-11 01:51:38 +02:00
Ntavranis Serafeim
671e8476ba Update factory_girl to factory_bot 2021-04-11 01:51:38 +02:00
Jonne Haß
e0af180c9b Merge branch 'next-minor' into develop 2021-04-11 01:46:52 +02:00
Thorsten Claus
a98fdc8079 Remove 'heidelberg' tile map service.
Updated settings for MapTiles as recommended by leaflet.js
Updating current licence text

Closes #8209
closes #8215
2021-04-11 01:45:05 +02:00
Jonne Haß
7d9f18fda1 Merge branch 'next-minor' into develop 2021-04-10 23:17:47 +02:00
Jonne Haß
7154fc3ccc Port cukes from poltergeist to aparition
closes #8234
2021-04-10 23:17:39 +02:00
Jonne Haß
cd6eb3de7f Run jasmine specs using chrome headless 2021-04-10 23:16:10 +02:00
Jonne Haß
bbeb24b398 Merge branch 'next-minor' into develop 2021-04-10 11:33:27 +02:00
Pirate Praveen
79133df4a9 Update mimemagic (0.3.5 is removed from rubygems.org)
closes #8231
2021-04-10 11:33:22 +02:00
Jonne Haß
ddaab0d8e8 Merge branch 'next-minor' into develop 2021-04-10 11:07:45 +02:00
Benjamin Neff
e7c5da2fff Use bundler-cache: true instead of actions/cache@v2
Using actions/cache@v2 causes problems with ruby, see
https://github.com/ruby/setup-ruby#caching-bundle-install-manually

Closes #8221

closes #8226
2021-04-10 11:07:37 +02:00
Dennis Schubert
d4f92a8fae Merge branch 'next-minor' into develop 2021-02-21 19:45:00 +01:00
Thorsten Claus
d7941230a4 Replace some http links with their https counterparts.
closes #8207
2021-02-21 19:44:42 +01:00
Dennis Schubert
4c74136c53 Merge branch 'next-minor' into develop 2021-02-14 18:51:05 +01:00
Ashley Nelson
d5d53baa1c Delete user invitation code during account deletion
closes #8202
2021-02-14 18:49:48 +01:00
Dennis Schubert
ecd2b87475 Merge pull request #8206 from denschub/lowercase-tags
Enforce lowercase tags and migrate existing uppercase tags for Postgres.
2021-02-13 04:45:02 +01:00
Dennis Schubert
1ef0cef74c Merge pull request #8205 from tclaus/8189-filter-upload-image-types
File selection dialog accepts only image types
2021-02-13 04:39:42 +01:00
Dennis Schubert
6c49ba1d2e Merge pull request #8187 from jhass/notifications_not_null
Enforce GUID being present for notifications
2021-02-13 04:36:57 +01:00
Dennis Schubert
195dfe6970 Merge pull request #8188 from jhass/converations_api_read
API: Conversations read handling through explicit route
2021-02-13 04:36:23 +01:00
Dennis Schubert
a178e60907 Enforce lowercase tags and migrate existing uppercase tags for Postgres. 2021-02-13 04:30:23 +01:00
Thorsten Claus
37e4242fdf File selection dialog accepts only image types 2021-02-08 21:38:49 +01:00
Dennis Schubert
5bb0798311 Merge branch 'next-minor' into develop 2021-02-08 21:13:57 +01:00
Dennis Schubert
7a7c48a470 CI - Don't fail fast.
Other runs might still result in interesting results, even if one suite fails.

closes #8204
2021-02-08 21:13:50 +01:00
Dennis Schubert
875f54b846 CI - Install all Ubuntu deps into the CI environment.
This matches what we suggest on the wiki -- just to make sure.
2021-02-08 21:13:44 +01:00
Benjamin Neff
caa8a29605 Merge branch 'next-minor' into develop 2020-12-30 14:16:08 +01:00
Benjamin Neff
1faddbc911 Fix "Change email" button position on mobile-ui
closes #8193
2020-12-30 14:16:02 +01:00
Jonne Haß
4ea2a77a86 Merge branch 'next-minor' into develop 2020-12-30 13:29:43 +01:00
Benjamin Neff
98e70c8221 Fix syntax error for default_color_theme in diaspora.toml.example
closes #8194
2020-12-30 13:29:39 +01:00
Jonne Haß
d9db761c79 API: Add endpoint to toggle conversation read status 2020-11-30 18:03:38 +01:00
Jonne Haß
a7ff52f366 API: Don't mark conversations as read when fetching its messages 2020-11-30 18:03:38 +01:00
Jonne Haß
07ec46e151 Enforce GUID being present for notifications 2020-11-30 15:42:48 +01:00
Thorsten Claus
d2acad1aed Enlarge accept and deny buttons in open-id authorization (#8183)
* Enlarge accept and deny buttons

* Move Accept/Deny buttons to the center on mobile, moved right on dektops
2020-11-14 19:22:40 +01:00
Dennis Schubert
e0995e540b updated 17 locale files [ci skip] 2020-11-06 01:10:18 +01:00
Benjamin Neff
9a637213b9 Merge pull request #8181 from denschub/scope-en-fix
Fix private/public confusion in API scopes.
2020-11-04 18:57:56 +01:00
Jonne Haß
e167584f7f Merge branch 'next-minor' into develop 2020-11-04 18:09:41 +01:00
Jonne Haß
cfd5397cfc GHA: Run Jasmine in separate, time limited step for now
closes #8182
2020-11-04 18:09:36 +01:00
Dennis Schubert
611e445e17 Fix private/public confusion. 2020-11-04 16:21:43 +01:00
Benjamin Neff
9021583d37 Merge branch 'next-minor' into develop 2020-11-04 14:22:29 +01:00
Benjamin Neff
d9013250fd Upgrade docker image to ruby 2.6 and debian buster
closes #8180
2020-11-04 14:22:22 +01:00
Benjamin Neff
f51ad14c1b Cleanup dependencies in docker image
Replace ghostscript with gsfonts, the captcha only needs gsfonts to
work.
2020-11-04 14:22:02 +01:00
Jonne Haß
bbd4a68151 Merge branch 'next-minor' into develop 2020-11-02 19:55:41 +01:00
Jonne Haß
6f3d68110a bump jasmine to 3.6.0
closes #8179
2020-11-02 19:55:38 +01:00
Jonne Haß
8bca84422e cucumber: don't fail on flaky tests, fail-fast 2020-11-02 19:55:36 +01:00
Jonne Haß
e1aff7e3ab drop coveralls 2020-11-02 19:55:36 +01:00
Jonne Haß
89b2e9ed3a Merge branch 'next-minor' into develop 2020-11-02 16:08:19 +01:00
Jonne Haß
203ca77a2f github actions ci: don't stop other jobs in matrix if one fails 2020-11-02 16:08:10 +01:00
Jonne Haß
6a4a983fa1 Merge branch 'next-minor' into develop 2020-11-02 15:34:08 +01:00
David Morley
9793f89761 Update poduptime link to diaspora only list
closes #8174
2020-11-02 15:33:38 +01:00
Jonne Haß
a57ee1efb3 Merge branch 'next-minor' into develop 2020-11-02 15:31:11 +01:00
David Morley
e24eb65ca4 update poduptime to diaspora list in readme
closes #8173
2020-11-02 15:31:01 +01:00
Jonne Haß
5c2e454ebd Merge branch 'next-minor' into develop 2020-11-02 15:20:58 +01:00
Jonne Haß
b8a85850e1 Migrate from Travis to Github Actions
closes #8178
2020-11-02 15:20:53 +01:00
Dennis Schubert
5304fb0c6f Merge pull request #8172 from denschub/api-scope-polish
Slightly polish the OAuth Scope descriptions.
2020-11-01 18:48:15 +01:00
Dennis Schubert
04138da009 Slightly polish the OAuth Scope descriptions. 2020-11-01 18:40:28 +01:00
Jonne Haß
0b51bff255 fix wording for api.openid_connect.scopes.notifications 2020-10-30 15:23:01 +01:00
Dennis Schubert
6109c93556 Add de-fallback for de_moo 2020-10-30 02:10:12 +01:00
Dennis Schubert
146045dbf8 Enable de_moo locale 2020-10-30 02:06:11 +01:00
Dennis Schubert
f842da5488 updated 68 locale files [ci skip] 2020-10-30 02:04:19 +01:00
Dennis Schubert
af649adcd9 Fix typo in en.api.openid_connect.authorizations.scopes.interactions.description 2020-10-30 02:02:30 +01:00
Dennis Schubert
25a70c2b16 Merge pull request #8169 from jhass/openid_issuer_url
OpenID Connect: ensure consistent issuer URL
2020-10-25 17:18:25 +01:00
Jonne Haß
0aba20f85c OpenID Connect: ensure consistent issuer URL
root_url does not know the right protocol in all contexts,
some clients are strict when validating this.
2020-10-24 22:30:43 +02:00
Benjamin Neff
d27cd175df Merge pull request #8167 from SuperTux88/fix-TagFollowingsController
Fix error in TagFollowingsController#create when duplicate is created
2020-10-24 21:04:55 +02:00
Dennis Schubert
31e13dcff7 Merge branch 'next-minor' into develop 2020-10-24 14:25:45 +02:00
Thorsten Claus
d0eb711ca0 In single post view deleting a comment updates the counter 2020-10-24 14:25:32 +02:00
Benjamin Neff
81bc438c98 Fix error in TagFollowingsController#create when duplicate is created 2020-10-23 21:10:15 +02:00
Jonne Haß
7fabd9d17f OpenID Connect: Disable form-action CSP on authorization page
Some browsers apply this CSP rules even to the redirect response
after the POST requests, blocking the redirect_uri redirect
2020-10-20 18:10:52 +02:00
Jonne Haß
651a271450 Merge branch 'next-minor' into develop 2020-10-20 11:54:48 +02:00
Jonne Haß
2aaf37659d bump kostya-sigar to 2.0.8
closes #8165
2020-10-20 11:54:45 +02:00
Jonne Haß
1f32999125 Merge branch 'next-minor' into develop 2020-09-17 08:48:45 +02:00
Jonne Haß
c268495e04 Switch to toml-rb gem
For them dotted keys

closes #8152
2020-09-17 08:48:39 +02:00
Jonne Haß
e81f07f0cf Drop config/script_server.yml warning 2020-09-04 22:00:23 +02:00
Jonne Haß
e10cf9cc85 Drop fallback to bitcoin_wallet_id 2020-09-04 22:00:14 +02:00
Jonne Haß
b75254bdda Warn about using diaspora.yml 2020-09-04 21:59:36 +02:00
Jonne Haß
15c11b87ca Merge branch 'next-minor' into develop 2020-09-04 21:58:57 +02:00
Jonne Haß
ce82ba3dde Drop spring
it does more harm than good at this point

closes #8133
2020-09-04 21:52:24 +02:00
Jonne Haß
2acdc8e095 Add chat configuration to diaspora.toml.example 2020-09-04 21:49:30 +02:00
Jonne Haß
08395cc877 Migrate configuration to TOML
YAML is just too easy to get wrong

closes #8132
2020-09-04 21:48:54 +02:00
Dennis Schubert
9df2e95724 Merge pull request #8141 from denschub/add-ip-to-admin-ui
Expose a user's .current_sign_in_ip in the admin panel
2020-09-02 21:51:20 +02:00
Dennis Schubert
517e3b22ba Expose a user's .current_sign_in_ip in the admin panel 2020-09-02 21:06:13 +02:00
Dennis Schubert
f2b118dc32 Merge branch 'next-minor' into develop 2020-07-08 22:05:52 +02:00
Jonne Haß
9dff9642b6 bundler: disable post install messages in production
closes #8131
2020-07-08 22:05:45 +02:00
Dennis Schubert
2f608d4a78 Merge branch 'next-minor' into develop 2020-06-24 18:48:01 +02:00
Dennis Schubert
0937bfc420 updated 9 locale files [ci skip] 2020-06-24 18:46:08 +02:00
Dennis Schubert
44bbb44c81 Merge branch 'next-minor' into develop 2020-06-14 22:13:08 +02:00
Dennis Schubert
d061c4e2cf Merge branch 'master' into next-minor 2020-06-14 22:12:58 +02:00
Dennis Schubert
4ca68a71d9 Merge branch 'release/0.7.14.0' 2020-06-14 22:11:23 +02:00
Dennis Schubert
3c124cefc3 updated 6 locale files [ci skip] 2020-06-14 22:10:24 +02:00
Dennis Schubert
fb46e77339 Merge branch 'next-minor' into develop 2020-06-14 21:50:13 +02:00
Dennis Schubert
9771a96add Start 0.7.15.0 cycle.
[ci skip]
2020-06-14 21:49:07 +02:00
Dennis Schubert
6519ded5ec Merge branch 'next-minor' into develop 2020-06-14 20:43:23 +02:00
Dennis Schubert
efa89cc2f3 Merge pull request #8130 from denschub/gem-updates
Bump Rails
2020-06-14 20:43:00 +02:00
Dennis Schubert
77062cbcaf Bump Rails 2020-06-13 23:49:57 +02:00
Dennis Schubert
868f0a8eec Merge pull request #8129 from denschub/api-cors
Allow CORS on all API routes.
2020-06-13 23:31:58 +02:00
Dennis Schubert
31b28e731d Merge branch 'next-minor' into develop 2020-06-13 23:31:09 +02:00
Noah Leal
ad91dddd63 Issue #8119 - Add length validation to a profile's gender field.
closes #8127
2020-06-13 23:31:03 +02:00
Dennis Schubert
e0cf63f1d3 Merge branch 'next-minor' into develop 2020-06-13 23:29:52 +02:00
flaburgan
7193099902 Bump ruby version to 2.6, drop support of 2.3
closes #7929
2020-06-13 23:29:47 +02:00
Dennis Schubert
bcf5406f53 Issue #8126 - Allow CORS on all API routes. 2020-06-11 20:13:46 +02:00
Benjamin Neff
002d427f34 Merge branch 'next-minor' into develop 2020-03-28 01:13:42 +01:00
Benjamin Neff
f882dd2d6f Bump octokit to 4.18.0 ... 4.17.0 was yanked :(
See octokit/octokit.rb#1219
2020-03-28 01:12:53 +01:00
Jonne Haß
d13bcc00e0 Merge branch 'next-minor' into develop 2020-03-21 19:15:14 +01:00
Vitalie Ciubotaru
827a2ce991 Remove links to deleted profiles in admin user stats
closes #8063
closes #8061
2020-03-21 19:14:56 +01:00
Jonne Haß
221ef7b932 Merge branch 'next-minor' into develop 2020-03-20 20:06:04 +01:00
Jonne Haß
ba8e0907cc update rails-timeago to 2.18.0 2020-03-20 20:03:42 +01:00
Jonne Haß
38d746b240 use latest ruby patch releases on travis 2020-03-20 20:03:42 +01:00
Jonne Haß
bd7feb83a6 update rqrcode to 1.1.2 2020-03-20 20:03:42 +01:00
Jonne Haß
813e6d4781 update rubocop to 0.80.1 and rubocop-rails to 2.4.1 2020-03-20 20:03:42 +01:00
Jonne Haß
9b6bc59854 update twitter to 7.0.0 2020-03-20 20:03:42 +01:00
Jonne Haß
3a3a9008b6 update simple_captcha2 to 0.5.0 2020-03-20 20:03:42 +01:00
Jonne Haß
1da14f2ef7 update sidekiq to 5.2.8 2020-03-20 20:03:42 +01:00
Jonne Haß
bec7e77e9e update asset_sync to 2.11.0 2020-03-20 20:03:42 +01:00
Jonne Haß
4a5610df2f update acts-as-taggable-on to 6.5.0 2020-03-20 20:03:42 +01:00
Jonne Haß
a7119fa7c1 update activerecord-import to 1.0.4 2020-03-20 20:03:42 +01:00
Jonne Haß
abec056c02 update omniauth to 1.9.1 2020-03-20 20:03:42 +01:00
Jonne Haß
60a50c881d update will_paginate to 3.3.0 2020-03-20 20:03:42 +01:00
Jonne Haß
de4a416280 update versionist to 2.0.1 2020-03-20 20:03:42 +01:00
Jonne Haß
3042b385c6 update string-direction to 1.2.2 2020-03-20 20:03:42 +01:00
Jonne Haß
a7f3ea976f update redcarpet to 3.5.0 2020-03-20 20:03:42 +01:00
Jonne Haß
33405d6ee6 update pg to 1.2.3 2020-03-20 20:03:42 +01:00
Jonne Haß
a681b317f3 update mysql2 to 0.5.3 2020-03-20 20:03:42 +01:00
Jonne Haß
db8bc5d874 update leaflet-rails to 1.6.0 2020-03-20 20:03:42 +01:00
Jonne Haß
04c545ef7d update js-routes to 1.4.9 2020-03-20 20:03:42 +01:00
Jonne Haß
ecdf130bcd update handlebars_assets to 0.23.8 2020-03-20 20:03:42 +01:00
Jonne Haß
a4dd210669 update hamlit to 2.11.0 2020-03-20 20:03:42 +01:00
Jonne Haß
8913a30d57 update haml_lint to 0.35.0 2020-03-20 20:03:42 +01:00
Jonne Haß
d6814878e9 update gon to 6.3.2 2020-03-20 20:03:42 +01:00
Jonne Haß
78b62dd3ed update addressable to 2.7.0 2020-03-20 20:03:42 +01:00
Jonne Haß
c74b0ab611 update nokogiri to 1.10.9 2020-03-20 20:03:42 +01:00
Jonne Haß
3eba2f3fa3 update fog-aws to 3.5.2 2020-03-20 20:03:42 +01:00
Jonne Haß
d9ef60b8b3 update uglifier to 4.2.0 2020-03-20 20:03:42 +01:00
Jonne Haß
05ee8f3db0 update unicorn to 5.5.3 2020-03-20 20:03:42 +01:00
Jonne Haß
872d87c772 update webmock to 3.8.3 2020-03-20 20:03:42 +01:00
Jonne Haß
27493cee41 update rspec-rails to 3.9.1 2020-03-20 20:03:42 +01:00
Jonne Haß
d0e5f90f84 update yard to 0.9.24 2020-03-20 20:03:42 +01:00
Jonne Haß
25a6c9583f update tins to 1.24.1 2020-03-20 20:03:42 +01:00
Jonne Haß
e5e4189569 update tilt to 2.0.10 2020-03-20 20:03:42 +01:00
Jonne Haß
8f0826a8bc update temple to 0.8.2 2020-03-20 20:03:42 +01:00
Jonne Haß
9c7d9186f6 update sassc to 2.2.1 2020-03-20 20:03:42 +01:00
Jonne Haß
d3210f1154 update rugged to 0.99.0 2020-03-20 20:03:42 +01:00
Jonne Haß
d5c22c3e49 update request_store to 1.5.0 2020-03-20 20:03:42 +01:00
Jonne Haß
ea4b670582 update raindrops to 0.19.1 2020-03-20 20:03:42 +01:00
Jonne Haß
9c449b0298 update rack-protection to 2.0.8.1 2020-03-20 20:03:42 +01:00
Jonne Haß
fa26c29bb2 update rack-oauth2 to 1.10.1 2020-03-20 20:03:42 +01:00
Jonne Haß
7f90110696 update parser to 2.7.0.4 2020-03-20 20:03:42 +01:00
Jonne Haß
8779a15e27 update parallel to 1.19.1 2020-03-20 20:03:42 +01:00
Jonne Haß
196f0699b0 update octokit to 4.17.0 2020-03-20 20:03:42 +01:00
Jonne Haß
19314f8a94 update oauth2 to 1.4.4 2020-03-20 20:03:42 +01:00
Jonne Haß
90926d95e9 update kgio to 2.11.3 2020-03-20 20:03:42 +01:00
Jonne Haß
95aaa7a140 update jsonpath to 1.0.5 2020-03-20 20:03:42 +01:00
Jonne Haß
95f08ac9af update jaro_winkler to 1.5.4 2020-03-20 20:03:42 +01:00
Jonne Haß
f0f8cf334c update http-form_data to 2.3.0 2020-03-20 20:03:42 +01:00
Jonne Haß
195780122b update gitlab to 4.14.0 2020-03-20 20:03:42 +01:00
Jonne Haß
403960811f update get_process_mem to 0.2.5 2020-03-20 20:03:42 +01:00
Jonne Haß
659bdf4b7a update fugit to 1.3.3 2020-03-20 20:03:42 +01:00
Jonne Haß
ffa69df704 update fog-core to 2.2.0 2020-03-20 20:03:42 +01:00
Jonne Haß
2d742ec0ff update fabrication to 2.21.0 2020-03-20 20:03:42 +01:00
Jonne Haß
95422c7566 update excon to 0.73.0 2020-03-20 20:03:42 +01:00
Jonne Haß
fc6d736471 update et-orbi to 1.2.4 2020-03-20 20:03:42 +01:00
Jonne Haß
2149ebb2df update domain_name to 0.5.20190701 2020-03-20 20:03:42 +01:00
Jonne Haß
e046a4cc3a update bindata to 2.4.6 2020-03-20 20:03:42 +01:00
Jonne Haß
4ac1b9ae87 update spring to 2.1.0 2020-03-20 20:03:42 +01:00
Jonne Haß
eb7a71a2a5 update rb-inotify to 0.10.1 2020-03-20 20:03:42 +01:00
Jonne Haß
b325d2ca43 update jasmine to 3.5.1 2020-03-20 20:03:42 +01:00
Jonne Haß
7ec921c956 update guard to 2.16.1 2020-03-20 20:03:42 +01:00
Jonne Haß
d561d2caf1 update fuubar to 2.5.0 2020-03-20 20:03:42 +01:00
Jonne Haß
67924fc404 update fixture_builder to 0.5.2 2020-03-20 20:03:42 +01:00
Jonne Haß
51e7eae2c3 update factory_girl_rails to 4.9.0 2020-03-20 20:03:42 +01:00
Jonne Haß
b54679a634 update database_cleaner to 1.8.3 2020-03-20 20:03:42 +01:00
Jonne Haß
b146c90e57 update cucumber-rails to 2.0 2020-03-20 20:03:42 +01:00
Jonne Haß
9211f930cd update json to 2.3.0 2020-03-20 20:03:42 +01:00
Jonne Haß
00c5f35190 Update Rails to 5.2.4.2 2020-03-20 20:03:42 +01:00
Jonne Haß
1a7b2b0c31 API: extend /search/user with a filter option
See API docs for more details
2020-03-20 12:39:09 +01:00
Jonne Haß
2d28ddc1ef Add API route to (un)block a user 2020-03-20 12:38:27 +01:00
Jonne Haß
6278925ce2 Merge pull request #8109 from jhass/feature/api_post_no_body
API: allow post creation without a body when there are photos
2020-03-04 16:12:11 +01:00
Jonne Haß
cd6e02ccec API: allow post creation without a body when there are photos 2020-02-20 18:50:32 +01:00
Jonne Haß
e9242d7754 API: Fix fetching explicitly not only unread conversations 2020-02-17 10:59:10 +01:00
Jonne Haß
00df0b7bda API: add new route to search for tags 2020-02-17 10:58:04 +01:00
Benjamin Neff
984b739eb4 Merge branch 'next-minor' into develop 2020-02-12 00:38:14 +01:00
Benjamin Neff
c432a658dd Start 0.7.14.0 cycle 2020-02-12 00:36:21 +01:00
Benjamin Neff
c2a991fec1 Merge branch 'release/0.7.13.0' 2020-02-12 00:33:50 +01:00
Benjamin Neff
6f65d9f96c updated 11 locale files [ci skip] 2020-02-12 00:29:37 +01:00
Benjamin Neff
4139ae2549 Merge branch 'next-minor' into develop 2020-02-12 00:13:19 +01:00
Dennis Schubert
b0181fbbb9 Bump mini_magick.
closes #8108
2020-02-12 00:09:54 +01:00
Dennis Schubert
ec72ac1277 Bump nokogiri. 2020-02-11 23:56:49 +01:00
Dennis Schubert
bc601f7c34 Bump devise. 2020-02-11 23:56:49 +01:00
Dennis Schubert
905df19a34 Bump rubyzip. 2020-02-11 23:54:56 +01:00
Dennis Schubert
43b83cf8f7 Bump json-jwt. 2020-02-11 23:54:56 +01:00
Dennis Schubert
d898b5ba69 Bump rack-cors. 2020-02-11 23:54:56 +01:00
Dennis Schubert
b7ee911778 Bump excon. 2020-02-11 23:54:56 +01:00
Dennis Schubert
67d73ece80 Bump secure_headers. 2020-02-11 23:54:55 +01:00
Dennis Schubert
71023a8713 Replace secret_token with secret_key_base.
secrets.secret_token is deprecated in favor of secret_key_base and will be removed in Rails 6.0.
2020-02-11 23:54:55 +01:00
Dennis Schubert
2e2b42ef1a Mark non-attribute usage in SQL queries as safe.
Non-attribute arguments will be disallowed in Rails 6.0.
2020-02-11 23:54:55 +01:00
Dennis Schubert
4685df634c Make Person.search_query_string public.
Accessibility of private/protected class methods in :scope is deprecated and will be removed in Rails 6.0.
2020-02-11 23:53:14 +01:00
Dennis Schubert
e40a07f204 Replace be_success with be_successful in specs.
be_success is deprecated and will be removed in Rails 6.
2020-02-11 23:53:14 +01:00
Dennis Schubert
45e8b54bea Check for status codes instead of relying on response.redirect?.
Rack did so much refactoring, we do not see a Response object here anymore.
2020-02-11 23:53:14 +01:00
Dennis Schubert
35da56109f Create a dup string from the return value of .truncate.
Due to a bug in Rails, .truncate returns a frozen string if the string actually changed, but not if there are no changes. This leads to inconsistent behaviour, and broken tests.

This was fixed upstream, see https://github.com/rails/rails/pull/36109, but the fix did not make it into 5.2.x, so we have to work around for the time being.
2020-02-11 23:53:14 +01:00
Dennis Schubert
75ef13b5d1 Replace content_security_policy_nonce with content_security_policy_script_nonce.
To avoid an conflict with Rails, and to avoid confusing by twitter's gem overloading the method.
2020-02-11 23:53:14 +01:00
Dennis Schubert
25e9728fae Do not depend on the default parameter being set in Person#initialize.
ActiveRecord 5.2.x occasionally calls with a nil parameter explicitly provided, so using default arguments does not work.
2020-02-11 23:53:14 +01:00
Dennis Schubert
93b0e1eb22 Bump Rails. 2020-02-11 23:53:14 +01:00
Jonne Haß
6dbef95951 API: return whether post or item was already reported or not 2020-02-09 11:04:59 +01:00
Jonne Haß
8068d8747b API: Fix fetching explicitly not only unread notifications 2020-02-09 11:03:55 +01:00
Jonne Haß
cd0995abf3 API: Don't return notifications target unless it's a post 2020-02-09 11:03:55 +01:00
Jonne Haß
04d0d6dccb API: return mentioned_people for comments 2020-02-04 18:54:53 +01:00
Dennis Schubert
08d4f87a2d Merge pull request #8100 from denschub/hotfix/fix-raw-photos
Re-add `raw` to a photo's json.
2020-02-04 16:36:13 +01:00
Dennis Schubert
6df742a7cb Do not allow additional properties in the API's photo_sizes schema definition 2020-02-04 15:52:58 +01:00
Dennis Schubert
dbbf743920 Add the scaled_full image as a raw image in AvatarPresenter as well.
This is a temporary workaround. Adding the real raw photo is quite a
challange and touches multiple components nobody wants to touch right
now. As this change is blocking an actual hotfix, this is fine, and will
be properly fixed at a later time.
2020-02-04 15:52:57 +01:00
Dennis Schubert
bf55d07580 Re-add sizes.raw to the photo JSON
because we need it for showing the raw image in the lightbox. This got lost, as the photo extension was made after API development started.
2020-02-04 14:38:49 +01:00
Jonne Haß
2e7526bac5 API: Let hide endpoint take payload as documented and act according to it 2020-02-02 21:49:20 +01:00
Jonne Haß
dcbd02cf7f Return 403 for unauthorized API requests
Also cleanup error handling code and remove last translatable
API error messages
2020-02-02 21:49:20 +01:00
Jonne Haß
884de9008f API: rename poll_answer_id to poll_answer in post interactions vote endpoint 2020-02-02 21:26:33 +01:00
Jonne Haß
b1f357849b API: return post oEmbed data 2020-02-02 20:15:36 +01:00
Jonne Haß
5921cd0176 API: return post open graph metadata 2020-02-02 20:15:36 +01:00
Jonne Haß
8cae234f45 API: return own vote state in polls 2020-02-02 18:40:07 +01:00
Jonne Haß
b921b71b97 API: ensure nsfw field in post is returned as a boolean 2020-02-02 18:31:46 +01:00
Jonne Haß
0754c92116 API: correct like and comment scopes for private posts 2020-02-02 18:23:34 +01:00
Jonne Haß
fbd0a51829 API: return current users like, reshare and subcription status in post infos 2020-02-02 18:13:55 +01:00
Jonne Haß
6bbcb7415b API: don't make error messages translatable 2020-02-02 18:04:11 +01:00
Jonne Haß
04744b4dac API: Return 409 when trying to create something existing and 410 when trying to delete something already gone
Probably missed a few more cases where we always return sucess when the user requests
status quo, but this should cover most ground
2020-02-02 18:04:11 +01:00
Jonne Haß
e8b9a70fbf Ensure API responses adhere to documented error format 2020-02-02 18:04:11 +01:00
Jonne Haß
9e762fcc31 Use full references in API JSON schema
We load another schema, https://diaspora.github.io/diaspora_federation/schemas/federation_entities.json,
that has overlapping definitions, namely #/definitions/post. When the definition from that schema is accessed
first, the json-schema gem caches it and is not smart enough to give precedence to the definition
within the schema document that contains the reference. So for now we have to disambiguate the references
likes this
2020-02-02 18:03:51 +01:00
Jonne Haß
2da33408f9 Merge branch 'next-minor' into develop 2020-01-27 09:30:14 +01:00
Jonne Haß
1e642be040 Hide sign up link in mobile header when registrations are disabled
closes #8060
2020-01-27 09:30:11 +01:00
Dennis Schubert
f35f55cb25 Merge pull request #8088 from jhass/feature/return_token_endpoint_auth_method
API: Return a default token_endpoint_auth_method when the client gives none in its OpenID Connect registration request
2020-01-24 22:20:00 +01:00
Jonne Haß
654b81b8f1 Explicitly select fragment from API JSON schema in specs
this should make them more strict and robust at the same time
2020-01-24 16:59:04 +01:00
Jonne Haß
35bfbc9c82 Return missing created_at field on reshares endpoint 2020-01-24 16:58:32 +01:00
Jonne Haß
0935451cd8 Return a default token_endpoint_auth_method when the client gives none in its OpenID Connect registration request
Since we announce it in the supported metadata, some clients expect to be told what to use and don't fallback to the spec standard of
client_secret_basic on their own.
2020-01-24 11:02:02 +01:00
Dennis Schubert
500763294d Merge pull request #8086 from jhass/api
API
2020-01-22 22:38:15 +01:00
Jonne Haß
1da075e30b Merge branch 'next-minor' into develop 2020-01-22 21:09:20 +01:00
Dennis Schubert
1d72f95705 Issue #8062 - Drop rails-assets.org.
and replace it with our own Gem cache. This isn't pretty, as we have to manage that one ourselves, and pushing updates requires a core-team member, but rails-assets.org has become way too unreliable for us to be a viable option.

closes #8087
2020-01-22 21:08:06 +01:00
Jonne Haß
8d690a9e33 undo changes in introduced by merge conflicts in the api branch 2020-01-21 23:56:01 +01:00
Jonne Haß
16b242fa0f Drop chat_enabled from aspects API 2020-01-21 23:35:01 +01:00
Jonne Haß
9bb1a36e3d Fix passing scope name to wrong scope openid connect error message 2020-01-21 23:35:01 +01:00
Jonne Haß
3abf6b6f41 return required client_secret_expires_at in openid connect dynamic registration response 2020-01-21 23:35:01 +01:00
Jonne Haß
1bf05e7921 use desktop openid connect authorizations and error pages on mobile for now 2020-01-21 23:35:01 +01:00
Jonne Haß
39c863ead9 Merge branch 'develop' into api 2020-01-21 23:35:01 +01:00
cmrd Senya
6b8cd5d390 API: accept name parameter instead of first name and last name in user patch 2020-01-21 23:34:43 +01:00
cmrd Senya
9e18b19d6a API: render name instead of first_name and last_name in user data 2020-01-21 23:34:43 +01:00
cmrd Senya
c348a763cf API: add profile:read_private scope 2020-01-21 23:34:43 +01:00
Jonne Haß
d08b31f2ed OpenID: remove private profile data claims that are not returned anyway and fix return values for profile and picture 2020-01-21 23:34:43 +01:00
Jonne Haß
dad54db7f4 Return API pagination links as headers rather than in the response body itself 2020-01-21 23:34:43 +01:00
Jonne Haß
2f7acbe4b3 API: fix missing page parameter to integer conversion 2020-01-21 23:34:43 +01:00
Jonne Haß
ab04633474 fix styling on the new authorization page 2020-01-21 23:34:43 +01:00
Jonne Haß
07acfba488 Merge branch 'develop' into api 2020-01-21 23:34:43 +01:00
Jonne Haß
6d6e846916 API: photo width and height are optional 2020-01-21 23:34:43 +01:00
Jonne Haß
cb679371ac Merge branch 'develop' into api 2020-01-21 23:34:43 +01:00
Jonne Haß
16e754f4c7 API: don't return default avatar 2020-01-21 23:34:00 +01:00
Benjamin Neff
1cbb3f9a7c Merge pull request #8069 from denschub/remove-chat
Remove the JSXC/Prosody integration.
2019-10-25 01:32:37 +02:00
Benjamin Neff
6bb2e2fadd Merge branch 'next-minor' into develop 2019-10-25 01:24:19 +02:00
Jonne Haß
36b4076af6 set better example values for unicorn stdout/stderr log settings
[ci skip]

closes #8058
2019-10-25 01:24:08 +02:00
FeruzOripov
3856b44c57 Refactoring aspects_controller.rb
closes #8064
2019-10-25 01:22:02 +02:00
Dennis Schubert
862fa38f8b Remove the JSXC/Prosody integration.
As per discussion on https://discourse.diasporafoundation.org/t/removing-diaspora-s-current-chat-integration/2718, nobody raised serious concerns or objections. Given future plans, we do not think having an unfinished implementation of something that likely will not get finished in the current form is worth it. So let's get rid of it.
2019-10-18 23:14:14 +02:00
Jonne Haß
995f3394a8 Merge branch 'next-minor' into develop 2019-09-01 02:44:02 +02:00
Jonne Haß
ba16185b8e install ghostscript on travis
closes #8049
2019-09-01 02:43:51 +02:00
Jonne Haß
6937fa13e5 travis: ensure postgresql and mysql are available 2019-09-01 02:42:11 +02:00
Jonne Haß
5b09e9d38d install libidn-dev on travis 2019-09-01 02:42:11 +02:00
Jonne Haß
6a7e937d90 Update open_graph_reader to 0.7.0
This should fix undefined method `og' for #<OpenGraphReader::Base:0x00007f73c53f2308 @bases={}>
for sites that have OpenGraph tags of other namespaces but no actual OpenGraph core tags
2019-09-01 02:42:11 +02:00
Benjamin Neff
8cab64b715 Merge branch 'next-minor' into develop 2019-07-06 22:45:05 +02:00
Benjamin Neff
593614aef1 Bump fuubar
Version 2.4.0 was yanked ... why do people do such things? m(

https://github.com/thekompanee/fuubar/issues/111
2019-07-06 22:43:41 +02:00
Benjamin Neff
e63fa7a398 Merge branch 'next-minor' into develop 2019-07-04 02:30:38 +02:00
Benjamin Neff
b42c9896bc Migrate pending profile photos and fix upload to unpend profile photos
fixes #8043

closes #8044
2019-07-04 02:29:17 +02:00
Benjamin Neff
11caf4f86f Merge pull request #8036 from theRealNG/develop
Do not show getting started after account import

fixes #8018
2019-07-03 13:33:22 +02:00
Benjamin Neff
e0b8b295df Merge pull request #8039 from SuperTux88/photos-remove-commentable
Remove commentable functionality from photos
2019-07-03 13:29:39 +02:00
Benjamin Neff
a26e20ab7d Merge branch 'next-minor' into develop 2019-07-03 13:25:49 +02:00
Benjamin Neff
df4e79b842 Cleanup pending photos which were never posted with cronjob
Only delete photos older than a day, so we don't delete photos for posts
which were uploaded 10 minutes ago and the author is still writing the
post for it.

closes #8041
2019-07-03 13:24:27 +02:00
Benjamin Neff
397dbdbee8 Bump unf_ext
closes #8042
2019-07-03 13:21:20 +02:00
Benjamin Neff
68234fc91f Bump macaddr 2019-07-03 13:20:09 +02:00
Benjamin Neff
2b8cc070f2 Bump jsonpath 2019-07-03 13:20:08 +02:00
Benjamin Neff
18d6d39c62 Bump jwt 2019-07-03 13:20:08 +02:00
Benjamin Neff
6ede2ade7b Bump bcrypt 2019-07-03 13:20:08 +02:00
Benjamin Neff
4b2414c9eb Bump rspec-expectations and rspec-mocks 2019-07-03 13:20:08 +02:00
Benjamin Neff
b654ca7f82 Bump rails-assets-bootstrap 2019-07-03 13:20:08 +02:00
Benjamin Neff
5278ae6a96 Bump fugit 2019-07-03 13:20:08 +02:00
Benjamin Neff
4b921816eb Bump ffi 2019-07-03 13:20:08 +02:00
Benjamin Neff
2503934a04 Bump fabrication 2019-07-03 13:20:08 +02:00
Benjamin Neff
cde29af545 Bump rails-assets-jasmine-ajax 2019-07-03 13:20:07 +02:00
Benjamin Neff
1e2e064268 Bump jasmine 2019-07-03 13:20:07 +02:00
Benjamin Neff
435e60c214 Bump cucumber-rails 2019-07-03 13:20:07 +02:00
Benjamin Neff
51e7958c4b Bump pronto 2019-07-03 13:18:38 +02:00
Benjamin Neff
18b0dd0060 Bump coveralls 2019-07-03 13:18:38 +02:00
Benjamin Neff
26b247bf98 Bump webmock 2019-07-03 13:18:38 +02:00
Benjamin Neff
800676a90f Bump rspec-json_expectations 2019-07-03 13:18:38 +02:00
Benjamin Neff
556fa42004 Bump fuubar 2019-07-03 13:18:38 +02:00
Benjamin Neff
1458d2d57f Bump rubocop 2019-07-03 13:18:38 +02:00
Benjamin Neff
d2c4faeb9f Bump versionist 2019-07-03 13:18:37 +02:00
Benjamin Neff
3a1428a672 Bump hamlit 2019-07-03 13:17:37 +02:00
Benjamin Neff
06c582a672 Bump faraday_middleware 2019-07-03 13:17:36 +02:00
Benjamin Neff
fa08ebf7bd Bump addressable 2019-07-03 13:17:36 +02:00
Benjamin Neff
c059550943 Bump openid_connect 2019-07-03 13:17:36 +02:00
Benjamin Neff
ee503737cb Bump secure_headers 2019-07-03 13:17:36 +02:00
Benjamin Neff
a6261fdc64 Bump nokogiri 2019-07-03 13:17:36 +02:00
Benjamin Neff
56670865b9 Bump leaflet-rails 2019-07-03 13:17:36 +02:00
Benjamin Neff
325a9122b8 Bump js-routes 2019-07-03 13:17:36 +02:00
Benjamin Neff
a018abcfe9 Bump jquery 2019-07-03 13:17:35 +02:00
Benjamin Neff
8f5c248536 Bump handlebars_assets 2019-07-03 13:17:35 +02:00
Benjamin Neff
e2ce43c3c7 Bump fog-aws 2019-07-03 13:17:35 +02:00
Benjamin Neff
c154c4e2af Bump activerecord-import 2019-07-03 13:17:35 +02:00
Benjamin Neff
07513e2ec0 Bump rack-cors 2019-07-03 13:17:35 +02:00
Benjamin Neff
b1441356d2 Bump sidekiq 2019-07-03 13:17:35 +02:00
Benjamin Neff
e7a7f62531 Bump unicorn 2019-07-03 13:17:35 +02:00
Benjamin Neff
4ae373e3a2 Bump rails 2019-07-03 13:17:30 +02:00
Benjamin Neff
034d78e3e4 Remove commentable functionality from photos
This is not (and as far as I know, was never) used. If we want to make
standalone photos commentable, we can always add it back, but it would
also need to change federation for it to work, because comments support
only posts there. But for now it makes the code cleaner and easier to
remove it.
2019-07-02 01:58:54 +02:00
NG
e3de008453 Do not show getting started after account import 2019-06-26 15:56:32 +05:30
Benjamin Neff
e92eb88782 Merge branch 'next-minor' into develop 2019-06-25 02:14:52 +02:00
Benjamin Neff
4cef2a4325 Merge branch 'master' into next-minor 2019-06-25 02:14:45 +02:00
Benjamin Neff
09a425cbbc Merge branch 'release/0.7.12.0' 2019-06-25 02:13:50 +02:00
Benjamin Neff
1e8a96d817 updated 64 locale files [ci skip] 2019-06-25 02:06:07 +02:00
Benjamin Neff
6f14f1b850 Merge branch 'next-minor' into develop 2019-06-17 01:20:42 +02:00
Benjamin Neff
d674f53910 Start 0.7.13.0 cycle 2019-06-17 01:19:44 +02:00
Benjamin Neff
5602dc4418 Use username parameter first if present
this makes sure we don't use an old otp_user_id from an old session

closes #8031
2019-06-17 01:14:22 +02:00
Benjamin Neff
88e35d3f3a Use :database_authenticatable strategy to check password for OTP user
This:
* makes sure that after_database_authentication is called for users with
enabled 2fa.
* handles paranoid mode correctly
2019-06-17 01:12:42 +02:00
Benjamin Neff
ef31ea6b96 Enable remember me for all forms
fixes #8023
2019-06-17 01:12:42 +02:00
flaburgan
78538d034a Harmonize markdown titles sizes
fixes #7757

closes #8029
2019-06-17 01:10:41 +02:00
flaburgan
d8b3718a08 Fix wrong padding for captcha label in registration form
fixes #8016

closes #8028
2019-06-17 01:08:38 +02:00
Benjamin Neff
0f0b3edec2 Merge pull request #8020 from SuperTux88/dont-send-relayable-on-import
Don't relay others relayable on archive import
2019-05-25 20:04:14 +02:00
Jonne Haß
700e5588e0 Merge branch 'next-minor' into develop 2019-05-24 22:43:13 +02:00
Jonne Haß
1227f34b2a Pass normalized URI to OpenGraphReader
This ensures the hostname is downcase and thus subsequent third party library
assumptions hold, namely http-cookie (pulled through faraday-cookie_jar) doesn't
raise

closes #8021
2019-05-24 22:43:08 +02:00
Benjamin Neff
d5b7c6d779 Don't relay others relayable on archive import 2019-05-21 23:08:34 +02:00
Benjamin Neff
0df2f519f0 Merge branch 'next-minor' into develop 2019-05-13 22:52:23 +02:00
Benjamin Neff
4a22f08539 Merge branch 'master' into next-minor 2019-05-13 22:52:08 +02:00
Benjamin Neff
dc7c5ffef6 Merge branch 'release/0.7.11.0' 2019-05-13 22:51:22 +02:00
Benjamin Neff
5aec9b966c updated 74 locale files [ci skip] 2019-05-13 22:49:16 +02:00
Benjamin Neff
314239ff2a Merge branch 'next-minor' into develop 2019-05-12 00:25:52 +02:00
Benjamin Neff
e5ba9a1a46 Move translations to registrations.closed
And remove unused translations and make "another pod" translatable.

closes #7896
2019-05-12 00:25:36 +02:00
flaburgan
4feab5219e Use a partial to share code between mobile and desktop, add the new route to the RegistrationController, drop flash message for closed registrations 2019-05-12 00:25:36 +02:00
alebor-5
469983a623 Improve communication about signing up on closed pods
fixes #7767
2019-05-12 00:25:08 +02:00
flaburgan
6826e89a95 Change design, add a link to the official website
fixes #7910

closes #7966
2019-05-12 00:12:12 +02:00
David Moseler
e04ddd0bcc Clarify pod is part of diaspora in splash screen 2019-05-12 00:09:58 +02:00
Benjamin Neff
4d02aee375 Merge branch 'release/0.7.11.0' into next-minor 2019-05-12 00:07:36 +02:00
Benjamin Neff
165b8f4f6e Don't encrypt the OTP secret
It doesn't add any security to have this encrypted, but it adds
complexity for podmins, because they need to backup the key.

closes #8014
2019-05-12 00:06:28 +02:00
Jonne Haß
2d23a2601e fix old photos without a remote_photo_path or remote_photo_name
closes #8012
2019-05-11 22:07:48 +02:00
Dennis Schubert
cb5f26a709 Merge branch 'next-minor' into develop 2019-05-05 04:23:09 +02:00
Dennis Schubert
3704be8bec Prepare 0.7.12.0 cycle
[ci skip]
2019-05-05 04:22:10 +02:00
Dennis Schubert
39b86ed486 Remvoe unused Changelog headline
[ci skip]
2019-05-05 04:21:37 +02:00
Jonne Haß
dfeea521f5 Merge branch 'next-minor' into develop 2019-05-03 17:18:53 +02:00
flaburgan
83a9877def Improve likes steps
closes #8002
2019-05-03 17:17:32 +02:00
flaburgan
554faa4116 Reorganize steps a bit 2019-05-03 17:15:32 +02:00
Dennis Schubert
74c3debefe Merge branch 'next-minor' into develop 2019-05-01 00:22:09 +02:00
Dennis Schubert
caf822f497 Make sure 2fa settings have the right background color
closes #8008
2019-05-01 00:22:04 +02:00
Benjamin Neff
d25d9f96f9 Merge branch 'next-minor' into develop 2019-04-30 22:52:00 +02:00
Benjamin Neff
54fd4846c0 Use password to disable 2FA instead of a token
Using token doesn't make much sense when you can generate new tokens
right below.

closes #8006
2019-04-30 22:51:51 +02:00
Benjamin Neff
ecda6eccf6 Remove password reset and sign up link below two factor form
They don't make sense on that page, because at this stage, the user
already has an account and also has already entered their password.

closes #8005
2019-04-30 22:51:11 +02:00
Benjamin Neff
d486fbce8c Merge branch 'next-minor' into develop 2019-04-30 00:21:55 +02:00
Dennis Schubert
3c06bb2f4c Center <p>s inside formes used as secondary labels
closes #8004
2019-04-30 00:21:43 +02:00
Dennis Schubert
ef137f09f2 Add lock icon to the 2fa OTP field 2019-04-30 00:21:36 +02:00
Benjamin Neff
607659939d Enable paranoid mode for devise
fixes #8001

closes #8003
2019-04-30 00:21:00 +02:00
Jonne Haß
f7103267a1 Merge branch 'next-minor' into develop 2019-04-28 23:25:04 +02:00
lislis
9d5b981809 Two factor authentication (#7751) 2019-04-28 23:24:40 +02:00
lislis
1da118780e Two factor authentication (#7751) 2019-04-28 19:06:48 +02:00
cmrd Senya
ce597380e6 Merge branch 'next-minor' into develop 2019-04-28 19:29:36 +03:00
cmrd Senya
3f74a759b3 Bump diaspora_federation 2019-04-28 19:28:25 +03:00
Benjamin Neff
8372fb2240 Merge branch 'next-minor' into develop 2019-04-28 16:48:49 +02:00
Jonne Haß
1e827161fe rubocop: increase complexity limits [ci skip] 2019-04-28 16:48:40 +02:00
Benjamin Neff
17af65e22c Allow links with only the diaspora ID to link to a profile
closes #8000
2019-04-28 16:48:31 +02:00
Benjamin Neff
91aae4d755 Fix 500er when calling protocol handler with invalid URL 2019-04-28 16:44:29 +02:00
cmrd Senya
8b35356709 AccountMigration: fix flaky spec 2019-04-28 13:56:35 +03:00
Jonne Haß
a19891174e rubocop: increase complexity limits [ci skip] 2019-04-28 11:08:16 +02:00
Benjamin Neff
d58646085f Merge branch 'next-minor' into develop 2019-04-27 19:12:35 +02:00
Benjamin Neff
035b6f39fc Change wording of description in PWA manifest 2019-04-27 19:11:27 +02:00
Benjamin Neff
cf350c3e92 Merge pull request #7660 from cmrd-senya/archive-import-backend
Archive import backend implementation
2019-04-27 19:07:09 +02:00
cmrd Senya
3c94c1bd29 AuthorPrivateKeyValidator: support old serialization method of RSA keys 2019-04-27 19:17:54 +03:00
Benjamin Neff
6ba9b24c1a Merge branch 'next-minor' into develop 2019-04-27 18:00:40 +02:00
flaburgan
2073791cee Add a manifest.json file as a first step to make diaspora* a PWA
fixes #7997

closes #7998
2019-04-27 18:00:14 +02:00
flaburgan
5b6cef0679 Remove legacy mobile web-capable 2019-04-27 17:56:51 +02:00
cmrd Senya
ee0c3e9865 Account import: add missing profile fields 2019-04-27 17:44:19 +03:00
Jonne Haß
214c2d7af7 Specs: Ensure photos always width and height 2019-04-27 16:05:35 +02:00
Jonne Haß
91b6a807c7 API: fix birthday format in responses 2019-04-27 16:05:22 +02:00
Jonne Haß
52e4e9f903 API: Update post location format to floats instead of floats as strings 2019-04-27 16:04:44 +02:00
Jonne Haß
af59bf3265 API: Do not return redundant author for photos 2019-04-27 16:03:55 +02:00
Jonne Haß
8afa17f940 Don't return aspect order in single user info API route 2019-04-27 16:03:02 +02:00
Jonne Haß
9b8f10358a Introduce JSON Schema for API responses and validate the responses against it 2019-04-27 16:01:54 +02:00
cmrd Senya
b5db8820d6 Account Migration rake task: render warnings with a newline 2019-04-27 15:13:14 +03:00
cmrd Senya
f7324adb9c Account import: import profile data too 2019-04-27 15:13:14 +03:00
cmrd Senya
bffe2b651c AccountMigration spec: flatten shared examples more 2019-04-26 20:58:28 +03:00
cmrd Senya
882e4f9868 AccountMigration specs: remove unused user shortcuts 2019-04-26 20:44:09 +03:00
cmrd Senya
a3196a1089 ArchiveValidator: remove unused TODO 2019-04-26 20:33:21 +03:00
cmrd Senya
597d9e0275 AccountMigration: support chained migration case 2019-04-26 20:29:26 +03:00
cmrd Senya
dd9ac758e8 AccountMigration integration specs: use single example instead of multiple to speed up the spec 2019-04-26 20:13:19 +03:00
cmrd Senya
f774c46db3 AccountMigration specs: move one-time shared contexts in place 2019-04-26 19:45:55 +03:00
cmrd Senya
6b88d2f4e0 AccountMigration specs: move 2-line shared context in place 2019-04-26 19:38:23 +03:00
Jonne Haß
f7a27f0c07 Ignore Metrics/AbcSize Rubocop for PostPresenter#as_api_response
[ci skip]
2019-04-26 18:18:48 +02:00
Jonne Haß
99411fced7 Merge branch 'develop' into api 2019-04-26 17:54:08 +02:00
Benjamin Neff
4e22c4b211 Merge branch 'next-minor' into develop 2019-04-26 17:41:33 +02:00
cmrd Senya
f85f167f50 Implement archive import backend
This implements archive import feature.

The feature is divided in two main subfeatures: archive validation and archive import.

Archive validation performs different validation on input user archive. This can be
used without actually running import, e.g. when user wants to check the archive
before import from the frontend. Validators may add messages and modify the archive.

Validators are separated in two types: critical validators and non-critical validators.

If validations by critical validators fail it means we can't import archive.

If non-critical validations fail, we can import archive, but some warning messages
are rendered.

Also validators may change archive contents, e.g. when some entity can't be
imported it may be removed from the archive.

Validators' job is to take away complexity from the importer and perform the validations
which are not implemented in other parts of the system, e.g. DB validations or
diaspora_federation entity validations.

Archive importer then takes the modified archive from the validator and imports it.

In order to incapsulate high-level migration logic a MigrationService is
introduced. MigrationService links ArchiveValidator, ArchiveImporter and
AccountMigration.

Also here is introduced a rake task which may be used by podmins to run archive
import.
2019-04-26 18:41:27 +03:00
Jonne Haß
d443401361 Stabilize Diaspora::Federation::Entities.build.builds a comment with edited_at
closes #7994
2019-04-26 17:41:25 +02:00
Jonne Haß
a38a93523d Stabilize Diaspora::Federation::Receive.comment.saves the signature data 2019-04-26 17:40:48 +02:00
Jonne Haß
e3c05b5620 Stabilize Diaspora::Federation::Receive.comment.saves the signature data 2019-04-26 15:56:09 +02:00
Jonne Haß
b1cc37e939 Avoid using sleep in the API specs 2019-04-26 13:40:43 +02:00
Jonne Haß
5df1e08610 migrate authorizations scopes column to text 2019-04-26 13:40:43 +02:00
Jonne Haß
3f77507b15 make notifications controller spec stable 2019-04-26 12:26:26 +02:00
Benjamin Neff
e0a6189ec4 Merge branch 'next-minor' into develop 2019-03-30 15:05:47 +01:00
Benjamin Neff
a28be72e74 Bump other dependency gems 2019-03-30 15:04:33 +01:00
Benjamin Neff
093cca9a76 Bump rails-controller-testing 2019-03-30 15:03:12 +01:00
Benjamin Neff
ccbc65993d Bump rspec-rails 2019-03-30 15:03:12 +01:00
Benjamin Neff
d9d0eb1512 Bump webmock 2019-03-30 15:03:12 +01:00
Benjamin Neff
f8419b14ba Bump shoulda-matchers 2019-03-30 15:03:12 +01:00
Benjamin Neff
290ddbf271 Bump capybara 2019-03-30 15:03:11 +01:00
Benjamin Neff
48c4cabd3f Bump byebug 2019-03-30 15:03:11 +01:00
Benjamin Neff
18d7b38037 Bump rubocop 2019-03-30 15:03:11 +01:00
Benjamin Neff
01468c34dd Bump rb-inotify 2019-03-30 15:03:11 +01:00
Benjamin Neff
7ae2dc6249 Bump asset_sync 2019-03-30 15:03:11 +01:00
Benjamin Neff
6f53f1bc0a Bump will_paginate 2019-03-30 15:03:11 +01:00
Benjamin Neff
5195f7daac Bump rails-timeago 2019-03-30 15:03:11 +01:00
Benjamin Neff
2585fb9b49 Bump hamlit 2019-03-30 15:03:11 +01:00
Benjamin Neff
02617a3562 Bump faraday 2019-03-30 15:03:10 +01:00
Benjamin Neff
0372924b90 Bump omniauth 2019-03-30 15:03:10 +01:00
Benjamin Neff
05472cc4f9 Bump secure_headers 2019-03-30 15:03:10 +01:00
Benjamin Neff
da39750244 Bump nokogiri 2019-03-30 15:03:10 +01:00
Benjamin Neff
3b0f435f69 Bump rails-i18n 2019-03-30 15:03:10 +01:00
Benjamin Neff
adaca8d0a3 Bump handlebars_assets 2019-03-30 15:03:10 +01:00
Benjamin Neff
8a10655f7f Bump mini_magick 2019-03-30 15:01:01 +01:00
Benjamin Neff
c8bef1077d Bump fog-aws 2019-03-30 15:01:01 +01:00
Benjamin Neff
da83456660 Bump carrierwave 2019-03-30 15:01:01 +01:00
Benjamin Neff
b7183d7cee Bump activerecord-import 2019-03-30 15:01:01 +01:00
Benjamin Neff
cd7af6df50 Bump pg 2019-03-30 15:01:01 +01:00
Benjamin Neff
54e44d6d7e Bump uglifier 2019-03-30 15:01:01 +01:00
Benjamin Neff
a63f11bbf4 Bump sidekiq-cron 2019-03-30 15:01:01 +01:00
Benjamin Neff
7b201f4bb9 Bump sidekiq 2019-03-30 15:01:00 +01:00
Benjamin Neff
f4fa7e10bd Bump json 2019-03-30 15:01:00 +01:00
Benjamin Neff
23d637b9a1 Bump unicorn 2019-03-30 15:01:00 +01:00
Benjamin Neff
360780c17f Bump responders 2019-03-30 15:01:00 +01:00
Benjamin Neff
c253272d83 Bump bootstrap-sass 2019-03-30 15:01:00 +01:00
Benjamin Neff
c063f6fa1b Bump devise 2019-03-30 15:01:00 +01:00
Benjamin Neff
94a32b2833 Bump rails 2019-03-30 15:00:54 +01:00
Benjamin Neff
fc0de7bbd0 Merge branch 'next-minor' into develop 2019-02-26 01:02:52 +01:00
Benjamin Neff
a4031e09e1 Merge branch 'master' into next-minor 2019-02-26 01:02:42 +01:00
Benjamin Neff
663da1ef25 Merge branch 'release/0.7.10.0' 2019-02-26 01:01:51 +01:00
Benjamin Neff
7595168e01 updated 7 locale files [ci skip] 2019-02-26 00:57:43 +01:00
Dennis Schubert
c30ea112df Merge branch 'next-minor' into develop 2019-02-19 03:04:13 +01:00
Dennis Schubert
189923040d Merge branch 'release/0.7.10.0' into next-minor 2019-02-19 03:03:51 +01:00
Dennis Schubert
a3a0a1fba9 Fix incorrect bug number in the changelog
Good one, eh? [ci skip]
2019-02-19 03:03:20 +01:00
Benjamin Neff
d5735c7981 Merge branch 'next-minor' into develop 2019-02-19 01:58:32 +01:00
Benjamin Neff
4687d7e1ea Start 0.7.11.0 cycle 2019-02-19 01:48:11 +01:00
Benjamin Neff
707e358e48 Merge branch 'next-minor' into develop 2019-02-19 01:30:08 +01:00
Dennis Schubert
e47d0d9675 Replace dandelion.jpg with a public domain photo
Closes #7972

closes #7976
2019-02-19 01:29:52 +01:00
Benjamin Neff
cdfcccd75d Merge branch 'next-minor' into develop 2019-01-14 03:15:51 +01:00
Benjamin Neff
3ea4396ddb Merge branch 'master' into next-minor 2019-01-14 03:13:44 +01:00
Benjamin Neff
1edcb0013c Merge branch 'release/0.7.9.0' 2019-01-14 03:11:54 +01:00
Benjamin Neff
1925127964 updated 87 locale files [ci skip] 2019-01-14 03:09:05 +01:00
Dennis Schubert
97805e6602 Merge branch 'next-minor' into develop 2019-01-13 02:17:22 +01:00
Benjamin Neff
2894984f57 Fix order of posts on tags-stream for tags including 'activity'
closes #7959
2019-01-13 02:17:15 +01:00
Benjamin Neff
7ad758a8d9 Merge branch 'next-minor' into develop 2019-01-07 02:04:26 +01:00
Benjamin Neff
71595b4cbd Start 0.7.10.0 cycle 2019-01-07 02:03:06 +01:00
Benjamin Neff
cf1b0fb414 Merge branch 'next-minor' into develop 2019-01-06 22:32:39 +01:00
Benjamin Neff
654b524397 Fix typo in changelog for 0.7.9.0 2019-01-06 22:27:15 +01:00
Benjamin Neff
2b2852267a Merge branch 'next-minor' into develop 2019-01-06 22:18:48 +01:00
Benjamin Neff
efcaa860ac Revert "Bump bootstrap-switch-rails"
It looks like 3.3.4 is broken :(

Fixes #7940

This reverts commit 5205e3c526.

closes #7955
2019-01-06 22:16:02 +01:00
flaburgan
3f700c3960 Fix photos galley when too many thumbnails by adding a scroll-x
fixes #7942

closes #7943
2019-01-06 22:12:38 +01:00
flaburgan
c8a1f308c6 Rename 'toggle mobile' to 'switch to touch-optimized mode' or 'switch to standard mode'
closes #7926
2019-01-06 22:04:22 +01:00
flaburgan
6804132c15 Do not autofollow back a user you are ignoring
fixes #7808

closes #7913
2019-01-06 22:02:10 +01:00
Hank Grabowski
58d2ce7ba6 Ignore Users in Mobile UI
fixes #7840

closes #7884
2019-01-06 21:55:33 +01:00
Hank Grabowski
3080d1c559 Authentication cucumber tests fixed by updating to for new scopes names 2019-01-01 11:05:55 -05:00
Hank Grabowski
ce01946eb0 Fixed new pronto warnings after develop branch sync 2018-12-30 17:04:35 -05:00
Hank Grabowski
89f918c486 Merge branch 'api' of github.com:frankrousseau/diaspora into api 2018-12-30 16:38:02 -05:00
Hank Grabowski
e127502be5 API Branch Final Cleanup Before PR 2018-12-30 22:33:04 +01:00
Hank Grabowski
9c730fc0f3 OpenID Scopes and Security updates 2018-12-30 22:33:04 +01:00
Hank Grabowski
a53495c9aa API Paging library and used in appropriate controllers with full tests 2018-12-30 22:33:04 +01:00
Hank Grabowski
16bf5d8130 Add Poll Voting Method to Interactions Endpoint 2018-12-30 22:33:04 +01:00
Hank Grabowski
02cf6a9eb2 Photos API Endpoint and unit tests complete 2018-12-30 22:33:04 +01:00
Hank Grabowski
7dba616e4e Search API Endpoint and unit test complete 2018-12-30 22:33:04 +01:00
Hank Grabowski
2f432eb560 Users Controller and unit tests complete 2018-12-30 22:33:04 +01:00
Hank Grabowski
09c13fdf67 Notifications API Endpoint and unit test complete 2018-12-30 22:33:04 +01:00
Hank Grabowski
803abba5c1 Interactions API endpoint complete with full tests 2018-12-30 22:33:04 +01:00
HankG
0f4789a5cb Contacts API Feature complete with full tests 2018-12-30 22:33:04 +01:00
Hank Grabowski
7ae36de2cf Tags API Endpoint complete with full tests 2018-12-30 22:33:04 +01:00
Hank Grabowski
db7fe69ce4 Aspects API Endpoint complete with full tests 2018-12-30 22:31:33 +01:00
Hank Grabowski
173461ac3d Reshares API Endpoint complete with full unit tests 2018-12-30 22:31:33 +01:00
Hank Grabowski
45c8277f2f Conversations API Test Removed 'convo' Abbreviations 2018-12-30 22:31:33 +01:00
HankG
4923338bcf Conversations API Endpoint Feature complete with full tests 2018-12-30 22:31:33 +01:00
HankG
48b1428c57 Streams Controller API feature complete and fully tested 2018-12-30 22:31:33 +01:00
Hank Grabowski
bb2261b47d Posts API Endpoint feature complete with full unit tests 2018-12-30 22:31:33 +01:00
Hank Grabowski
f64a8e04ed Comments API Endpoint complete with full unit tests 2018-12-30 22:31:33 +01:00
Hank Grabowski
7ee9565a04 Likes API endpoint complete 2018-12-30 22:31:33 +01:00
Frank Rousseau
a56d998499 Fix code style 2018-12-30 22:31:33 +01:00
Frank Rousseau
758c673f68 Fix post controller test 2018-12-30 22:31:33 +01:00
Frank Rousseau
5326ddf6c3 Adapt error formatting to documentation 2018-12-30 22:31:33 +01:00
Frank Rousseau
df11297654 Fix like deletion 2018-12-30 22:31:33 +01:00
Frank Rousseau
84ac19a090 Clean API routes
* Remove routes without matching controller
* Rename stream routes to match specifications
* Remove public stream route and related controller
2018-12-30 22:31:33 +01:00
Frank Rousseau
f8969ddfeb Make Post API match specs
https://diaspora.github.io/api-documentation/routes/posts.html
2018-12-30 22:31:33 +01:00
Frank Rousseau
ec47fc67ab Make the comment API match the API specs 2018-12-30 22:31:33 +01:00
Frank Rousseau
317b78394a Improve API error management
* Fix active record not found case
* Display backtrace in error logs
2018-12-30 22:31:33 +01:00
Frank Rousseau
bf2a188f82 Remove default paramter for api routes 2018-12-30 22:31:33 +01:00
Frank Rousseau
ffd5f575bc Make API likes controller match specs 2018-12-30 22:31:33 +01:00
Frank Rousseau
646c743385 Fix stream API routes
Put streams under the subpath `/streams`.
2018-12-30 22:31:33 +01:00
Frank Rousseau
f6b57384e7 Changes to use V1 API version instead of V0 2018-12-30 22:31:33 +01:00
Frank Rousseau
ec18844e8f Move API controllers from v0 to v1 2018-12-30 22:31:33 +01:00
Frank Rousseau
b4dc13f1ce Fix code styles 2018-12-30 22:31:33 +01:00
Frank Rousseau
e6fd043206 Adapt API controllers to recent service changes 2018-12-30 22:31:33 +01:00
Frank Rousseau
36bc122510 Adapt some API route syntax 2018-12-30 22:31:33 +01:00
Frank Rousseau
064beb6f4e Adapt API tests to recent changes 2018-12-30 22:31:33 +01:00
Frank Rousseau
72a3b92b50 Make syntax compliant with the pronto configuration 2018-12-30 22:31:33 +01:00
Frank Rousseau
2a8c0ddd51 Follow official specs 2018-12-30 22:31:33 +01:00
Frank Rousseau
13e2841f13 Merge conv deletion and visibility deletion 2018-12-30 22:31:33 +01:00
Frank Rousseau
f9e0dee2dc Make messages API conformed with docs 2018-12-30 22:31:33 +01:00
Frank Rousseau
5040363f7a Make conversation API data format ok with docs
* Base the API requesting on GUID instead of ID
* Include read field
* Do not include messages in conversation results
2018-12-30 22:31:33 +01:00
Frank Rousseau
2be3e9eaf3 Fix styles for some API controllers
* Comments
* Likes
* Streams
2018-12-30 22:31:33 +01:00
Frank Rousseau
fa53656b3b Add conversation visibilities API controller 2018-12-30 22:31:33 +01:00
Frank Rousseau
f8ba88408b Add messages API controller 2018-12-30 22:31:33 +01:00
Frank Rousseau
559f370116 Add conversations API controller 2018-12-30 22:31:33 +01:00
Frank Rousseau
b37c14ce0e Add service for conversations 2018-12-30 22:31:33 +01:00
Frank Rousseau
c45b785370 Add conversation presenter 2018-12-30 22:31:33 +01:00
Frank Rousseau
f0aecd5790 Add routes for conversation
Including messages and visibilities
2018-12-30 22:31:33 +01:00
Frank Rousseau
35860e2866 Add locales for conversation API controller 2018-12-30 22:31:33 +01:00
Frank Rousseau
5a0759a3d9 Add exception handlers in base API controller
* For record not found returns a 404 response
* For wrong parameters returns a 400 response
* For other exceptions returns a 500 response
2018-12-30 22:31:33 +01:00
theworldbright
6cad0a965a Add likes API route 2018-12-30 22:31:33 +01:00
theworldbright
41750e38da Add streams API routes 2018-12-30 22:31:33 +01:00
theworldbright
c9ba1ee197 Combine Comment index with Post show API route 2018-12-30 22:31:33 +01:00
theworldbright
47dd44ff39 Add comments API routes 2018-12-30 22:31:33 +01:00
theworldbright
552d3efb29 Add posts API routes 2018-12-30 22:31:33 +01:00
Frank Rousseau
6b9b19c284 Merge pull request #24 from frankrousseau/api-final-cleanup
API Final Cleanup
2018-12-30 22:12:53 +01:00
Hank Grabowski
f07912ebdd API Branch Final Cleanup Before PR 2018-12-30 11:50:58 -05:00
Benjamin Neff
3fe0ef350f Merge branch 'next-minor' into develop 2018-12-28 01:39:56 +01:00
CSammy
a21cde4c00 Speed up public stream and remove obsolete indexes
closes #7944
2018-12-28 01:39:49 +01:00
Frank Rousseau
8ffb814166 Merge pull request #22 from frankrousseau/api-openid-updates
WIP: API OpenID Updates
2018-12-27 00:24:02 +01:00
Hank Grabowski
a8d69c48dc OpenID Scopes and Security updates 2018-12-26 14:13:13 -05:00
Frank Rousseau
6ba26496ec Merge pull request #20 from frankrousseau/api-paging-updates
API Paging Updates
2018-12-18 13:44:18 +01:00
Hank Grabowski
7109773b83 API Paging library and used in appropriate controllers with full tests 2018-12-17 22:07:33 -05:00
Frank Rousseau
43c111bd98 Merge pull request #21 from frankrousseau/api-poll-participation-updates
API Poll Participation
2018-12-16 17:23:27 +01:00
Hank Grabowski
ff6d0064d0 Add Poll Voting Method to Interactions Endpoint 2018-12-16 11:06:27 -05:00
Frank Rousseau
32157036d3 Merge pull request #17 from frankrousseau/api-photos-updates
Photos API Endpoint
2018-12-11 01:16:05 +01:00
Hank Grabowski
8851f664e5 Photos API Endpoint and unit tests complete 2018-12-10 12:43:50 -05:00
Frank Rousseau
f284d379dd Merge pull request #19 from frankrousseau/api-search-updates
API Search Endpoint
2018-12-04 15:46:48 +01:00
Hank Grabowski
68d7d59286 Search API Endpoint and unit test complete 2018-12-04 09:24:17 -05:00
Frank Rousseau
df756c5f9f Merge pull request #15 from frankrousseau/api-users-updates
User API Updates
2018-12-04 15:06:33 +01:00
Hank Grabowski
c3852a8e9c Users Controller and unit tests complete 2018-12-04 08:48:16 -05:00
Frank Rousseau
a5bdabea9b Merge pull request #18 from frankrousseau/api-notifications-updates
API Notifications Endpoint
2018-12-04 14:01:58 +01:00
Hank Grabowski
ef762c4920 Notifications API Endpoint and unit test complete 2018-12-04 07:51:57 -05:00
Frank Rousseau
2bfeefe3b3 Merge pull request #16 from frankrousseau/api-interactions-updates
Interactions API Endpoint
2018-12-04 09:22:53 +01:00
Hank Grabowski
6e469825cd Interactions API endpoint complete with full tests 2018-12-03 20:56:50 -05:00
Frank Rousseau
3257e569b9 Merge pull request #14 from frankrousseau/api-contacts-updates
Contacts API Endpoint Complete with Tests
2018-12-02 02:23:57 +01:00
HankG
8a60870f04 Contacts API Feature complete with full tests 2018-12-01 15:21:16 -05:00
Benjamin Neff
6824ef5baf Merge branch 'next-minor' into develop 2018-11-25 22:38:03 +01:00
Benjamin Neff
5a0381f832 Merge branch 'master' into next-minor 2018-11-25 22:37:43 +01:00
Benjamin Neff
6185355e92 Merge branch 'release/0.7.8.0' 2018-11-25 22:36:59 +01:00
Benjamin Neff
09a8c84ae0 updated 51 locale files [ci skip] 2018-11-25 22:34:46 +01:00
Besnik Bleta
5766a08b22 Better wording for the latest changes, part II and final
closes #7934
2018-11-25 22:32:20 +01:00
Besnik Bleta
440775f3b0 Better wording for the latest changes 2018-11-25 22:32:17 +01:00
Besnik Bleta
5ee85721f7 Fixing an oldsyntax error of considering %{actors} as a number, rather than a list of people’s usernames 2018-11-25 22:32:17 +01:00
Besnik Bleta
6c2b3a7b11 Update sq translations 2018-11-25 22:32:14 +01:00
Benjamin Neff
95032bae92 Fix typo in changelog for 0.7.8.0 2018-11-20 22:03:15 +01:00
Benjamin Neff
0d45e709f2 Merge branch 'next-minor' into develop 2018-11-19 00:51:10 +01:00
Benjamin Neff
2d6a68c28f Start 0.7.9.0 cycle
[ci skip]
2018-11-19 00:50:04 +01:00
Benjamin Neff
5b0066a426 Merge branch 'next-minor' into develop 2018-11-18 19:36:51 +01:00
Benjamin Neff
8e170ab976 Add retry on travis to reduce random failures
closes #7932
2018-11-18 19:34:41 +01:00
Benjamin Neff
7a958bce69 Bump cucumber 2018-11-18 19:32:16 +01:00
Benjamin Neff
a09f7d73d8 Remove guard-cucumber
Looks dead, last commit over two years ago, and block upgrade of cucumber

See guard/guard-cucumber#36
2018-11-18 19:27:43 +01:00
Dennis Schubert
a6655c187d Add DIASPORA_DOCKER_PORT env var to change the port exposed by Docker
Set default port to 3000 as this is the default in the diaspora.yml.example

fixes #7927

closes #7928
2018-11-18 19:27:20 +01:00
Benjamin Neff
24fbd59d21 Merge pull request #7931 from SuperTux88/update-gems
Update gems
2018-11-17 23:40:12 +01:00
Benjamin Neff
8fc75e8955 Bump twitter-text 2018-11-17 21:20:51 +01:00
Benjamin Neff
81c833c4e3 Bump rails-assets-pica 2018-11-17 21:20:05 +01:00
Benjamin Neff
5bc32d0aad Bump rails-assets-cropperjs 2018-11-17 21:15:59 +01:00
Benjamin Neff
b30c4e4e97 Merge branch 'next-minor' into develop 2018-11-17 21:08:23 +01:00
Benjamin Neff
b24b31256e Bump warden
closes #7930
2018-11-17 21:06:20 +01:00
Benjamin Neff
ce10791526 Bump guard 2018-11-17 21:05:42 +01:00
Benjamin Neff
6fb1e1f524 Bump jwt 2018-11-17 21:05:42 +01:00
Benjamin Neff
2210cf0038 Bump timers 2018-11-17 21:05:42 +01:00
Benjamin Neff
e1d65d50ab Bump rack-oauth2 2018-11-17 21:05:41 +01:00
Benjamin Neff
5960b33df0 Bump nio4r 2018-11-17 21:05:41 +01:00
Benjamin Neff
72112f8bd7 Bump jsonpath 2018-11-17 21:05:41 +01:00
Benjamin Neff
f3568d9fb3 Bump http 2018-11-17 21:05:41 +01:00
Benjamin Neff
9b435f67de Bump get_process_mem 2018-11-17 21:05:41 +01:00
Benjamin Neff
37ec02dbd0 Bump domain_name 2018-11-17 21:05:41 +01:00
Benjamin Neff
7f67d007a0 Bump bindata 2018-11-17 21:05:40 +01:00
Benjamin Neff
514a370f75 Bump mail 2018-11-17 21:05:40 +01:00
Benjamin Neff
b062818289 Bump yard 2018-11-17 21:05:40 +01:00
Benjamin Neff
19556e7d7d Bump hamlit 2018-11-17 21:05:40 +01:00
Benjamin Neff
63b23056a5 Bump gon 2018-11-17 21:05:40 +01:00
Benjamin Neff
80f57673ab Bump typhoeus 2018-11-17 21:05:40 +01:00
Benjamin Neff
de5e22a543 Bump faraday 2018-11-17 21:04:37 +01:00
Benjamin Neff
98d165c0c5 Bump acts-as-taggable-on 2018-11-17 21:04:37 +01:00
Benjamin Neff
d8016d39cf Bump secure_headers 2018-11-17 21:04:37 +01:00
Benjamin Neff
f0eead3659 Bump rails-i18n 2018-11-17 21:04:37 +01:00
Benjamin Neff
eea609a228 Bump rails-assets-utatti-perfect-scrollbar 2018-11-17 21:04:00 +01:00
Benjamin Neff
efa69a23f4 Bump rails-assets-autosize 2018-11-17 21:02:35 +01:00
Benjamin Neff
382eda2966 Bump rails-assets-markdown-it 2018-11-17 21:02:35 +01:00
Benjamin Neff
67b825233d Bump js-routes 2018-11-17 21:02:35 +01:00
Benjamin Neff
e87b751107 Bump jquery-rails and rails-assets-jquery 2018-11-17 21:02:35 +01:00
Benjamin Neff
092ff0b550 Bump uuid 2018-11-17 21:02:35 +01:00
Benjamin Neff
464854443f Bump mini_magick 2018-11-17 21:02:34 +01:00
Benjamin Neff
cd3b454853 Bump fog-aws 2018-11-17 21:02:34 +01:00
Benjamin Neff
f8b5b99c5c Bump carrierwave 2018-11-17 21:02:34 +01:00
Benjamin Neff
4c8acb5a07 Bump pg 2018-11-17 21:02:34 +01:00
Benjamin Neff
ad725c5649 Bump mysql2 2018-11-17 21:02:34 +01:00
Benjamin Neff
e6375505bc Bump compass-rails 2018-11-17 21:02:34 +01:00
Benjamin Neff
5205e3c526 Bump bootstrap-switch-rails 2018-11-17 21:02:33 +01:00
Benjamin Neff
01f426e739 Bump autoprefixer-rails 2018-11-17 21:02:33 +01:00
Benjamin Neff
06c953a400 Bump uglifier 2018-11-17 21:02:33 +01:00
Benjamin Neff
8ee15ebc13 Bump sidekiq-cron 2018-11-17 21:02:33 +01:00
Benjamin Neff
3dbc0fc632 Bump sidekiq 2018-11-17 21:02:33 +01:00
Benjamin Neff
01db49ef26 Bump devise 2018-11-17 21:02:32 +01:00
Benjamin Neff
a2e326b27d Bump json-schema 2018-11-17 21:01:41 +01:00
Benjamin Neff
a55684c751 Bump unicorn 2018-11-17 21:01:41 +01:00
Benjamin Neff
c9588442a6 Bump rails-assets-jasmine-ajax 2018-11-17 21:01:41 +01:00
Benjamin Neff
0b676452d0 Bump jasmine 2018-11-17 21:01:41 +01:00
Benjamin Neff
d2cffe9d53 Bump rspec and rspec-rails 2018-11-17 21:01:41 +01:00
Benjamin Neff
e48571d6ed Bump webmock 2018-11-17 21:01:41 +01:00
Benjamin Neff
6d46975089 Bump database_cleaner 2018-11-17 21:01:40 +01:00
Benjamin Neff
330b8cd3ba Bump poltergeist 2018-11-17 21:01:40 +01:00
Benjamin Neff
84f3f73f3f Bump fuubar 2018-11-17 21:01:40 +01:00
Benjamin Neff
8ada40ec08 Bump simplecov and coveralls 2018-11-17 21:01:40 +01:00
Benjamin Neff
126866608b Bump pry 2018-11-17 21:01:40 +01:00
Benjamin Neff
05db801925 Bump activerecord-import 2018-11-17 21:01:39 +01:00
Benjamin Neff
4e78d51195 Bump rubocop 2018-11-17 21:01:39 +01:00
Benjamin Neff
a8218a39ed Bump pronto-rubocop 2018-11-17 21:01:39 +01:00
Benjamin Neff
1b21d507c9 Bump haml_lint 2018-11-17 21:01:39 +01:00
Benjamin Neff
da305a44cd Bump asset_sync 2018-11-17 21:01:39 +01:00
Frank Rousseau
b17e519cb4 Merge pull request #10 from frankrousseau/api-tag-updates
Api Tag Endpoint Feature Complete With Tests
2018-11-11 18:07:40 +01:00
Frank Rousseau
6fa99072d1 Merge branch 'api' into api-tag-updates 2018-11-11 18:06:50 +01:00
Hank Grabowski
d5e1cbeefa Tags API Endpoint complete with full tests 2018-11-11 11:45:21 -05:00
Frank Rousseau
82978bb67f Merge pull request #12 from frankrousseau/api-aspects-updates
API Aspects Endpoint Feature Complete With Full Tests
2018-11-11 17:45:06 +01:00
Hank Grabowski
97af2441ee Aspects API Endpoint complete with full tests 2018-11-11 11:30:19 -05:00
Frank Rousseau
6924781bb0 Merge pull request #13 from frankrousseau/api-reshare-update
API Reshare Endpoint Feature Complete With Full Tests
2018-11-11 16:22:05 +01:00
Hank Grabowski
9757637afa Reshares API Endpoint complete with full unit tests 2018-11-11 09:53:13 -05:00
Frank Rousseau
29058d028f Merge pull request #11 from frankrousseau/api-conversations-updates
Conversations API Test Removed 'convo' Abbreviations
2018-11-09 11:08:37 +01:00
Benjamin Neff
652b0064e6 Merge branch 'next-minor' into develop 2018-11-08 20:58:35 +01:00
Benjamin Neff
25a9f5d5d7 Merge branch 'master' into next-minor 2018-11-08 20:58:22 +01:00
Benjamin Neff
fa0e34f687 Merge branch 'hotfix/0.7.7.1' 2018-11-08 20:57:09 +01:00
Benjamin Neff
32cd764786 Fix XSS via OpenGraph on mobile 2018-11-08 20:41:50 +01:00
Benjamin Neff
f23791b7f7 Bump rack
Fixes CVE-2018-16470 and CVE-2018-16471
2018-11-08 19:29:01 +01:00
Hank Grabowski
6bae98d980 Conversations API Test Removed 'convo' Abbreviations 2018-11-08 13:08:52 -05:00
Dennis Schubert
ddaa5c0064 Merge branch 'next-minor' into develop 2018-11-08 05:15:54 +01:00
Benjamin Neff
9723e283e1 Use sudo for docker if socket is not writable
closes #7921
2018-11-08 05:15:47 +01:00
Dennis Schubert
cd16f29c39 Merge branch 'next-minor' into develop 2018-11-08 05:14:36 +01:00
Benjamin Neff
3c55a425c7 Fix script domain for instagram in CSP header
closes #7920
2018-11-08 05:12:55 +01:00
Dennis Schubert
ffe6fc0aa1 Merge branch 'next-minor' into develop 2018-11-08 05:08:16 +01:00
flaburgan
e33466de89 Display raw images in gallery
closes #7890
2018-11-08 05:08:04 +01:00
Dennis Schubert
cee30c36a0 Merge branch 'next-minor' into develop 2018-11-08 05:06:53 +01:00
Hank Grabowski
cab0e0100b 7841 Post Unlike sets status icon correctly
closes #7882
fixes #7841
2018-11-08 05:06:34 +01:00
Frank Rousseau
f428f840f6 Merge pull request #9 from frankrousseau/api-conversations-updates
Conversations API Endpoint Feature complete with full tests
2018-11-07 18:37:25 +01:00
Frank Rousseau
61b134f81d Merge pull request #8 from frankrousseau/api-streams-updates
Streams Controller API feature complete and fully tested
2018-11-06 21:21:24 +01:00
HankG
8b6c32e655 Conversations API Endpoint Feature complete with full tests 2018-11-06 14:52:55 -05:00
HankG
5bfe7048eb Streams Controller API feature complete and fully tested 2018-11-06 13:58:47 -05:00
Frank Rousseau
169136f292 Merge pull request #7 from frankrousseau/api-posts-updates
Posts API Endpoint feature complete with full unit tests
2018-11-05 22:35:05 +01:00
Hank Grabowski
6798ba974c Posts API Endpoint feature complete with full unit tests 2018-11-05 08:30:54 -05:00
Benjamin Neff
0c2cd2ef1b Merge branch 'next-minor' into develop 2018-11-04 03:07:50 +01:00
Bennett Goble
935ff66c96 Sharpen small and medium thumbnails
closes #7924
2018-11-04 03:07:42 +01:00
Benjamin Neff
2c56e447ed Ignore invalid URLs for camo
When people only write `https://` as image URL, this would fail with
`Addressable::URI::InvalidURIError: Absolute URI missing hierarchical segment: 'https://'`.

closes #7922
2018-11-04 03:06:21 +01:00
Benjamin Neff
b2712ebf1d Use libjemalloc if it's available for better memory usage
Fixes #6763

closes #7919
2018-11-04 03:04:39 +01:00
flaburgan
470efd4ec5 Move comment timestamp next to author name, add permalink
closes #7905
2018-11-04 03:01:27 +01:00
Benjamin Neff
d3bb7ade78 Merge branch 'next-minor' into develop 2018-11-02 01:39:11 +01:00
flaburgan
b977e9c39a Save a screenshot of the page in tmp/capybara when a cucumber test is failing
closes #7912
2018-11-02 01:39:04 +01:00
flaburgan
65e0f90b86 Reword the web handler setting
fixes #7838

closes #7909
2018-11-02 01:35:44 +01:00
Frank Rousseau
b8198efc6c Merge pull request #6 from frankrousseau/api-comments-updates
Comments API Endpoint complete with full unit tests
2018-11-02 00:42:04 +01:00
Hank Grabowski
038b6f49a9 Comments API Endpoint complete with full unit tests 2018-11-01 14:14:34 -04:00
Frank Rousseau
9faf38671b Merge pull request #5 from frankrousseau/api-likes-get-details
Likes API endpoint complete
2018-11-01 16:37:21 +01:00
Hank Grabowski
d6915ff5d0 Likes API endpoint complete 2018-11-01 11:06:45 -04:00
Frank Rousseau
2c94994f32 Fix code style 2018-11-01 13:56:18 +01:00
Frank Rousseau
4370315d6c Fix post controller test 2018-11-01 13:56:18 +01:00
Frank Rousseau
a7ea3ba254 Adapt error formatting to documentation 2018-11-01 13:56:18 +01:00
Frank Rousseau
79fe1c2a7e Fix like deletion 2018-11-01 13:56:18 +01:00
Frank Rousseau
27ea63979f Clean API routes
* Remove routes without matching controller
* Rename stream routes to match specifications
* Remove public stream route and related controller
2018-11-01 13:56:18 +01:00
Frank Rousseau
c1ece44c53 Make Post API match specs
https://diaspora.github.io/api-documentation/routes/posts.html
2018-11-01 13:56:18 +01:00
Frank Rousseau
bcbcf6bce3 Make the comment API match the API specs 2018-11-01 13:56:18 +01:00
Frank Rousseau
55dbbad869 Improve API error management
* Fix active record not found case
* Display backtrace in error logs
2018-11-01 13:56:18 +01:00
Frank Rousseau
1b85655d71 Remove default paramter for api routes 2018-11-01 13:56:18 +01:00
Frank Rousseau
348790292b Make API likes controller match specs 2018-11-01 13:56:18 +01:00
Frank Rousseau
39265ab9b5 Fix stream API routes
Put streams under the subpath `/streams`.
2018-11-01 13:56:18 +01:00
Frank Rousseau
797afb1c9b Changes to use V1 API version instead of V0 2018-11-01 13:56:18 +01:00
Frank Rousseau
100b1a4286 Move API controllers from v0 to v1 2018-11-01 13:56:18 +01:00
Frank Rousseau
3532a340c2 Fix code styles 2018-11-01 13:56:18 +01:00
Frank Rousseau
2d40801bb4 Adapt API controllers to recent service changes 2018-11-01 13:56:18 +01:00
Frank Rousseau
f23e947d0c Adapt some API route syntax 2018-11-01 13:56:18 +01:00
Frank Rousseau
b00df8c2e7 Adapt API tests to recent changes 2018-11-01 13:56:18 +01:00
Frank Rousseau
50e034769f Make syntax compliant with the pronto configuration 2018-11-01 13:56:18 +01:00
Frank Rousseau
71d324a8e4 Follow official specs 2018-11-01 13:56:18 +01:00
Frank Rousseau
3f00195eed Merge conv deletion and visibility deletion 2018-11-01 13:56:18 +01:00
Frank Rousseau
bbbe3aea7f Make messages API conformed with docs 2018-11-01 13:56:18 +01:00
Frank Rousseau
454be1b468 Make conversation API data format ok with docs
* Base the API requesting on GUID instead of ID
* Include read field
* Do not include messages in conversation results
2018-11-01 13:56:18 +01:00
Frank Rousseau
d03b830b07 Fix styles for some API controllers
* Comments
* Likes
* Streams
2018-11-01 13:56:18 +01:00
Frank Rousseau
84f972b368 Add conversation visibilities API controller 2018-11-01 13:56:18 +01:00
Frank Rousseau
43a8cbff5d Add messages API controller 2018-11-01 13:56:18 +01:00
Frank Rousseau
0af04a5c1e Add conversations API controller 2018-11-01 13:56:18 +01:00
Frank Rousseau
1879adcde4 Add service for conversations 2018-11-01 13:56:18 +01:00
Frank Rousseau
40d42f4b58 Add conversation presenter 2018-11-01 13:56:18 +01:00
Frank Rousseau
604075c570 Add routes for conversation
Including messages and visibilities
2018-11-01 13:56:18 +01:00
Frank Rousseau
f4f7eb8726 Add locales for conversation API controller 2018-11-01 13:56:18 +01:00
Frank Rousseau
f66bd9e1af Add exception handlers in base API controller
* For record not found returns a 404 response
* For wrong parameters returns a 400 response
* For other exceptions returns a 500 response
2018-11-01 13:56:18 +01:00
theworldbright
e84e3e64c6 Add likes API route 2018-11-01 13:56:18 +01:00
theworldbright
44742109b0 Add streams API routes 2018-11-01 13:56:18 +01:00
theworldbright
ea3395378f Combine Comment index with Post show API route 2018-11-01 13:56:18 +01:00
theworldbright
47c7de22ae Add comments API routes 2018-11-01 13:56:18 +01:00
theworldbright
c432bb4891 Add posts API routes 2018-11-01 13:56:18 +01:00
Dennis Schubert
c1e5f61502 Merge branch 'next-minor' into develop 2018-10-28 22:09:13 +01:00
CSammy
dae1717da8 Add docker setup for development
closes #7870
2018-10-28 22:09:06 +01:00
Dennis Schubert
0da2e9c102 Merge branch 'next-minor' into develop 2018-10-27 00:13:56 +02:00
Dennis Schubert
0133a9f354 updated 17 locale files [ci skip] 2018-10-27 00:13:47 +02:00
Dennis Schubert
a201e3b2c2 updated 17 locale files [ci skip] 2018-10-27 00:12:25 +02:00
Dennis Schubert
21f9a9d134 Merge branch 'next-minor' into develop 2018-10-15 02:45:09 +02:00
Dennis Schubert
2c8d75100c Merge branch 'master' into next-minor 2018-10-15 02:44:43 +02:00
Dennis Schubert
d8c1b4f460 Merge branch 'release/0.7.7.0' 2018-10-15 02:43:19 +02:00
Dennis Schubert
53a7508222 Merge branch 'next-minor' into develop 2018-10-15 02:41:57 +02:00
Dennis Schubert
fcbc470b5c Merge branch 'release/0.7.7.0' into next-minor 2018-10-15 02:41:22 +02:00
Dennis Schubert
af3e2e6d53 updated 33 locale files [ci skip] 2018-10-15 02:40:23 +02:00
Dennis Schubert
a928e40d7f Merge branch 'next-minor' into develop 2018-10-14 06:03:12 +02:00
Zachary Rabinovich
c4fed4bbcc Add the ability to assign roles in the admin panel
closes #7868
2018-10-14 06:03:06 +02:00
Dennis Schubert
bb84767a96 Merge branch 'next-minor' into develop 2018-10-08 02:58:01 +02:00
Dennis Schubert
4911782e9b Merge branch 'release/0.7.7.0' into next-minor 2018-10-08 02:57:50 +02:00
Benjamin Neff
48ebd571d8 Bump diaspora_federation
closes #7876
2018-10-08 02:57:33 +02:00
Benjamin Neff
3be814ea0f Bump nokogiri
Fixes:
* CVE-2016-9318
* CVE-2017-16932
* CVE-2017-18258
* CVE-2018-14404
* CVE-2018-14567
2018-10-08 02:56:56 +02:00
Benjamin Neff
56bb4be9d3 Bump rubyzip
Fixes CVE-2018-1000544
2018-10-08 02:52:53 +02:00
Dennis Schubert
9bab794ea4 Merge branch 'next-minor' into develop 2018-10-08 02:50:36 +02:00
Dennis Schubert
89d9a865b6 Merge branch 'release/0.7.7.0' into next-minor 2018-10-08 02:50:29 +02:00
Benjamin Neff
fc6893d4fc Remove facebook integration
Facebook removed the API and facebook integration is broken now, so lets
remove it.

closes #7874
2018-10-08 02:50:25 +02:00
Dennis Schubert
26212ba3e0 Merge branch 'next-minor' into develop 2018-10-08 02:43:11 +02:00
Dennis Schubert
3cd6f9abbb Start 0.7.8.0 cycle
[ci skip]
2018-10-08 02:42:10 +02:00
Dennis Schubert
a91579e92a Merge branch 'next-minor' into develop 2018-10-04 04:38:10 +02:00
Benjamin Neff
d0c6495bba Bump unicode-display_width
closes #7873
2018-10-04 04:38:05 +02:00
Dennis Schubert
3ebe0e56a8 Merge branch 'next-minor' into develop 2018-10-04 04:37:06 +02:00
Luna Gloaming
45b7f0b119 Added quotation marks for postgresql parameters.
As a new, novice user, I ran into an issue where my postgresql
password contained special characters.  After a brief conversation
with DenSchub on #diaspora, it was noted that while the example
database configuration had quotes added for mysql, but not for
postgresql, and it was suggested this be improved.

closes #7875
2018-10-04 04:36:57 +02:00
Dennis Schubert
fe5c95e0ba Merge branch 'next-minor' into develop 2018-09-30 21:44:49 +02:00
Benjamin Neff
44452749bc Don't depend on the database content when loading the tests
closes #7872
2018-09-30 21:44:44 +02:00
Dennis Schubert
883eb54ecf Merge branch 'next-minor' into develop 2018-09-30 18:00:57 +02:00
Benjamin Neff
d765b34018 Make sure URLs are encoded before sending them to camo
Otherwise camo crashes with:
TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters

closes #7871
2018-09-30 18:00:49 +02:00
Dennis Schubert
24c7e472d4 Merge branch 'next-minor' into develop 2018-09-30 17:59:12 +02:00
Benjamin Neff
b6333e0b1b Remove reference to statistics.json
and mention /statistics and NodeInfo

closes #7867
2018-09-30 17:58:55 +02:00
Dennis Schubert
026e63b961 Merge branch 'next-minor' into develop 2018-09-08 02:25:44 +02:00
Benjamin Neff
49b63693c9 Fix i18n fallbacks
Fallbacks are set in config/initializers/locale.rb and this settings
conflicts with the fallbacks set there.

Fixes #7860

closes #7861
2018-09-08 02:25:36 +02:00
Benjamin Neff
c9f65332de Merge branch 'next-minor' into develop 2018-09-06 02:33:43 +02:00
Dennis Schubert
65a2b8da12 Include PostsHelper in NotifierHelper
Fixes #7852

closes #7853
2018-09-06 02:33:33 +02:00
Dennis Schubert
232f76e69d Merge branch 'next-minor' into develop 2018-09-06 01:40:55 +02:00
Benjamin Neff
f130ec414e Bump ffi
Fixes CVE-2018-1000201

closes #7859
2018-09-06 01:40:47 +02:00
Dennis Schubert
f66248c315 Merge branch 'next-minor' into develop 2018-09-05 03:19:44 +02:00
Benjamin Neff
cd30a2814d Bump json-jwt and openid_connect
Fixes CVE-2018-1000539
2018-09-05 03:18:59 +02:00
Benjamin Neff
08e108d3d8 Fix comment notification subject for posts without text
Fixes #7854
2018-09-05 03:17:58 +02:00
Dennis Schubert
60b5443850 Merge pull request #7857 from SuperTux88/fix-comment-title-without-text
Fix comment notification subject for posts without text
2018-09-05 03:13:45 +02:00
Dennis Schubert
11dac58dc7 Merge pull request #7856 from SuperTux88/bump-json-jwt
Bump json-jwt
2018-09-05 03:12:52 +02:00
Benjamin Neff
4c4c3d8bf0 Bump json-jwt and openid_connect
Fixes CVE-2018-1000539
2018-09-05 02:19:34 +02:00
Benjamin Neff
2eb17e109b Fix comment notification subject for posts without text
Fixes #7854
2018-09-05 01:32:36 +02:00
Benjamin Neff
76c64ec1f8 Merge branch 'next-minor' into develop 2018-08-24 19:49:37 +02:00
lislis
546ef080c5 bump fixture_builder to 5.2rc3
closes #7849
2018-08-24 19:49:23 +02:00
Benjamin Neff
9b3f90dc90 Merge branch 'next-minor' into develop 2018-07-20 11:07:18 +02:00
Benjamin Neff
79907b78b9 Use podname for web+diaspora:// protocol handler
closes #7839
2018-07-20 11:07:11 +02:00
Benjamin Neff
7fef695e29 Merge pull request #7834 from SuperTux88/fix-photo-uploader-preview
Fix preview with uploaded photos
2018-07-18 01:56:57 +02:00
Benjamin Neff
d06ef4505c Wait for the image actually uploaded and removed again 2018-07-17 20:48:37 +02:00
Benjamin Neff
80bc90afa9 Fix preview with uploaded photos 2018-07-17 20:48:37 +02:00
Benjamin Neff
e5687dd7e0 Merge branch 'next-minor' into develop 2018-07-17 01:25:53 +02:00
Senya
2be60eab1b Update archive-format.json
/ was missing in the profile entity $ref

closes #7835
2018-07-17 01:23:56 +02:00
Benjamin Neff
1289b3b541 Merge branch 'next-minor' into develop 2018-07-13 10:22:04 +02:00
Dennis Schubert
af500dabbc Add section in the User's settings to register the protocol handler
closes #7833
2018-07-13 10:19:43 +02:00
Dennis Schubert
f8a4a2c510 Gracefully ignore exceptions when trying to register the ProtocolHandler 2018-07-13 10:18:48 +02:00
Dennis Schubert
8709c45d30 Move the protocol handler into a proper helper module
Previous file history in 80dfdcd6af, couldn't keep it.
2018-07-13 10:18:48 +02:00
Dennis Schubert
4430f9e887 Add VSCode-related files to the .gitignore 2018-07-13 10:17:44 +02:00
Benjamin Neff
ea15403d57 Merge pull request #7655 from Flaburgan/6721-fix-upload-progress-bar
Fix multiple photos upload progress bar
2018-07-11 01:37:02 +02:00
Benjamin Neff
dcbdb69e22 Merge branch 'next-minor' into develop 2018-07-11 01:35:50 +02:00
cmrd Senya
a7cc0645e0 Cuke for web+diaspora:// link handler
closes #7826
2018-07-11 01:28:53 +02:00
cmrd Senya
80dfdcd6af Add web+diaspora:// links handler installation 2018-07-11 01:26:43 +02:00
cmrd Senya
6f812a5b8f Add LinksController
LinksController redirects requests for provided diaspora:// links to
respective entities urls.
2018-07-11 01:24:28 +02:00
cmrd Senya
2e0b382699 Use 'post' prefix for status message route helpers
This is required to make url_for(StatusMessage.new) work
2018-07-11 01:24:28 +02:00
flaburgan
af02d01d41 Fix progress when uploading multiple photo at the same time 2018-07-09 17:48:30 +02:00
Benjamin Neff
9ff1646cbb Merge branch 'next-minor' into develop 2018-06-30 23:27:39 +02:00
Benjamin Neff
ac868c9c06 Get processor count with ruby (on linux and mac)
closes #7830
2018-06-30 23:27:32 +02:00
Benjamin Neff
4aa08ddf14 Merge branch 'next-minor' into develop 2018-06-27 02:46:26 +02:00
Benjamin Neff
c2fa0b1eba Merge branch 'master' into next-minor 2018-06-27 02:46:04 +02:00
Benjamin Neff
2b3bbc1a6c Merge branch 'release/0.7.6.0' 2018-06-27 02:42:00 +02:00
Benjamin Neff
097754e493 updated 6 locale files [ci skip] 2018-06-27 02:31:52 +02:00
Benjamin Neff
b94ef57bbc Merge branch 'next-minor' into develop 2018-06-20 01:56:25 +02:00
Benjamin Neff
67d6d2ff25 Prepare 0.7.7.0 cycle 2018-06-20 01:38:17 +02:00
Benjamin Neff
f9a59f2ff0 Merge branch 'next-minor' into develop 2018-06-20 00:50:34 +02:00
Benjamin Neff
23fcac6550 Bump sprockets
Fixes CVE-2018-3760

closes #7829
2018-06-20 00:50:24 +02:00
HankG
5a8bdc1e71 Facebook plugin always appends (via D* post URL) to cross-posts
fixes #7770

closes #7774
2018-06-20 00:47:12 +02:00
Benjamin Neff
0b9ba559c7 Merge branch 'next-minor' into develop 2018-06-18 02:48:47 +02:00
flaburgan
3d83fbdbe5 Link to the pod in the emails footer
closes #7814
2018-06-18 02:47:56 +02:00
Benjamin Neff
299c04a24a Merge pull request #7781 from SuperTux88/enable-csp-by-default
Enable Content-Security-Policy header by default
2018-06-16 21:21:07 +02:00
Benjamin Neff
8983901b1a Merge branch 'next-minor' into develop 2018-06-16 21:19:41 +02:00
Benjamin Neff
10841b6031 updated 16 locale files [ci skip] 2018-06-16 21:18:15 +02:00
Jonne Haß
88503539ec migrate hy users to hye
closes #7822
2018-06-16 21:14:43 +02:00
Jonne Haß
fe75602928 update armenian locales 2018-06-16 21:12:13 +02:00
Jonne Haß
fac3c4bbe3 update plural rules 2018-06-16 21:12:13 +02:00
goobertron
d1597c0b23 Update locale_settings.yml with 3 Armenian variants 2018-06-16 21:12:09 +02:00
Benjamin Neff
f3d2a54050 Merge branch 'next-minor' into develop 2018-06-16 04:36:13 +02:00
cmrd Senya
87968284ba Support fetching StatusMessage by Poll guid
When public fetch is requested with Poll guid, return parent
StatusMessage for it, which includes the Poll in its turn.

closes #7815
2018-06-16 04:36:05 +02:00
Radomír Bosák
cfa7724d73 Escape asterisks in README
Unescaped asterisks can cause markdown text to be misinterpreted. Also
syntax highlighters (e.g. in sublime text) freak out.

References: [markdown
spec](https://daringfireball.net/projects/markdown/syntax#em)

closes #7821
2018-06-16 04:32:38 +02:00
Benjamin Neff
212da3a2b7 Merge branch 'next-minor' into develop 2018-06-16 01:23:10 +02:00
Alex Tribble
1b03265c2e Allow fonts to be served from asset host in CSP.
Closes #7796

closes #7825
2018-06-16 01:22:22 +02:00
Benjamin Neff
fa615533f6 Bump kostya-sigar
Fixes compatibility with newer glibc

closes #7828
2018-06-16 01:19:36 +02:00
Benjamin Neff
f863cf08a0 Merge branch 'next-minor' into develop 2018-05-16 19:10:09 +02:00
Benjamin Neff
ebaa209120 Remove gemnasium badge
See: https://docs.gitlab.com/ee/user/project/import/gemnasium.html
2018-05-16 19:09:34 +02:00
Benjamin Neff
0cb212e6cb Merge branch 'next-minor' into develop 2018-05-16 00:54:46 +02:00
cmrd Senya
a3378ae744 Account merging: handle duplicates for TagFollowing
I missed it in #7803

closes #7807
2018-05-16 00:54:16 +02:00
Benjamin Neff
2a60cb30a1 Merge branch 'next-minor' into develop 2018-05-03 21:33:10 +02:00
cmrd Senya
cb294fd3f4 Add completed_at to account_migrations
Use completed_at datetime field as an indication of a performed migration

closes #7805
2018-05-03 21:31:29 +02:00
cmrd Senya
e9f6dbdffd Add unique index to poll participations on author_id and poll_id
Previously we had only a Rails validation which ensured poll participation
uniqueness but this adds uniqueness control to the database level, so that
uniqueness is guaranteed even when changing data with avoiding Rails
validations.

closes #7798
2018-05-03 21:28:38 +02:00
Benjamin Neff
22d1ad995c Merge branch 'next-minor' into develop 2018-04-30 22:54:33 +02:00
Benjamin Neff
b7cd9d6238 Merge branch 'master' into next-minor 2018-04-30 22:54:03 +02:00
Benjamin Neff
42ceb8b3e3 Merge branch 'release/0.7.5.0' 2018-04-30 22:51:23 +02:00
Benjamin Neff
6a3d9ede52 Make ja-KS avaliable 2018-04-30 22:18:55 +02:00
Benjamin Neff
f5350e2df6 updated 77 locale files [ci skip] 2018-04-30 22:10:06 +02:00
cmrd Senya
8680b24a2e Account merging support
Adds support for merging accounts with account migration by eliminating
duplicate data in favor of the target user's data.

closes #7803
2018-04-30 22:06:34 +02:00
Dennis Schubert
360ea20367 Merge branch 'next-minor' into develop 2018-04-23 20:37:03 +02:00
Dennis Schubert
8d6c891ecb Prepare 0.7.6.0 cycle 2018-04-23 20:35:18 +02:00
Dennis Schubert
74bac8c495 Merge branch 'next-minor' into develop 2018-04-23 20:33:20 +02:00
HankG
211e5cd1bc Bugfix 7714 twitter char overflow
closes #7791
2018-04-23 20:33:07 +02:00
Benjamin Neff
c061425022 Add changelog entry for #7788 [ci skip] 2018-04-16 01:32:41 +02:00
Benjamin Neff
c643743df0 Merge pull request #7788 from SuperTux88/remove-mention-backport
Remove backporting of mention syntax
2018-04-16 01:27:47 +02:00
Benjamin Neff
d5f5e1991b Merge branch 'next-minor' into develop 2018-04-16 01:26:56 +02:00
Dennis Schubert
6918dbc761 Randomize start times of daily Sidekiq-Cron jobs
closes #7787
2018-04-16 01:26:48 +02:00
Steffen van Bergerem
53d58a8bcb Remove fileuploader.css
closes #7778
2018-04-16 01:24:38 +02:00
Benjamin Neff
8daf934c45 Remove backporting of mention syntax
fixes #7276, #7392 and #7640
2018-04-15 15:49:23 +02:00
Benjamin Neff
9171f6b5ef Revert "Revert "Bump twitter-text""
Bump twitter-text on develop branch again

This reverts commit 15ff67499b.
2018-04-12 04:01:52 +02:00
Benjamin Neff
25fc4c746a Merge branch 'next-minor' into develop 2018-04-12 04:01:39 +02:00
Benjamin Neff
15ff67499b Revert "Bump twitter-text"
This adds a new dependency (`libidn11-dev` on debian, I'm not sure about
other distros).

This reverts commit 070e4caa57.
2018-04-12 04:00:41 +02:00
Benjamin Neff
bd175cfb12 Bump rails-assets-cropperjs 2018-04-12 02:50:41 +02:00
Benjamin Neff
c1ebc4d338 Merge branch 'next-minor' into develop 2018-04-12 02:49:11 +02:00
Benjamin Neff
9a661177f1 Replace rails-assets-perfect-scrollbar with rails-assets-utatti-perfect-scrollbar
closes #7772
2018-04-12 02:44:43 +02:00
Benjamin Neff
9fb63c8bd6 Bump tins 2018-04-12 02:41:58 +02:00
Benjamin Neff
417ec29ad0 Bump scss_lint 2018-04-12 02:41:57 +02:00
Benjamin Neff
6767465843 Bump rugged 2018-04-12 02:41:57 +02:00
Benjamin Neff
7e3e0058b6 Bump omniauth-oauth2 2018-04-12 02:41:57 +02:00
Benjamin Neff
e6c3d0c8f7 Bump octokit 2018-04-12 02:41:57 +02:00
Benjamin Neff
309d6d7049 Bump oauth 2018-04-12 02:41:57 +02:00
Benjamin Neff
6165a6664c Bump gitlab 2018-04-12 02:41:57 +02:00
Benjamin Neff
129efe66eb Bump et-orbi 2018-04-12 02:41:57 +02:00
Benjamin Neff
ed8c03860a Bump chunky_png 2018-04-12 02:41:57 +02:00
Benjamin Neff
0e526f9221 Bump jasmine
Disable random tests for now, many tests fail when this is true (which
is now default)
2018-04-12 02:41:56 +02:00
Benjamin Neff
eb68343ae1 Bump rspec and rspec-rails 2018-04-12 02:41:56 +02:00
Benjamin Neff
fc2834e7c1 Bump webmock 2018-04-12 02:41:56 +02:00
Benjamin Neff
42c93fd4cb Bump cucumber-api-steps 2018-04-12 02:41:56 +02:00
Benjamin Neff
2b4fed8339 Bump poltergeist 2018-04-12 02:41:56 +02:00
Benjamin Neff
e0a8a5e34c Bump database_cleaner 2018-04-12 02:41:56 +02:00
Benjamin Neff
5432a91839 Bump capybara 2018-04-12 02:41:56 +02:00
Benjamin Neff
1a6afa54e8 Bump fuubar 2018-04-12 02:41:55 +02:00
Benjamin Neff
e0b4bff6a6 Bump fixture_builder 2018-04-12 02:41:55 +02:00
Benjamin Neff
cba90cebe8 Bump pry-byebug 2018-04-12 02:41:55 +02:00
Benjamin Neff
64f330d66b Bump rubocop 2018-04-12 02:41:55 +02:00
Benjamin Neff
6d0cee3047 Bump haml_lint 2018-04-12 02:41:55 +02:00
Benjamin Neff
36c55e2d2e Bump rb-fsevent 2018-04-12 02:41:55 +02:00
Benjamin Neff
39f0c58c4e Bump guard 2018-04-12 02:41:55 +02:00
Benjamin Neff
c98b766d03 Bump asset_sync 2018-04-12 02:41:55 +02:00
Benjamin Neff
9e20215a24 Bump eye 2018-04-12 02:41:54 +02:00
Benjamin Neff
0602e7fa94 Bump versionist 2018-04-12 02:41:54 +02:00
Benjamin Neff
9240a61662 Bump hamlit 2018-04-12 02:41:54 +02:00
Benjamin Neff
7ea9a4d7ae Bump gon 2018-04-12 02:41:54 +02:00
Benjamin Neff
b8094544a0 Bump faraday 2018-04-12 02:41:54 +02:00
Benjamin Neff
9c054e03d8 Bump openid_connect 2018-04-12 02:41:54 +02:00
Benjamin Neff
6773a49362 Bump twitter 2018-04-12 02:41:54 +02:00
Benjamin Neff
8b2a4b18c6 Bump omniauth 2018-04-12 02:41:53 +02:00
Benjamin Neff
7854e14e07 Bump secure_headers 2018-04-12 02:41:53 +02:00
Benjamin Neff
f8c9d2ccd9 Bump string-direction 2018-04-12 02:40:23 +02:00
Benjamin Neff
070e4caa57 Bump twitter-text 2018-04-12 02:40:23 +02:00
Benjamin Neff
89cb887290 Bump leaflet-rails 2018-04-12 02:40:23 +02:00
Benjamin Neff
3e078643ea Bump rails-assets-blueimp-gallery 2018-04-12 02:40:22 +02:00
Benjamin Neff
f894214aa9 Bump rails-assets-autosize 2018-04-12 02:40:22 +02:00
Benjamin Neff
42b316449c Bump rails-assets-corejs-typeahead 2018-04-12 02:40:13 +02:00
Benjamin Neff
92363dc088 Bump rails-assets-markdown-it 2018-04-12 02:39:12 +02:00
Benjamin Neff
8cfe16d3b4 Bump js-routes 2018-04-12 02:39:12 +02:00
Benjamin Neff
d1ab3cf4e4 Bump fog-aws 2018-04-12 02:39:12 +02:00
Benjamin Neff
47c99207f4 Bump carrierwave 2018-04-12 02:39:11 +02:00
Benjamin Neff
312f3e4259 Bump activerecord-import 2018-04-12 02:39:11 +02:00
Benjamin Neff
1359c7a9e8 Bump pg 2018-04-12 02:39:11 +02:00
Benjamin Neff
53b3e395e0 Bump mysql2 2018-04-12 02:39:11 +02:00
Benjamin Neff
54bdd32b86 Bump sass-rails 2018-04-12 02:39:11 +02:00
Benjamin Neff
d31da2e58e Bump autoprefixer-rails 2018-04-12 02:39:11 +02:00
Benjamin Neff
264a64596c Bump rack-cors 2018-04-12 02:39:11 +02:00
Benjamin Neff
94b59f29b0 Bump uglifier 2018-04-12 02:39:11 +02:00
Benjamin Neff
1e8f404b65 Bump sidekiq 2018-04-12 02:39:10 +02:00
Benjamin Neff
a55654b7ee Bump devise 2018-04-12 02:39:10 +02:00
Benjamin Neff
85e95437d8 Bump unicorn 2018-04-12 02:39:10 +02:00
Benjamin Neff
5ee69f412a Bump rails 2018-04-12 02:39:10 +02:00
Benjamin Neff
66175f6908 Merge branch 'next-minor' into develop 2018-04-12 01:56:07 +02:00
Benjamin Neff
686310fb8e Simplify /podmin redirect
Some podmins were confuse how they can disable this redirect and I think
the rule with two users can actually be a little confusing. I think the
main goal of this page to give the podmin a little start and I think
after they configured everything, the pod works and they found the link
to the wiki to make themself an admin, it is OK to remove the redirect.

Also it's bad for single-user pods where this page always stays active,
even if they are an admin, but have only one user. It's more useful for
single-user pods to have the login on the home page.

closes #7783
2018-04-12 01:55:46 +02:00
Benjamin Neff
e31ca1fd3b Fix link to "Make yourself an admin" 2018-04-12 01:45:56 +02:00
Steffen van Bergerem
4aec9fbb42 Fix mention syntax backport for two immediately consecutive mentions
Fixes #7695.

closes #7777
2018-04-12 01:44:44 +02:00
Steffen van Bergerem
01ae004518 Make public stream accessible for logged out users
Fixes #6564.

closes #7775
2018-04-12 01:42:17 +02:00
Benjamin Neff
7d6623d069 Remove contacts page on profiles
closes #7769
2018-04-12 01:40:49 +02:00
Benjamin Neff
4fa92c1823 Remove flag for contacts visible to each other
This feature only worked on the same pod and was more confusing than
useful.
2018-04-12 01:39:11 +02:00
Benjamin Neff
c0a4895854 Enable Content-Security-Policy header by default 2018-04-10 21:29:34 +02:00
Benjamin Neff
89f7f97294 Merge branch 'next-minor' into develop 2018-04-10 01:58:07 +02:00
Benjamin Neff
9b83df9646 Merge branch 'master' into next-minor 2018-04-10 01:57:56 +02:00
Benjamin Neff
aa6f4d46c9 Merge branch 'hotfix/0.7.4.1' 2018-04-10 01:56:29 +02:00
Benjamin Neff
f4ea138a64 Don't return a SafeString after truncate 2018-04-10 01:54:29 +02:00
Dennis Schubert
ae17248b2e Merge pull request #7734 from Fensterbank/client-side-picture-resize
Resize images on client-side before uploading
2018-04-02 10:38:51 +02:00
Benjamin Neff
c84411ea62 Merge branch 'next-minor' into develop 2018-03-25 08:37:11 +02:00
Jonathan Brielmaier
41377378ec Bump mysql2
closes #7747
2018-03-25 08:37:03 +02:00
cmrd Senya
0080a2567f StatusMessageController#create: respond 422 when aspect_ids are wrong
fixes #3862

closes #7742
2018-03-25 08:31:32 +02:00
cmrd Senya
e0e40f73c3 Spec for post creation bad aspects_ids issue 2018-03-25 08:28:59 +02:00
cmrd Senya
f632f8a1f8 Include templates to main.js
This is needed to properly initialize Handlebars partials without
a document ready handler.

fixes #7739

closes #7740
2018-03-25 08:27:23 +02:00
Besnik Bleta
bc3908a103 Update for sq translation 2018-03-25 08:24:38 +02:00
Jonne Haß
5e96cc6d89 add carrierwave error messages 2018-03-25 08:24:10 +02:00
Jonne Haß
b7fa28a5a1 Merge pull request #7746 from ujdhesa/develop
Update for sq translation
2018-03-24 17:49:14 +01:00
Besnik Bleta
a867d64631 Update for sq translation 2018-03-24 18:13:12 +02:00
Benjamin Neff
38d92cc84b Merge branch 'next-minor' into develop 2018-03-22 23:17:15 +01:00
kas70
53b733f0cd adds byebug history to gitignore
closes #7744
2018-03-22 23:15:38 +01:00
kas70
40fc175d6e only include mutual sharing contacts in conversations form on contacts page
fixes #7377
2018-03-22 23:15:24 +01:00
Benjamin Neff
0d07d9f3de Merge branch 'next-minor' into develop 2018-03-18 23:14:20 +01:00
Benjamin Neff
c7709e29f2 Merge branch 'master' into next-minor 2018-03-18 23:13:48 +01:00
Benjamin Neff
d031375610 Merge branch 'release/0.7.4.0' 2018-03-18 23:11:47 +01:00
Benjamin Neff
aadd64b0a5 updated 43 locale files [ci skip] 2018-03-18 23:05:19 +01:00
Jonne Haß
e1b1491f75 Merge branch 'next-minor' into develop 2018-03-16 11:31:34 +01:00
Jonne Haß
300d09e258 add ja-KS fallback to ja 2018-03-16 11:31:11 +01:00
Benjamin Neff
12cb2be641 Merge branch 'next-minor' into develop 2018-03-13 00:02:52 +01:00
Benjamin Neff
4d54c85eee Start 0.7.5.0 cycle 2018-03-12 23:59:31 +01:00
Frédéric Bolvin
6d55b15604 Resize images on client-side before uploading 2018-03-11 11:20:16 +01:00
Dennis Schubert
29daea1b0a Merge branch 'next-minor' into develop 2018-03-10 04:46:01 +01:00
Benjamin Neff
3bb6d6d677 Bump rails-i18n
fixes #7527

closes #7731
2018-03-10 04:45:54 +01:00
Benjamin Neff
0b0070abeb Bump yard 2018-03-10 04:45:10 +01:00
Benjamin Neff
11d30f9066 Bump rack-protection 2018-03-10 04:45:06 +01:00
Benjamin Neff
f14547b2ea Merge branch 'next-minor' into develop 2018-03-10 00:01:36 +01:00
cmrd Senya
0ae19071ad Set video click handler at app.views.ExpandedComment
fixes #7736

closes #7737
2018-03-10 00:01:13 +01:00
Benjamin Neff
b263cf7e6d Merge branch 'next-minor' into develop 2018-03-07 00:39:52 +01:00
Dennis Schubert
3643612b1c Back to Top: Make sure to re-check the visibility after the scrolling is done
If a user scrolls just below the 1000px threshold and clicks the back-to-top button within 250ms, we'll never hide the button as the scroll event gets throttled away. That's rather inconvenient.

closes #7729
2018-03-07 00:39:36 +01:00
Dennis Schubert
8e88f4b183 Add the back-to-top button to all views
fixes #7727
2018-03-07 00:39:26 +01:00
Benjamin Neff
e7c6496a09 Merge pull request #7730 from Fensterbank/fix-profile-picture-csp
Allow blob: URIs to be used as a content source in CSP header
2018-03-04 01:49:09 +01:00
Frédéric Bolvin
23e4062342 Allow blob: URIs to be used as a content source in CSP header 2018-03-03 21:12:18 +01:00
Dennis Schubert
c4839613ea Merge branch 'next-minor' into develop 2018-02-27 00:48:47 +01:00
Benjamin Neff
4e5ee36675 Keep order of profile tags
closes #7724
2018-02-27 00:48:42 +01:00
Benjamin Neff
4cd8de5327 Refactor taggable tests to use let 2018-02-27 00:48:08 +01:00
Dennis Schubert
f1d71eb592 Merge branch 'next-minor' into develop 2018-02-27 00:47:37 +01:00
Benjamin Neff
f883c6ede2 Add /camo/ to robots.txt
Camo only proxies images hosted somewhere else, so it doesn't make sense
to add the proxied versions to search engines. It only creates traffic
for camo when /camo/* urls are in search results.

closes #7726
2018-02-27 00:47:32 +01:00
Benjamin Neff
198dddd69e Merge branch 'next-minor' into develop 2018-02-25 23:03:17 +01:00
Benjamin Neff
9fa254b898 Use https:// for media-embed tests
I overlooked this when reviewing #6418 since it is excluded on travis
because of the @nophantomjs tag (so it didn't fail). But since we block
http:// embeds now, we need to use https:// for the tests.
2018-02-25 22:59:27 +01:00
Benjamin Neff
74d027a3ab Set frozen config as boolean
This is normalized to "true" in the config after running bin/bundle, so
rerunning script/configure_bundler resets this back to 1 (which is the
same, but we don't need to change this back and forth every time).
2018-02-25 22:56:57 +01:00
Dennis Schubert
ab903af80b Merge branch 'next-minor' into develop 2018-02-25 04:35:53 +01:00
Benjamin Neff
beeb073dbe Fix followed tags posts in stream for posts with multiple tags
When there were posts with many followed tags they were returned
multiple times, resulting in less than 15 unique posts. That resulted in
some posts to be missed in the stream.

Fixes #4503

closes #7715
2018-02-25 04:35:49 +01:00
Dennis Schubert
5d23c6bfcf Merge branch 'next-minor' into develop 2018-02-25 04:34:08 +01:00
Benjamin Neff
f0aca56c8f Don't retry for PublicKeyNotFound
We only return `nil` when we know the person, but don't know the key or
the key is invalid, so it doesn't make sense to retry in this case. When
the person isn't known and can't be fetched we raise a DiscoveryError
which will be retried.

Also the errors were moved to the `Signable` module in the last release.

closes #7717
2018-02-25 04:34:04 +01:00
Dennis Schubert
3bc0fc16a2 Merge branch 'next-minor' into develop 2018-02-25 04:33:07 +01:00
Benjamin Neff
602a1dcd55 Store edited_at for relayables in additional_data
closes #7718
2018-02-25 04:33:03 +01:00
Benjamin Neff
0b4b3515a5 Start sending updated_at timestamp as edited_at for profiles
This can be used in later diaspora versions to order the profile updates
so we don't overwrite a newer profile with older data.
2018-02-25 04:32:19 +01:00
Benjamin Neff
86d52a0da3 Bump diaspora_federation 2018-02-25 04:32:19 +01:00
Dennis Schubert
1903bfd307 Merge pull request #7581 from Fensterbank/improved-profile-picture-editor
Profile photo upload with cropping function
2018-02-25 04:17:44 +01:00
Benjamin Neff
0cb2a8f4d7 Merge branch 'next-minor' into develop 2018-02-22 00:49:32 +01:00
Benjamin Neff
c89b2ad809 Prevent duplicate mention notifications when the post is received twice
closes #7721
2018-02-22 00:49:21 +01:00
Brad Koehn
b80eb01f34 piped bin/bundle commands to suppress warnings when run on readonly filesystems
closes #7719
2018-02-22 00:45:45 +01:00
Benjamin Neff
0b921c6657 Merge branch 'next-minor' into develop 2018-02-17 19:26:15 +01:00
cmrd Senya
3e31b91b11 Add @nophantomjs tag to default cucumber profile
Use this tag for tests which can't work with PhantomJS, but which we
can run with Selenium using some other profile (not implemented here).

closes #6418
2018-02-17 19:24:39 +01:00
cmrd Senya
b32c844314 Support for embedding HTML5 media links
Use markdown-it-html5-embed plugin so user can embed audio and
video using the markdown link syntax []() in the HTML5 way.
2018-02-17 19:21:10 +01:00
Steffen van Bergerem
258b502cde Bump devise
closes #7716
2018-02-17 19:20:15 +01:00
Steffen van Bergerem
fa14e1e368 Bump hamlit 2018-02-17 19:20:12 +01:00
Steffen van Bergerem
b786d237cd Bump haml 2018-02-17 19:20:02 +01:00
Frédéric Bolvin
d7abaaced0 implemented new profile photo upload with cropping function 2018-02-16 19:43:32 +01:00
Dennis Schubert
049db8626d Merge branch 'next-minor' into develop 2018-02-10 16:13:44 +01:00
Saverio Miroddi
1ebb5dd72d Don't print a warning when starting the server outside a Git repo
Currently, git checks are performed on server start, even when outside a git
repository.

This commit verify the presence of a git repository (via `git status` exit
code), and perform checks only if it exists.

closes #7712
2018-02-10 16:13:38 +01:00
Dennis Schubert
948e31b10c Merge branch 'next-minor' into develop 2018-02-09 03:15:38 +01:00
Dennis Schubert
f8ce276ddc Merge branch 'master' into next-minor 2018-02-09 03:15:18 +01:00
Dennis Schubert
b23696bb88 Merge branch 'hotfix/0.7.3.1' 2018-02-09 03:13:51 +01:00
Dennis Schubert
005dd923c9 Pull updated German translations to fix "reshare" UX issues 2018-02-09 03:09:44 +01:00
Benjamin Neff
e9e08831e6 Merge branch 'next-minor' into develop 2018-02-08 23:20:12 +01:00
Benjamin Neff
3033e915e5 Merge branch 'next-minor' of github.com:diaspora/diaspora into next-minor 2018-02-08 23:19:57 +01:00
Benjamin Neff
fc2397c062 Merge branch 'next-minor' into develop 2018-02-08 22:55:43 +01:00
Benjamin Neff
a8fcbb3365 Merge branch 'master' into next-minor 2018-02-08 22:55:30 +01:00
Dennis Schubert
ea606b374a Merge branch 'next-minor' into develop 2018-02-03 16:43:30 +01:00
Fla
35535d5bfb Remove unnecessary quotes in database.yml.examle
[ci skip]

closes #7711
2018-02-03 16:42:51 +01:00
Dennis Schubert
3121de7954 Merge branch 'next-minor' into develop 2018-02-01 23:49:55 +01:00
Dennis Schubert
7abb0518e9 Start 0.7.4.0 cycle
[ci skip]
2018-02-01 23:48:04 +01:00
Dennis Schubert
f6e359a669 Merge branch 'next-minor' into develop 2018-02-01 23:42:04 +01:00
Benjamin Neff
750481497f Merge branch 'next-minor' into develop 2018-01-31 22:17:07 +01:00
Benjamin Neff
1d683295e1 Merge branch 'next-minor' into develop 2018-01-21 21:30:59 +01:00
Dennis Schubert
9ec07911de Merge branch 'next-minor' into develop 2018-01-12 17:56:17 +01:00
Benjamin Neff
b3d3445a7e Merge branch 'next-minor' into develop 2018-01-09 00:06:44 +01:00
Dennis Schubert
13d24cc611 Merge branch 'next-minor' into develop 2018-01-08 21:15:49 +01:00
Benjamin Neff
e059b8ad48 Merge branch 'next-minor' into develop 2018-01-05 03:46:06 +01:00
Benjamin Neff
d3632e116a Merge branch 'next-minor' into develop 2018-01-05 01:50:27 +01:00
Benjamin Neff
a2ca74265c Merge branch 'next-minor' into develop 2017-12-30 15:41:04 +01:00
Benjamin Neff
03ee954c10 Merge branch 'next-minor' into develop 2017-12-26 03:38:10 +01:00
Benjamin Neff
151a169791 Merge branch 'next-minor' into develop 2017-12-25 20:55:27 +01:00
Benjamin Neff
fb084e47af Merge branch 'next-minor' into develop 2017-12-24 02:50:36 +01:00
Benjamin Neff
c3c0059734 Merge branch 'next-minor' into develop 2017-12-18 04:57:11 +01:00
Benjamin Neff
d42801a737 Merge branch 'next-minor' into develop 2017-12-18 04:41:49 +01:00
Jonne Haß
c8d1043590 add carrierwave error messages 2017-12-03 14:53:44 +01:00
Benjamin Neff
21980681b1 Merge branch 'next-minor' into develop 2017-11-01 00:50:23 +01:00
Benjamin Neff
6351399197 Merge branch 'next-minor' into develop 2017-10-27 02:27:11 +02:00
Benjamin Neff
42a8129016 Merge branch 'next-minor' into develop 2017-10-21 00:46:22 +02:00
Benjamin Neff
30a940f483 Merge branch 'next-minor' into develop 2017-10-20 02:56:20 +02:00
Benjamin Neff
cae06d95ea Merge branch 'next-minor' into develop 2017-10-20 01:25:37 +02:00
Benjamin Neff
66095e3f03 Merge branch 'next-minor' into develop 2017-10-18 01:08:48 +02:00
Benjamin Neff
d6bec055e7 Merge branch 'next-minor' into develop 2017-10-17 01:39:46 +02:00
Benjamin Neff
4bbb25fedf Merge branch 'next-minor' into develop 2017-09-28 23:39:56 +02:00
Benjamin Neff
0029f2c1da Merge branch 'next-minor' into develop 2017-09-28 23:11:56 +02:00
Benjamin Neff
829882cf58 Merge branch 'next-minor' into develop 2017-09-28 03:28:30 +02:00
Benjamin Neff
760b928902 Merge branch 'next-minor' into develop 2017-09-26 04:07:43 +02:00
Benjamin Neff
d410b62323 Merge branch 'next-minor' into develop 2017-09-19 20:28:36 +02:00
Benjamin Neff
9f18d5ba82 Merge branch 'next-minor' into develop 2017-09-18 03:25:02 +02:00
Benjamin Neff
26a9e50ef9 Merge branch 'next-minor' into develop 2017-09-17 19:36:00 +02:00
Steffen van Bergerem
c9ba7f697b Merge branch 'next-minor' into develop 2017-09-04 02:49:22 +02:00
Benjamin Neff
c1022ef8ad Merge branch 'next-minor' into develop 2017-09-03 23:53:33 +02:00
Benjamin Neff
94e904464f Merge branch 'next-minor' into develop 2017-08-31 02:45:22 +02:00
Steffen van Bergerem
f9029dbdaf Merge branch 'next-minor' into develop 2017-08-29 12:55:17 +02:00
Benjamin Neff
295bb15f73 Merge branch 'next-minor' into develop 2017-08-29 02:17:47 +02:00
Benjamin Neff
e7a1fe6e78 Merge branch 'next-minor' into develop 2017-08-26 03:16:23 +02:00
Steffen van Bergerem
95ac7d0123 Merge branch 'next-minor' into develop 2017-08-25 01:51:47 +02:00
Steffen van Bergerem
974fbd4d03 Merge branch 'next-minor' into develop 2017-08-24 14:57:59 +02:00
Steffen van Bergerem
2ffdbc4b05 Merge branch 'next-minor' into develop 2017-08-23 21:55:59 +02:00
Steffen van Bergerem
e39df04dc4 Merge branch 'next-minor' into develop 2017-08-23 21:50:41 +02:00
Benjamin Neff
697d626269 Merge branch 'next-minor' into develop 2017-08-19 22:41:27 +02:00
Benjamin Neff
f5fc142f63 Merge branch 'next-minor' into develop 2017-08-19 18:26:14 +02:00
Benjamin Neff
8d5d09521a Merge branch 'next-minor' into develop 2017-08-19 15:04:14 +02:00
Steffen van Bergerem
680894d121 Merge branch 'next-minor' into develop 2017-08-19 12:39:42 +02:00
Steffen van Bergerem
9ffbf2f788 Merge branch 'next-minor' into develop 2017-08-19 12:31:31 +02:00
Benjamin Neff
eb70d24dfa Merge branch 'next-minor' into develop 2017-08-19 07:39:59 +02:00
Benjamin Neff
0ae9dbf77f Merge branch 'next-minor' into develop 2017-08-17 11:42:15 +02:00
Benjamin Neff
6569bbaf1f Merge branch 'next-minor' into develop 2017-08-17 03:36:46 +02:00
Benjamin Neff
3b6a98b7b4 Merge branch 'next-minor' into develop 2017-08-17 00:51:22 +02:00
Dennis Schubert
19a967328d Merge pull request #7544 from svbergerem/gender-neutral-comments-specs
Use gender-neutral forms in comments and specs
2017-08-16 23:56:34 +02:00
Steffen van Bergerem
68145723bb Use gender-neutral forms in comments and specs 2017-08-16 23:23:34 +02:00
Benjamin Neff
db14b58eeb Merge branch 'next-minor' into develop 2017-08-16 20:42:30 +02:00
Benjamin Neff
11372035b8 Start 0.8.0.0 cycle 2017-08-15 01:49:51 +02:00
1236 changed files with 104441 additions and 76622 deletions

View File

@@ -2,7 +2,8 @@
"env": {
"browser": true,
"jasmine": true,
"jquery": true
"jquery": true,
"es6": true
},
"globals": {
@@ -10,16 +11,16 @@
"autosize": false,
"Backbone": false,
"Bloodhound": false,
"blueimp": false,
"gon": false,
"Handlebars": false,
"HandlebarsTemplates": false,
"ImagePaths": false,
"jsxc": false,
"L": false,
"Routes": false,
"OSM": false,
"PerfectScrollbar": false,
"qq": false,
"blueimp": false,
"Routes": false,
"loginAs": true,
"logout": true,
@@ -96,7 +97,7 @@
"no-catch-shadow": 0,
"no-class-assign": 2,
"no-cond-assign": 2,
"no-confusing-arrow": 2,
"no-confusing-arrow": [2, {"allowParens": true}],
"no-console": 2,
"no-const-assign": 2,
"no-constant-condition": 2,

63
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,63 @@
name: CI
on:
push:
branches:
- develop
- next-minor
- main
- master
pull_request:
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby:
- '3.2'
- '3.3'
db:
- mysql
- postgresql
kind:
- cucumber
- other
env:
DB: ${{ matrix.db }}
RAILS_ENV: test
BUNDLE_WITH: ${{ matrix.db }}
BUNDLE_WITHOUT: development
BUNDLE_FROZEN: true
BUNDLE_DISABLE_SHARED_GEMS: true
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Install system dependencies
run: sudo apt update && sudo apt install -y build-essential curl git gsfonts imagemagick libcurl4-openssl-dev libidn11-dev libmagickwand-dev libssl-dev libxml2-dev libxslt1-dev yarnpkg
- name: Start MySQL
run: sudo systemctl start mysql.service
if: matrix.db == 'mysql'
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Prepare
run: script/ci/prepare.sh
- name: Run tests
run: bin/rake --trace ci:${{ matrix.kind }}
- name: Run Jasmine
run: bin/rake jasmine:ci
timeout-minutes: 2
if: matrix.kind == 'other'

62
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
## SECURITY WARNING:
##
## Do not change this job unless you know what you're doing.
##
## This GitHub Action runs on: pull_request_target, which means the jobs run in
## a context where they have access to a Access Token with write access to the
## target repo, even if the PR is opened from an external contributor from their
## fork.
##
## This means that if we're not careful, we could be running third-party code
## within an authenticated scope, which isn't good. To mitigate this, this
## implementation does:
##
## 1. checkout the target branch (i.e. the project's original sources)
## 2. install the Gems from there, and install them into a directory that's
## outside the repository contents.
## 3. checkout the PRs HEAD
## 4. restore a bunch of files that would allow code execution from the
## project's upstream sources, namely:
## - bin/bundle - we'll run that in our Job
## - Gemfile/Gemfile.lock - to avoid loading a gem with an identical
## version number from a in-repo vendored directory
name: Lint
on:
pull_request_target:
permissions:
contents: read
statuses: write
pull-requests: write
jobs:
pronto:
runs-on: ubuntu-latest
steps:
- name: Install system dependencies
run: sudo apt update && sudo apt install -y build-essential curl git gsfonts imagemagick libcurl4-openssl-dev libidn11-dev libmagickwand-dev libssl-dev libxml2-dev libxslt1-dev yarnpkg
- name: Checkout Target branch
uses: actions/checkout@v3
with:
ref: ${{ github.base_ref }}
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
bundler-cache: true
- name: Checkout PR HEAD
run: |
git fetch -q origin +refs/pull/${{ github.event.pull_request.number }}/head:
git checkout -qf FETCH_HEAD
- name: Restore the bundle binstub and Gemfiles from the target branch
run: |
git restore -s ${{ github.base_ref }} -- bin/bundle
git restore -s ${{ github.base_ref }} -- Gemfile
git restore -s ${{ github.base_ref }} -- Gemfile.lock
- name: Run Pronto
run: bin/bundle exec pronto run -f github_status github_pr_review -c ${{ github.base_ref }}
env:
PRONTO_PULL_REQUEST_ID: ${{ github.event.pull_request.number }}
PRONTO_GITHUB_ACCESS_TOKEN: ${{ github.token }}

17
.gitignore vendored
View File

@@ -1,14 +1,10 @@
# XMPP certificates, keys and user data
config/certs/*.crt
config/certs/*.key
config/prosody.cfg.lua
# Trademark sillyness
app/views/home/_show.*
app/views/terms/terms.*
app/assets/images/custom/
# Configuration files
config/diaspora.toml
config/diaspora.yml
config/initializers/secret_token.rb
.bundle
@@ -16,6 +12,7 @@ vendor/bundle/
vendor/cache/
config/database.yml
config/oidc_key.pem
config/schedule.yml
# Generated files
log/
@@ -50,9 +47,9 @@ public/source.tar*
tmp/
# Temporary files of every sort
.byebug_history
.sass-cache/
.DS_Store
.idea
.redcar
.stgit*
*.swap
@@ -71,6 +68,8 @@ capybara-*.html
*.rbc
# IDE
.idea
.vscode
diaspora.iml
# Dolphin's directory's preferences files
@@ -78,3 +77,9 @@ diaspora.iml
# WebTranslateIt
.wti
# MacOS
/__MACOSX/
# yarn
node_modules

View File

@@ -1,23 +1,24 @@
require: rubocop-rails
AllCops:
TargetRubyVersion: 2.3
TargetRubyVersion: 3.0
NewCops: enable
Exclude:
- "bin/**/*"
- "db/schema.rb"
Rails:
Enabled: true
- "config/locales/cldr/plurals.rb"
# Disable for rails 4
Rails/HttpPositionalArguments:
Enabled: false
# Commonly used screens these days easily fit more than 80 characters.
Metrics/LineLength:
Layout/LineLength:
Max: 120
# Too short methods lead to extraction of single-use methods, which can make
# the code easier to read (by naming things), but can also clutter the class
Metrics/MethodLength:
Metrics/MethodLength:
Max: 20
# The guiding principle of classes is SRP, SRP can't be accurately measured by LoC
@@ -25,14 +26,20 @@ Metrics/ClassLength:
Max: 1500
Metrics/ModuleLength:
Max: 1500
# Raise AbcSize from 15 to 20
# Raise complexity metrics
Metrics/AbcSize:
Max: 20
Metrics/CyclomaticComplexity:
Max: 20
Metrics/PerceivedComplexity:
Max: 20
# Some blocks are longer.
Metrics/BlockLength:
ExcludedMethods:
AllowedMethods:
- "namespace"
- "create_table"
Exclude:
@@ -50,16 +57,27 @@ Layout/SpaceAroundEqualsInParameterDefault:
# are needed.
Style/StringLiterals:
EnforcedStyle: double_quotes
Exclude:
# These files are generated by rails, so it's best to keep them close to the original for smaller diffs
- "config/application.rb"
- "config/boot.rb"
- "config/environment.rb"
- "config/environments/*.rb"
# We do not need to support Ruby 1.9, so this is good to use.
Style/SymbolArray:
Enabled: true
# Most readable form.
Layout/AlignHash:
Layout/HashAlignment:
EnforcedHashRocketStyle: table
EnforcedColonStyle: table
# This rule makes haml files less readable, as there is no 'end' there.
Layout/CaseIndentation:
Exclude:
- "app/views/**/*"
# Mixing the styles looks just silly.
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
@@ -78,7 +96,6 @@ Style/CollectionMethods:
# inject seems more common in the community.
reduce: "inject"
# Either allow this style or don't. Marking it as safe with parenthesis
# is silly. Let's try to live without them for now.
Style/ParenthesesAroundCondition:
@@ -87,7 +104,7 @@ Lint/AssignmentInCondition:
AllowSafeAssignment: false
# A specialized exception class will take one or more arguments and construct the message from it.
# So both variants make sense.
# So both variants make sense.
Style/RaiseArgs:
Enabled: false
@@ -105,7 +122,7 @@ Style/SignalException:
# Suppressing exceptions can be perfectly fine, and be it to avoid to
# explicitly type nil into the rescue since that's what you want to return,
# or suppressing LoadError for optional dependencies
Lint/HandleExceptions:
Lint/SuppressedException:
Enabled: false
Layout/SpaceInsideBlockBraces:
@@ -150,11 +167,16 @@ Lint/ShadowingOuterLocalVariable:
# Check with yard instead.
Style/Documentation:
Enabled: false
Enabled: false
# This is just silly. Calling the argument `other` in all cases makes no sense.
Naming/BinaryOperatorParameterName:
Enabled: false
Enabled: false
# Defining constants in tests is fine, and it's good to have them close to the test where they are used.
Lint/ConstantDefinitionInBlock:
Exclude:
- "spec/**/*"
# There are valid cases, for example debugging Cucumber steps,
# also they'll fail CI anyway
@@ -168,3 +190,11 @@ Style/NumericPredicate:
# Reset some HoundCI changes back to Rubocop defaults
Layout/DotPosition:
EnforcedStyle: leading
# Not enabled by default but good
Style/HashEachMethods:
Enabled: true
# It makes more sense to allow to structure and group them how it makes sense in the code
Style/AccessorGrouping:
Enabled: false

View File

@@ -1 +1 @@
2.4
3.3

View File

@@ -70,7 +70,7 @@ linters:
enabled: true
IdSelector:
enabled: true
enabled: false
ImportantRule:
enabled: true

View File

@@ -1,40 +0,0 @@
language: ruby
rvm:
- 2.4.2
- 2.3.5
env:
- DB=postgresql BUILD_TYPE=cucumber
- DB=mysql BUILD_TYPE=cucumber
- DB=postgresql BUILD_TYPE=other
- DB=mysql BUILD_TYPE=other
sudo: false
cache:
bundler: true
directories:
- app/assets/images
- tmp/cache/assets
branches:
only:
- 'master'
- 'next-minor'
- 'develop'
before_install:
- script/ci/prepare.sh
- mkdir travis-phantomjs
- wget http://cifiles.diasporafoundation.org/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
- tar -xvf $PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis-phantomjs
- export PATH=$PWD/travis-phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH
script: "bin/rake --trace ci:travis:${BUILD_TYPE}"
notifications:
irc:
channels:
- secure: YvYkeTAw+5oOl/RaXVwu7JkKGNWPoFosNQRmLvJkBFbWzZ1s5LZD1u3+Qj819bT3lGzJu9pxmJg765IRYrGWmBi4mcAV3dpO6qowVdFTcorf0JsnLw3Kvkga9rrDunsRNr21KTAQqHOO5mKUzw9DtMzd52BiWuZwIj3xcl72gQI=
template:
- "%{repository_slug}#%{commit} (%{branch} - %{commit_subject}): %{message} %{build_url}"

View File

@@ -1,3 +1,389 @@
# 1.0.0 (unreleased)
## Refactor
## Bug fixes
## Features
# 0.9.1.0 (unreleased)
## Refactor
* Improved compatibility with non-specification-compliant OpenGraph metadata [#8465](https://github.com/diaspora/diaspora/pull/8465)
## Bug fixes
* Fix processing for a specific set of uploaded images, like scenes full of snow, by allowing for a larger on-disk cache for ImageMagick [#8460](https://github.com/diaspora/diaspora/pull/8460)
* Fix a bug with parsing certain OpenGraph metadata structures [#8463](https://github.com/diaspora/diaspora/pull/8463)
## Features
* For admins, the offending content's author is now visible in the reports overview [#8464](https://github.com/diaspora/diaspora/pull/8464)
# 0.9.0.0
## New configuration file!
Diaspora\* now uses TOML for the configuration file. We recommend you to migrate to this new format, as with the next major release (1.0) diaspora\* will no longer read the YAML based configuration file at `config/diaspora.yml`. To do so, please copy `config/diaspora.toml.example` to `config/diaspora.toml` and migrate your configuration.
## API!
With the release of diaspora\* Version 0.9, we now officially support building applications on top of the diaspora\* API! Please check out [the official API documentation](https://diaspora.github.io/api-documentation/) for instructions, and please do file bugs if you notice something that could be improved!
We are looking forward to seeing many creative applications!
## The chat integration has been removed
After [a discussion with our community on Discourse](https://discourse.diasporafoundation.org/t/2718), we decided to remove the pieces of XMPP chat integration that were put in place a while ago. When we first added the chat support, we merged the implementation in an unfinished state in the hopes that the open issues will be addressed eventually, and the implementation would end up more polished. This ended up not being the case. After careful consideration and discussion, we did not manage to come up with clear reasons why we need a chat implementation, so we decided that the best way forward would be to remove it.
Although the chat was never enabled per default and was marked as experimental, some production pods did set up the integration and offered an XMPP service to their users. After this release, diaspora\* will no longer contain a chat applet, so users will no longer be able to use the webchat inside diaspora\*. The existing module that is used to enable users to authenticate to Prosody using their diaspora\* credentials will continue to work, but contact list synchronization might not work without further changes to the Prosody module, which is developed independently from this project.
## Changes around the appserver and related configuration
With this release, we switched from `unicorn` to `puma` to run our applications. For podmins running the default setup, this should significantly reduce memory usage, with similar or even better frontend performance! However, as great as this change is, some configuration changes are required.
- The `single_process_mode` and `embed_sidekiq_worker` configurations have been removed. This mode was never truly a "single-process" mode, as it just spawned the Background Workers inside the runserver. If you're using `script/server` to start your pod, this change does not impact you, but if you're running diaspora\* using other means, and you relied on this "single"-process mode, please ensure that Sidekiq workers get started.
- The format of the `listen` configuration has changed. If you have not set that field in your configuration, you can skip this. Otherwise, make sure to adjust your configuration accordingly:
- Listening to Unix sockets with a relative path has changed from `unix:tmp/diaspora.sock` into `unix://tmp/diaspora.sock`.
- Listening to Unix sockets with an absolute path has changed from `unix:/run/diaspora/diaspora.sock` to `unix:///run/diaspora/diaspora.sock`.
- Listening to a local port has changed from `127.0.0.1:3000` to `tcp://127.0.0.1:3000`.
- The `PORT` environment variable and the `-p` parameter to `script/server` have been removed. If you used that to run diaspora\* on a non-standard port, please use the `listen` configuration.
- The `unicorn_worker` configuration has been dropped. With Puma, there should not be a need to increase the number of workers above a single worker in any pod of any size.
- The `unicorn_timeout` configuration has been renamed to `web_timeout`.
- **If you don't run your pod with `script/server`**, you have to update your setup. If you previously called `bin/bundle exec unicorn -c config/unicorn.rb` to run diaspora\*, you now have to run `bin/puma -C config/puma.rb`! Please update your systemd-Units or similar accordingly.
## Yarn for frontend dependencies
We use yarn to install the frontend dependencies now, so you need to have that installed. See here for how to install it: https://yarnpkg.com/en/docs/install
## Suggested Ruby version: 3.3
We recommend setting up new pods using Ruby 3.3, and updating existing pods to this version as well. Ruby 2.7 is EOL and no longer supported.
## Changes to script/server for production pods
If you're currently running your production pod with `./script/server` in a tmux or something similar, please be careful. We made some internal changes that result in the script no longer automatically restarting the server if it crashes - instead, it will just shut down. We strongly recommend running your pod using your system's unit manager, for example with [this systemd unit](https://wiki.diasporafoundation.org/Automatic_startup_methods#Recommended:_systemd).
## Security
* Fix a potential 2FA brute force attack ([CVE-2024-0227](https://github.com/devise-two-factor/devise-two-factor/security/advisories/GHSA-chcr-x7hc-8fp8)).
Thanks to Christian Reitter ([Radically Open Security](https://www.radicallyopensecurity.com/)) and Chris MacNaughton ([Centauri Solutions](https://centauri.solutions)).
## Refactor
* Add bootstrapping for using ECMAScript 6 with automatic transpiling for compatibility [#7581](https://github.com/diaspora/diaspora/pull/7581) [#8397](https://github.com/diaspora/diaspora/pull/8397)
* Remove backporting of mention syntax [#7788](https://github.com/diaspora/diaspora/pull/7788)
* Enable Content-Security-Policy header by default [#7781](https://github.com/diaspora/diaspora/pull/7781)
* Do not show getting started after account import [#8036](https://github.com/diaspora/diaspora/pull/8036)
* Remove the JSXC/Prosody integration [#8069](https://github.com/diaspora/diaspora/pull/8069) [#8341](https://github.com/diaspora/diaspora/pull/8341)
* Replace `factory_girl` with `factory_bot` [#8218](https://github.com/diaspora/diaspora/pull/8218)
* Drop relay support [#8243](https://github.com/diaspora/diaspora/pull/8243)
* Use yarn to manage the frontend dependencies [#8364](https://github.com/diaspora/diaspora/pull/8364)
* Upgrade to latest `diaspora_federation`, remove support for old federation protocol [#8368](https://github.com/diaspora/diaspora/pull/8368)
* Remove support for `therubyracer` [#8337](https://github.com/diaspora/diaspora/issues/8337)
* Replace `unicorn` with `puma` [#8392](https://github.com/diaspora/diaspora/pull/8392)
* Drop `strip_exif` flag and always remove exif data from uploaded images [#8417](https://github.com/diaspora/diaspora/pull/8417)
* Replace `apparition` with `cuprite` [#8418](https://github.com/diaspora/diaspora/pull/8418)
* Remove `i18n-inflector-rails` for translations [#8420](https://github.com/diaspora/diaspora/pull/8420)
* Add ruby 3 support [#8423](https://github.com/diaspora/diaspora/pull/8423) [#8426](https://github.com/diaspora/diaspora/pull/8426) [#8427](https://github.com/diaspora/diaspora/pull/8427) [#8448](https://github.com/diaspora/diaspora/pull/8448)
* Add CORS headers to nodeinfo endpoints to allow for client-side fetching [#8436](https://github.com/diaspora/diaspora/pull/8436)
* Replace eye with foreman [#8449](https://github.com/diaspora/diaspora/pull/8449)
## Bug fixes
* Fix multiple photos upload progress bar [#7655](https://github.com/diaspora/diaspora/pull/7655)
* Photo-upload file picker now correctly restricts possible file types [#8205](https://github.com/diaspora/diaspora/pull/8205)
* Make inline code inside links show the link color [#8387](https://github.com/diaspora/diaspora/pull/8387)
* Fix fetching public posts on first account search was missing some data [#8390](https://github.com/diaspora/diaspora/pull/8390)
* Add redirect from mobile UI photo URLs to post when not using mobile UI [#8400](https://github.com/diaspora/diaspora/pull/8400)
* Escape mentions before markdown parsing in mobile UI [#8398](https://github.com/diaspora/diaspora/pull/8398)
* Cleanup duplicate pods in database [#8403](https://github.com/diaspora/diaspora/pull/8403)
* Fix scrolling issue after closing photo viewer on photos page [#8404](https://github.com/diaspora/diaspora/pull/8404)
* Filter unicode emojis from email headers [#8421](https://github.com/diaspora/diaspora/pull/8421)
* Do not show disabled services anymore [#8406](https://github.com/diaspora/diaspora/pull/8406)
* Update search endpoint to be aware of ignored users [#8363](https://github.com/diaspora/diaspora/pull/8363)
## Features
* Add client-side cropping of profile image uploads [#7581](https://github.com/diaspora/diaspora/pull/7581)
* Add client-site rescaling of post images if they exceed the maximum possible size [#7734](https://github.com/diaspora/diaspora/pull/7734)
* Add backend for archive import [#7660](https://github.com/diaspora/diaspora/pull/7660) [#8254](https://github.com/diaspora/diaspora/pull/8254) [#8264](https://github.com/diaspora/diaspora/pull/8264) [#8010](https://github.com/diaspora/diaspora/pull/8010) [#8260](https://github.com/diaspora/diaspora/pull/8260) [#8302](https://github.com/diaspora/diaspora/pull/8302) [#8298](https://github.com/diaspora/diaspora/pull/8298)
* For pods running PostgreSQL, make sure that no upper-case/mixed-case tags exist, and create a `lower(name)` index on tags to speed up ActsAsTaggableOn [#8206](https://github.com/diaspora/diaspora/pull/8206)
* Allow podmins/moderators to see all local public posts to improve moderation [#8232](https://github.com/diaspora/diaspora/pull/8232) [#8320](https://github.com/diaspora/diaspora/pull/8320)
* Add support for directly paste images to upload them [#8237](https://github.com/diaspora/diaspora/pull/8237)
* Add support for webp images and convert new png/jpg to webp to save space and bandwidth [#8358](https://github.com/diaspora/diaspora/pull/8358)
* Show total and active pods count in the pods list for podmins [#8383](https://github.com/diaspora/diaspora/pull/8383)
* Allow to select multiple aspects when posting on mobile [#8217](https://github.com/diaspora/diaspora/pull/8217)
* Add info links to drawer in mobile UI [#8405](https://github.com/diaspora/diaspora/pull/8405)
* Tell users that there is no help in mobile version, allow to switch to desktop [#8407](https://github.com/diaspora/diaspora/pull/8407)
* Add Smart App Banner on iOS devices [#8409](https://github.com/diaspora/diaspora/pull/8409)
* Add a more detailed modal when reporting a post or a comment [#8035](https://github.com/diaspora/diaspora/pull/8035)
* Re-introduce likes on comments [#8203](https://github.com/diaspora/diaspora/pull/8203) [#8439](https://github.com/diaspora/diaspora/pull/8439) [#8442](https://github.com/diaspora/diaspora/pull/8442)
* New redesigned registration page [#8285](https://github.com/diaspora/diaspora/pull/8285)
* Allow comments to be fetched [#8441](https://github.com/diaspora/diaspora/pull/8441)
# 0.7.18.2
To avoid potential security issues, diaspora\* now makes sure that ImageMagick image processing always runs with a restricted `policy.xml`, regardless of the global system settings.
# 0.7.18.1
## Bug fixes
* Update binstubs to fix diaspora\* being unable to start when multiple bundler versions were available [#8392](https://github.com/diaspora/diaspora/pull/8392/commits/bfd42a1914a99ac9c71ecb16bbf6fa5bb118148a)
# 0.7.18.0
## Refactor
* Fix order-dependent jasmine test failures and switch to random order [#8333](https://github.com/diaspora/diaspora/pull/8333)
* Get rid of some uses of "execute\_script" in feature specs [#8331](https://github.com/diaspora/diaspora/pull/8331)
* Fix deprecation warnings for sidekiq 7.0 [#8359](https://github.com/diaspora/diaspora/pull/8359)
* Remove entypo-rails dependency to prepare for rails 6 [#8361](https://github.com/diaspora/diaspora/pull/8361)
* Remove compass-rails dependency which is not supported anymore [#8362](https://github.com/diaspora/diaspora/pull/8362)
* Switch to sassc-rails which speeds up `assets:precompile` a lot [#8362](https://github.com/diaspora/diaspora/pull/8362)
* Remove markerb dependency which doesn't exist anymore [#8365](https://github.com/diaspora/diaspora/pull/8365)
* Upgrade to rails 6.1 [#8366](https://github.com/diaspora/diaspora/pull/8366)
* Update the suggested Ruby version to 2.7. If you run into trouble during the update and you followed our installation guides, run `rvm install 2.7`. [#8366](https://github.com/diaspora/diaspora/pull/8366)
* Upgrade to bundler 2 [#8366](https://github.com/diaspora/diaspora/pull/8366)
* Stop checking `/.well-known/host-meta`, check for `/.well-known/nodeinfo` instead [#8377](https://github.com/diaspora/diaspora/pull/8377)
* Handle NodeInfo timeouts gracefully [#8380](https://github.com/diaspora/diaspora/pull/8380)
## Bug fixes
* Fix that no mails were sent after photo export [#8365](https://github.com/diaspora/diaspora/pull/8365)
* Fix people with quotes in the name causing issues with mail sender [#8365](https://github.com/diaspora/diaspora/pull/8365)
## Features
* Render posts and comments as HTML in HTML mails [#8365](https://github.com/diaspora/diaspora/pull/8365)
* Add NodeInfo 2.1 support and also read newer versions of NodeInfo [#8379](https://github.com/diaspora/diaspora/pull/8379)
# 0.7.17.0
## Security
* Bump Rails to 5.2.7 to address [CVE-2022-22577](https://discuss.rubyonrails.org/t/cve-2022-22577-possible-xss-vulnerability-in-action-pack/80533) and [CVE-2022-27777](https://discuss.rubyonrails.org/t/cve-2022-27777-possible-xss-vulnerability-in-action-view-tag-helpers/80534) [#8350](https://github.com/diaspora/diaspora/pull/8350)
* Do not allow the user to mass assign their own password and 2fa settings alongside other parameters. Reported by Breno Vitório (@brenu) - thank you! [#8351](https://github.com/diaspora/diaspora/pull/8351)
## Bug fixes
* Don't suggest to retry exports on failure [#8343](https://github.com/diaspora/diaspora/pull/8343)
# 0.7.16.0
## Security
* Update rails to fix [CVE-2022-23633](https://github.com/advisories/GHSA-wh98-p28r-vrc9) [#8336](https://github.com/diaspora/diaspora/pull/8336)
## Refactor
* Cache local posts/comments count for statistics [#8241](https://github.com/diaspora/diaspora/pull/8241)
* Fix html-syntax in some handlebars templates [#8251](https://github.com/diaspora/diaspora/pull/8251)
* Remove `chat_enabled` flag from archive export [#8265](https://github.com/diaspora/diaspora/pull/8265)
* Change thumbnails in image slideshow to squares [#8275](https://github.com/diaspora/diaspora/pull/8275)
* Replace uglifier with terser for JS compression [#8268](https://github.com/diaspora/diaspora/pull/8268)
## Bug fixes
* Ensure the log folder exists [#8287](https://github.com/diaspora/diaspora/pull/8287)
* Limit name length in header [#8313](https://github.com/diaspora/diaspora/pull/8313)
* Fix fallback avatar in hovercards [#8316](https://github.com/diaspora/diaspora/pull/8316)
* Use old person private key for export if relayable author migrated away [#8310](https://github.com/diaspora/diaspora/pull/8310)
## Features
* Add tags to tumblr posts [#8244](https://github.com/diaspora/diaspora/pull/8244)
* Add blocks to the archive export [#8263](https://github.com/diaspora/diaspora/pull/8263)
* Allow points and dashes in the username [#8266](https://github.com/diaspora/diaspora/pull/8266)
* Add support for footnotes in markdown [#8277](https://github.com/diaspora/diaspora/pull/8277)
* Send `AccountMigration` if receiving message to a migrated account [#8288](https://github.com/diaspora/diaspora/pull/8288)
* Add podmin mail address to the footer [#8242](https://github.com/diaspora/diaspora/pull/8242)
* Add username to password-reset mail [#8037](https://github.com/diaspora/diaspora/pull/8037)
* Resend account migration and deletion for closed recipients [#8309](https://github.com/diaspora/diaspora/pull/8309)
* Add sharing status to hovercards [#8317](https://github.com/diaspora/diaspora/pull/8317)
* Migrate photo URLs and cleanup old uploaded photos [#8314](https://github.com/diaspora/diaspora/pull/8314)
# 0.7.15.0
## Refactor
* Replaced some `http://` links in the UI with their `https://` counterparts [#8207](https://github.com/diaspora/diaspora/pull/8207)
* Testing: Replaced phantomjs with headless Chrome/Chromium [#8234](https://github.com/diaspora/diaspora/pull/8234)
## Bug fixes
* Update comment counter when deleting a comment in the Single Post View [#7938](https://github.com/diaspora/diaspora/pull/7938)
* Link diaspora only poduptime list [#8174](https://github.com/diaspora/diaspora/pull/8174)
* Delete a user's invitation code during account deletion [#8202](https://github.com/diaspora/diaspora/pull/8202)
* Bump mimemagic [#8231](https://github.com/diaspora/diaspora/pull/8231)
* Removed support for defunct Uni Heidelberg OSM tile server, Mapbox is now required if you want to show maps [#8215](https://github.com/diaspora/diaspora/pull/8215)
* Render only two fractional digits in the posts per user/day admin statistics [#8227](https://github.com/diaspora/diaspora/pull/8227)
* Make aspect dropdowns scrollable [#8213](https://github.com/diaspora/diaspora/pull/8213)
* Fix `Photo#ownserhip_of_status_message` validation [#8214](https://github.com/diaspora/diaspora/pull/8214)
## Features
* Support and recommend TOML as configuration format [#8132](https://github.com/diaspora/diaspora/pull/8132)
# 0.7.14.0
## Refactor
* Update the suggested Ruby version to 2.6. If you run into trouble during the update and you followed our installation guides, run `rvm install 2.6`. [#7929](https://github.com/diaspora/diaspora/pull/7929)
## Bug fixes
* Don't link to deleted users in admin user stats [#8063](https://github.com/diaspora/diaspora/pull/8063)
* Properly validate a profile's gender field length instead of failing with a database error. [#8127](https://github.com/diaspora/diaspora/pull/8127)
## Features
# 0.7.13.0
## Security
* Fixes [USN-4274-1](https://usn.ubuntu.com/4274-1/), a potential Denial-of-Service vulnerability in Nokogiri. [#8108](https://github.com/diaspora/diaspora/pull/8108)
## Refactor
* Set better example values for unicorn stdout/stderr log settings [#8058](https://github.com/diaspora/diaspora/pull/8058)
* Replace dependency on rails-assets.org with custom gems cache at gems.diasporafoundation.org [#8087](https://github.com/diaspora/diaspora/pull/8087)
## Bug fixes
* Fix error while trying to fetch some sites with invalid OpenGraph data [#8049](https://github.com/diaspora/diaspora/pull/8049)
* Don't show sign up link on mobile when registrations are disabled [#8060](https://github.com/diaspora/diaspora/pull/8060)
## Features
* Add cronjob to cleanup pending photos which were never posted [#8041](https://github.com/diaspora/diaspora/pull/8041)
# 0.7.12.0
## Refactor
* Harmonize markdown titles sizes [#8029](https://github.com/diaspora/diaspora/pull/8029)
## Bug fixes
* Improve handling of mixed case hostnames while fetching OpenGraph data [#8021](https://github.com/diaspora/diaspora/pull/8021)
* Fix "remember me" with two factor authentication enabled [#8031](https://github.com/diaspora/diaspora/pull/8031)
## Features
* Add line mentioning diaspora\* on the splash page [#7966](https://github.com/diaspora/diaspora/pull/7966)
* Improve communication about signing up on closed pods [#7896](https://github.com/diaspora/diaspora/pull/7896)
# 0.7.11.0
## Refactor
* Enable paranoid mode for devise [#8003](https://github.com/diaspora/diaspora/pull/8003)
* Refactor likes cucumber test [#8002](https://github.com/diaspora/diaspora/pull/8002)
## Bug fixes
* Fix old photos without remote url for export [#8012](https://github.com/diaspora/diaspora/pull/8012)
## Features
* Add a manifest.json file as a first step to make diaspora\* a Progressive Web App [#7998](https://github.com/diaspora/diaspora/pull/7998)
* Allow `web+diaspora://` links to link to a profile with only the diaspora ID [#8000](https://github.com/diaspora/diaspora/pull/8000)
* Support TOTP two factor authentication [#7751](https://github.com/diaspora/diaspora/pull/7751)
# 0.7.10.0
## Refactor
* Replace dandelion.jpg with a public domain photo [#7976](https://github.com/diaspora/diaspora/pull/7976)
## Bug fixes
* Fix incorrect post sorting on tag streams and tag searches for tags containing the word "activity" [#7959](https://github.com/diaspora/diaspora/issues/7959)
# 0.7.9.0
## Refactor
* Improve public stream performance and cleanup unused indexes [#7944](https://github.com/diaspora/diaspora/pull/7944)
* Improve wording of "Toggle mobile" [#7926](https://github.com/diaspora/diaspora/pull/7926)
## Bug fixes
* Do not autofollow back a user you are ignoring [#7913](https://github.com/diaspora/diaspora/pull/7913)
* Fix photos gallery when too many thumbnails are shown [#7943](https://github.com/diaspora/diaspora/pull/7943)
* Fix extended profile visibility switch showing the wrong state [#7955](https://github.com/diaspora/diaspora/pull/7955)
## Features
* Support ignore users on mobile [#7884](https://github.com/diaspora/diaspora/pull/7884)
# 0.7.8.0
## Refactor
* Make setting up a development environment 9001% easier by adding a Docker-based setup [#7870](https://github.com/diaspora/diaspora/pull/7870)
* Improve `web+diaspora://` handler description [#7909](https://github.com/diaspora/diaspora/pull/7909)
* Move comment timestamp next to author name [#7905](https://github.com/diaspora/diaspora/pull/7905)
* Sharpen small and medium thumbnails [#7924](https://github.com/diaspora/diaspora/pull/7924)
* Show full-res image in Desktop's full-screen image view [#7890](https://github.com/diaspora/diaspora/pull/7890)
## Bug fixes
* Ignore invalid URLs for camo [#7922](https://github.com/diaspora/diaspora/pull/7922)
* Unliking a post did not update the participation icon without a reload [#7882](https://github.com/diaspora/diaspora/pull/7882)
* Fix broken Instagram embedding [#7920](https://github.com/diaspora/diaspora/pull/7920)
## Features
* Add the ability to assign roles in the admin panel [#7868](https://github.com/diaspora/diaspora/pull/7868)
* Improve memory usage with libjemalloc if available [#7919](https://github.com/diaspora/diaspora/pull/7919)
# 0.7.7.1
Fixes a potential cross-site scripting issue with maliciously crafted OpenGraph metadata on the mobile interface.
# 0.7.7.0
## Refactor
* Remove mention of deprecated `statistic.json` [#7867](https://github.com/diaspora/diaspora/pull/7867)
* Add quotes in `database.yml.example` to fields that may contain special characters [#7875](https://github.com/diaspora/diaspora/pull/7875)
* Removed broken, and thus deprecated, Facebook integration [#7874](https://github.com/diaspora/diaspora/pull/7874)
## Bug fixes
* Add compatibility with macOS to `script/configure_bundler` [#7830](https://github.com/diaspora/diaspora/pull/7830)
* Fix comment and like notifications on posts without text [#7857](https://github.com/diaspora/diaspora/pull/7857) [#7853](https://github.com/diaspora/diaspora/pull/7853)
* Fix issue with some language fallbacks not working correctly [#7861](https://github.com/diaspora/diaspora/pull/7861)
* Make sure URLs are encoded before sending them to camo [#7871](https://github.com/diaspora/diaspora/pull/7871)
## Features
* Add `web+diaspora://` link handler [#7826](https://github.com/diaspora/diaspora/pull/7826)
# 0.7.6.0
## Refactor
* Add unique index to poll participations on `poll_id` and `author_id` [#7798](https://github.com/diaspora/diaspora/pull/7798)
* Add 'completed at' date to account migrations [#7805](https://github.com/diaspora/diaspora/pull/7805)
* Handle duplicates for TagFollowing on account merging [#7807](https://github.com/diaspora/diaspora/pull/7807)
* Add link to the pod in the email footer [#7814](https://github.com/diaspora/diaspora/pull/7814)
## Bug fixes
* Fix compatibility with newer glibc versions [#7828](https://github.com/diaspora/diaspora/pull/7828)
* Allow fonts to be served from asset host in CSP [#7825](https://github.com/diaspora/diaspora/pull/7825)
## Features
* Support fetching StatusMessage by Poll GUID [#7815](https://github.com/diaspora/diaspora/pull/7815)
* Always include link to diaspora in facebook cross-posts [#7774](https://github.com/diaspora/diaspora/pull/7774)
# 0.7.5.0
## Refactor
* Remove the 'make contacts in this aspect visible to each other' option [#7769](https://github.com/diaspora/diaspora/pull/7769)
* Remove the requirement to have at least two users to disable the /podmin redirect [#7783](https://github.com/diaspora/diaspora/pull/7783)
* Randomize start times of daily Sidekiq-Cron jobs [#7787](https://github.com/diaspora/diaspora/pull/7787)
## Bug fixes
* Prefill conversation form on contacts page only with mutual contacts [#7744](https://github.com/diaspora/diaspora/pull/7744)
* Fix profiles sometimes not loading properly in background tabs [#7740](https://github.com/diaspora/diaspora/pull/7740)
* Show error message when creating posts with invalid aspects [#7742](https://github.com/diaspora/diaspora/pull/7742)
* Fix mention syntax backport for two immediately consecutive mentions [#7777](https://github.com/diaspora/diaspora/pull/7777)
* Fix link to 'make yourself an admin' [#7783](https://github.com/diaspora/diaspora/pull/7783)
* Fix calculation of content lengths when cross-posting to twitter [#7791](https://github.com/diaspora/diaspora/pull/7791)
## Features
* Make public stream accessible for logged out users [#7775](https://github.com/diaspora/diaspora/pull/7775)
* Add account-merging support when receiving an account migration [#7803](https://github.com/diaspora/diaspora/pull/7803)
# 0.7.4.1
Fixes a possible cross-site scripting issue with maliciously crafted OpenGraph metadata.
# 0.7.4.0
## Refactor
* Don't print a warning when starting the server outside a Git repo [#7712](https://github.com/diaspora/diaspora/pull/7712)
* Make script/server work on readonly filesystems [#7719](https://github.com/diaspora/diaspora/pull/7719)
* Add camo paths to the robots.txt [#7726](https://github.com/diaspora/diaspora/pull/7726)
## Bug fixes
* Prevent duplicate mention notifications when the post is received twice [#7721](https://github.com/diaspora/diaspora/pull/7721)
* Fixed a compatiblitiy issue with non-diaspora\* webfingers [#7718](https://github.com/diaspora/diaspora/pull/7718)
* Don't retry federation for accounts without a valid public key [#7717](https://github.com/diaspora/diaspora/pull/7717)
* Fix stream generation for tagged posts with many followed tags [#7715](https://github.com/diaspora/diaspora/pull/7715)
* Fix incomplete Occitan date localizations [#7731](https://github.com/diaspora/diaspora/pull/7731)
## Features
* Add basic html5 audio/video embedding support [#6418](https://github.com/diaspora/diaspora/pull/6418)
* Add the back-to-top button to all pages [#7729](https://github.com/diaspora/diaspora/pull/7729)
# 0.7.3.1
Re-updating the German translations to fix some UX issues that were introduced by recent translation efforts.
# 0.7.3.0
## Refactor

View File

@@ -1,6 +0,0 @@
web1: env RAILS_ENV=integration1 bundle exec rails s -p 3001
worker1: env RAILS_ENV=integration1 VVERBOSE=1 QUEUE=* bundle exec rake resque:work
redis1: env RAILS_ENV=integration1 redis-server ./redis-integration1.conf
web2: env RAILS_ENV=integration2 bundle exec rails s -p 3002
worker2: env RAILS_ENV=integration2 VVERBOSE=1 QUEUE=* bundle exec rake resque:work
redis2: env RAILS_ENV=integration2 redis-server ./redis-integration2.conf

261
Gemfile
View File

@@ -2,194 +2,167 @@
source "https://rubygems.org"
gem "rails", "5.1.4"
gem "rails", "6.1.7.8"
# needed for actionmailer, can be removed when upgrading to rails 7
gem "net-imap", require: false
gem "net-pop", require: false
gem "net-smtp", require: false
# Legacy Rails features, remove me!
# responders (class level)
gem "responders", "2.4.0"
gem "responders", "3.1.1"
# Appserver
gem "unicorn", "5.3.0", require: false
gem "unicorn-worker-killer", "0.4.4"
gem "puma", "6.4.2", require: false
# Federation
gem "diaspora_federation-json_schema", "0.2.3"
gem "diaspora_federation-rails", "0.2.3"
gem "diaspora_federation-json_schema", "1.1.0"
gem "diaspora_federation-rails", "1.1.0"
# API and JSON
gem "acts_as_api", "1.0.1"
gem "json", "2.1.0"
gem "json-schema", "2.8.0"
gem "json", "2.7.2"
gem "json-schema", "4.3.0"
gem "yajl-ruby", "1.4.3"
# Authentication
gem "devise", "4.3.0"
gem "devise", "4.9.4"
gem "devise_lastseenable", "0.0.6"
gem "devise-two-factor", "4.1.0"
gem "rqrcode", "2.2.0"
# Captcha
gem "simple_captcha2", "0.4.3", require: "simple_captcha"
gem "simple_captcha2", "0.5.0", require: "simple_captcha"
# Background processing
gem "sidekiq", "5.0.4"
gem "redis", "4.8.1"
gem "sidekiq", "6.5.12"
# Scheduled processing
gem "sidekiq-cron", "0.6.3"
gem "sidekiq-cron", "1.12.0"
# Compression
gem "uglifier", "3.2.0"
gem "terser", "1.2.2"
# Configuration
gem "configurate", "0.3.1"
gem "configurate", "0.6.0"
gem "toml-rb", "3.0.1"
# Cross-origin resource sharing
gem "rack-cors", "1.0.1", require: "rack/cors"
gem "rack-cors", "2.0.2", require: "rack/cors"
# CSS
gem "autoprefixer-rails", "7.1.4.1"
gem "bootstrap-sass", "3.3.7"
gem "bootstrap-switch-rails", "3.3.3"
gem "compass-rails", "3.0.2"
gem "sass-rails", "5.0.6"
gem "sprockets-rails", "3.2.1"
gem "autoprefixer-rails", "10.4.16.0"
gem "bootstrap-sass", "3.4.1"
gem "bootstrap-switch-rails", "3.3.3" # 3.3.4 and 3.3.5 is broken, see https://github.com/Bttstrp/bootstrap-switch/issues/691
gem "sassc-rails", "2.1.2"
gem "sprockets-rails", "3.4.2"
# Database
group :mysql, optional: true do
gem "mysql2", "0.4.9"
gem "mysql2", "0.5.6"
end
group :postgresql, optional: true do
gem "pg", "0.21.0"
gem "pg", "1.5.6"
end
gem "activerecord-import", "0.20.1"
gem "activerecord-import", "1.7.0"
# File uploading
gem "carrierwave", "1.1.0"
gem "fog-aws", "1.4.1"
gem "mini_magick", "4.8.0"
gem "carrierwave", "3.0.7"
gem "fog-aws", "3.22.0"
gem "mini_magick", "4.12.0"
# GUID generation
gem "uuid", "2.3.8"
# Icons
gem "entypo-rails", "3.0.0"
gem "uuid", "2.3.9"
# JavaScript
gem "handlebars_assets", "0.23.2"
gem "jquery-rails", "4.3.1"
gem "js-routes", "1.4.1"
gem "js_image_paths", "0.1.1"
source "https://rails-assets.org" do
gem "rails-assets-jquery", "3.2.1" # Should be kept in sync with jquery-rails
gem "rails-assets-jquery.ui", "1.11.4"
gem "rails-assets-highlightjs", "9.12.0"
gem "rails-assets-markdown-it", "8.4.0"
gem "rails-assets-markdown-it-hashtag", "0.4.0"
gem "rails-assets-markdown-it-diaspora-mention", "1.2.0"
gem "rails-assets-markdown-it-sanitizer", "0.4.3"
gem "rails-assets-markdown-it--markdown-it-for-inline", "0.1.1"
gem "rails-assets-markdown-it-sub", "1.0.0"
gem "rails-assets-markdown-it-sup", "1.0.0"
gem "rails-assets-backbone", "1.3.3"
gem "rails-assets-bootstrap-markdown", "2.10.0"
gem "rails-assets-corejs-typeahead", "1.1.1"
gem "rails-assets-fine-uploader", "5.13.0"
# jQuery plugins
gem "rails-assets-autosize", "4.0.0"
gem "rails-assets-blueimp-gallery", "2.27.0"
gem "rails-assets-jquery.are-you-sure", "1.9.0"
gem "rails-assets-jquery-placeholder", "2.3.1"
gem "rails-assets-jquery-textchange", "0.2.3"
gem "rails-assets-perfect-scrollbar", "0.6.16"
end
gem "babel-transpiler", "0.7.0"
gem "handlebars_assets", "0.23.9"
gem "jquery-rails", "4.6.0"
gem "jquery-ui-rails", "7.0.0"
gem "js_image_paths", "0.2.0"
gem "js-routes", "2.2.8"
# Localization
gem "http_accept_language", "2.1.1"
gem "i18n-inflector-rails", "1.0.7"
gem "rails-i18n", "5.0.4"
# Mail
gem "markerb", "1.1.0"
gem "rails-i18n", "7.0.9"
# Map
gem "leaflet-rails", "1.2.0"
gem "leaflet-rails", "1.9.4"
# Parsing
gem "nokogiri", "1.8.2"
gem "open_graph_reader", "0.6.2" # also update User-Agent in features/support/webmock.rb
gem "redcarpet", "3.4.0"
gem "ruby-oembed", "0.12.0"
gem "twitter-text", "1.14.7"
gem "nokogiri", "1.16.5"
gem "open_graph_reader", "0.9.1" # also update User-Agent in features/support/webmock.rb and open_graph_cache_spec.rb
gem "redcarpet", "3.6.0"
gem "ruby-oembed", "0.17.0"
gem "twitter-text", "3.1.0"
# Rate limitting
gem "rack-attack", "6.7.0"
# RTL support
gem "string-direction", "1.2.0"
gem "string-direction", "1.2.2"
# Security Headers
gem "secure_headers", "3.7.1"
gem "secure_headers", "6.5.0"
# Services
gem "omniauth", "1.6.1"
gem "omniauth-facebook", "4.0.0"
gem "omniauth-tumblr", "1.2"
gem "omniauth-twitter", "1.4.0"
gem "twitter", "6.1.0"
gem "omniauth-wordpress", "0.2.2"
gem "omniauth", "2.1.2"
gem "omniauth-rails_csrf_protection", "1.0.2"
gem "omniauth-tumblr", "1.2"
gem "omniauth-twitter", "1.4.0"
gem "omniauth-wordpress", "0.2.2"
gem "twitter", "8.0.0"
# OpenID Connect
gem "openid_connect", "1.1.3"
gem "openid_connect", "2.3.0"
# Serializers
gem "active_model_serializers", "0.9.7"
# XMPP chat dependencies
gem "diaspora-prosody-config", "0.0.7"
gem "rails-assets-diaspora_jsxc", "0.1.5.develop.7", source: "https://rails-assets.org"
gem "active_model_serializers", "0.9.12"
# Tags
gem "acts-as-taggable-on", "5.0.0"
gem "acts-as-taggable-on", "10.0.0"
# URIs and HTTP
gem "addressable", "2.5.2", require: "addressable/uri"
gem "faraday", "0.11.0" # also update User-Agent in OpenID specs
gem "faraday_middleware", "0.12.2"
gem "faraday-cookie_jar", "0.0.6"
gem "typhoeus", "1.3.0"
gem "addressable", "2.8.6", require: "addressable/uri"
gem "faraday", "2.9.0"
gem "faraday-cookie_jar", "0.0.7"
gem "faraday-follow_redirects", "0.3.0"
gem "faraday-typhoeus", "1.1.0", require: false
gem "typhoeus", "1.4.1"
# Views
gem "gon", "6.1.0"
gem "hamlit", "2.8.4"
gem "gon", "6.4.0"
gem "hamlit", "3.0.3"
gem "mobile-fu", "1.4.0"
gem "rails-timeago", "2.16.0"
gem "will_paginate", "3.1.6"
gem "rails-timeago", "2.20.0"
gem "will_paginate", "4.0.0"
# Logging
@@ -197,23 +170,16 @@ gem "logging-rails", "0.6.0", require: "logging/rails"
# Reading and writing zip files
gem "rubyzip", "1.2.1", require: "zip"
gem "rubyzip", "2.3.2", require: "zip"
# Prevent occasions where minitest is not bundled in
# packaged versions of ruby. See following issues/prs:
# https://github.com/gitlabhq/gitlabhq/issues/3826
# https://github.com/gitlabhq/gitlabhq/pull/3852
# https://github.com/discourse/discourse/pull/238
gem "minitest"
gem "minitest", "5.23.1"
gem "versionist", "1.6.0"
# Windows and OSX have an execjs compatible runtime built-in, Linux users should
# install Node.js or use "therubyracer".
#
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem "therubyracer", :platform => :ruby
gem "versionist", "2.0.1"
group :production do # we don"t install these on travis to speed up test runs
# Analytics
@@ -223,7 +189,7 @@ group :production do # we don"t install these on travis to speed up test runs
# Process management
gem "eye", "0.9.2"
gem "foreman", "0.88.1", require: false
# Redirects
@@ -232,85 +198,72 @@ group :production do # we don"t install these on travis to speed up test runs
# Third party asset hosting
gem "asset_sync", "2.2.0", require: false
gem "asset_sync", "2.19.1", require: false
end
group :development do
# Automatic test runs
gem "guard", "2.14.1", require: false
gem "guard-cucumber", "2.1.2", require: false
gem "guard-rspec", "4.7.3", require: false
gem "guard-rubocop", "1.3.0", require: false
gem "rb-fsevent", "0.10.2", require: false
gem "rb-inotify", "0.9.10", require: false
# Linters
gem "haml_lint", "0.26.0", require: false
gem "pronto", "0.9.5", require: false
gem "pronto-eslint", "0.9.1", require: false
gem "pronto-haml", "0.9.0", require: false
gem "pronto-rubocop", "0.9.0", require: false
gem "pronto-scss", "0.9.1", require: false
gem "rubocop", "0.50.0", require: false
gem "haml_lint", "0.58.0", require: false
gem "pronto", "0.11.2", require: false
gem "pronto-eslint", "0.11.1", require: false
gem "pronto-haml", "0.11.1", require: false
gem "pronto-rubocop", "0.11.5", require: false
gem "pronto-scss", "0.11.0", require: false
gem "rubocop", "1.64.0", require: false
gem "rubocop-rails", "2.25.0", require: false
# Preloading environment
gem "spring", "2.0.2"
gem "spring-commands-rspec", "1.0.4"
gem "spring-commands-cucumber", "1.0.1"
gem "faraday-retry", require: false # used by pronto/octokit
# Debugging
gem "pry"
gem "pry-byebug"
# test coverage
gem "simplecov", "0.14.1", require: false
gem "simplecov", "0.22.0", require: false
gem "turbo_dev_assets", "0.0.2"
gem "listen", "3.9.0"
end
group :test do
# RSpec (unit tests, some integration tests)
gem "fixture_builder", "0.5.0"
gem "fuubar", "2.2.0"
gem "json-schema-rspec", "0.0.4"
gem "fixture_builder", "0.5.2"
gem "fuubar", "2.5.1"
gem "rspec-json_expectations", "~> 2.1"
# Cucumber (integration tests)
gem "capybara", "2.15.1"
gem "database_cleaner", "1.6.1"
gem "poltergeist", "1.16.0"
gem "capybara", "3.40.0"
gem "cuprite", "0.15"
gem "database_cleaner-active_record", "2.1.0"
gem "cucumber-api-steps", "0.13", require: false
gem "cucumber-api-steps", "0.14", require: false
# General helpers
gem "factory_girl_rails", "4.8.0"
gem "shoulda-matchers", "3.1.2"
gem "timecop", "0.9.1"
gem "webmock", "3.0.1", require: false
gem "factory_bot_rails", "6.4.3"
gem "shoulda-matchers", "6.2.0"
gem "timecop", "0.9.8"
gem "webmock", "3.23.1", require: false
gem "diaspora_federation-test", "0.2.3"
# Coverage
gem "coveralls", "0.8.21", require: false
gem "diaspora_federation-test", "1.1.0"
end
group :development, :test do
# RSpec (unit tests, some integration tests)
gem "rspec-rails", "3.6.1"
gem "rspec-rails", "6.1.2"
# Cucumber (integration tests)
gem "cucumber-rails", "1.5.0", require: false
gem "cucumber-rails", "3.0.0", require: false
# Jasmine (client side application tests (JS))
gem "jasmine", "2.8.0"
gem "chrome_remote", "0.3.0"
gem "jasmine", "3.10.0"
gem "jasmine-jquery-rails", "2.0.3"
gem "rails-assets-jasmine-ajax", "3.3.1", source: "https://rails-assets.org"
gem "sinon-rails", "1.15.0"
# For `assigns` in controller specs
gem "rails-controller-testing", "1.0.2"
gem "rails-controller-testing", "1.0.5"
end

File diff suppressed because it is too large Load Diff

View File

@@ -1,40 +0,0 @@
# frozen_string_literal: true
guard :rspec, cmd: "bin/spring rspec", all_on_start: false, all_after_pass: false do
watch(/^spec\/.+_spec\.rb$/)
watch(/^lib\/(.+)\.rb$/) {|m| "spec/lib/#{m[1]}_spec.rb" }
watch(/spec\/spec_helper.rb/) { "spec" }
# Rails example
watch(/^spec\/.+_spec\.rb$/)
watch(/^app\/(.+)\.rb$/) {|m| "spec/#{m[1]}_spec.rb" }
watch(/^lib\/(.+)\.rb$/) {|m| "spec/lib/#{m[1]}_spec.rb" }
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) {|m|
["spec/routing/#{m[1]}_routing_spec.rb",
"spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb",
"spec/acceptance/#{m[1]}_spec.rb"]
}
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
watch("spec/spec_helper.rb") { "spec" }
watch("config/routes.rb") { "spec/routing" }
watch("app/controllers/application_controller.rb") { "spec/controllers" }
# Capybara request specs
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) {|m| "spec/requests/#{m[1]}_spec.rb" }
end
guard(:cucumber,
cmd: "bin/spring cucumber",
all_on_start: false,
all_after_pass: false) do
watch(/^features\/.+\.feature$/)
watch(%r{^features/support/.+$}) { "features" }
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) {|m|
Dir[File.join("**/#{m[1]}.feature")][0] || "features"
}
end
guard :rubocop, all_on_start: false, keep_failed: false do
watch(/(?:app|config|db|lib|features|spec)\/.+\.rb$/)
watch(/(config.ru|Gemfile|Guardfile|Rakefile)$/)
end

View File

@@ -1,2 +1,2 @@
web: bin/bundle exec unicorn -c config/unicorn.rb -p $PORT
web: bin/puma -C config/puma.rb
sidekiq: bin/bundle exec sidekiq

View File

@@ -1,14 +1,6 @@
# diaspora*
# diaspora\*
### A privacy-aware, distributed, open source social network
**master:** [![Build Status master](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=master)](http://travis-ci.org/diaspora/diaspora)
**next-minor:** [![Build Status next-minor](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=next-minor)](http://travis-ci.org/diaspora/diaspora)
[![Coverage Status next-minor](https://coveralls.io/repos/github/diaspora/diaspora/badge.svg?branch=next-minor)](https://coveralls.io/github/diaspora/diaspora?branch=next-minor)|
**develop:** [![Build Status develop](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=develop)](http://travis-ci.org/diaspora/diaspora)
[![Coverage Status develop](https://coveralls.io/repos/github/diaspora/diaspora/badge.svg?branch=develop)](https://coveralls.io/github/diaspora/diaspora?branch=develop) |
[![Dependency Status](https://gemnasium.com/badges/github.com/diaspora/diaspora.svg)](https://gemnasium.com/diaspora/diaspora)
[![Code Climate](https://codeclimate.com/github/diaspora/diaspora/badges/gpa.svg)](https://codeclimate.com/github/diaspora/diaspora)
[Project site](https://diasporafoundation.org) |
[Wiki](https://wiki.diasporafoundation.org) |
[Bugtracker](https://github.com/diaspora/diaspora/issues) |
@@ -18,9 +10,9 @@
## Installation
You don't have to install diaspora* to use the network. There are many servers connected to diaspora*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](http://podupti.me) to sign up.
You don't have to install diaspora\* to use the network. There are many servers connected to diaspora\*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](https://diaspora.fediverse.observer) to sign up.
Want to own your data and install diaspora*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!
Want to own your data and install diaspora\*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!
## Questions?
@@ -36,4 +28,4 @@ Everyone interacting in diasporas codebases, issue trackers, chat rooms, the
## Security
Found a security issue? Please disclose it responsibly. We have a team of developers listening to [security@diasporafoundation.org](mailto:security@diasporafoundation.org). The PGP fingerprint is [AB0D AB02 0FC5 D398 03AB 3CE1 6F70 243F 27AD 886A](https://pgp.mit.edu/pks/lookup?op=get&search=0x6F70243F27AD886A).
See [`SECURITY.md`](/SECURITY.md) for instructions on how to responsibly report a security vulnerability.

9
SECURITY.md Normal file
View File

@@ -0,0 +1,9 @@
# Security Policy
## Supported Versions
We support the latest stable release, as well as the current state of the `next-minor` and `develop` branches. Security issues for older releases are out of scope.
## Reporting a Vulnerability
Found a security issue? Please disclose it responsibly. We have a team of developers listening to [security@diasporafoundation.org](mailto:security@diasporafoundation.org). The PGP fingerprint is [AB0D AB02 0FC5 D398 03AB 3CE1 6F70 243F 27AD 886A](https://pgp.mit.edu/pks/lookup?op=get&search=0x6F70243F27AD886A).

View File

@@ -1,12 +1,13 @@
//= link_tree ../images
//= link main.js
//= link mobile/mobile.js
//= link contact-list.js
//= link jquery3.js
//= link jquery_ujs.js
//= link main.js
//= link jsxc.js
//= link bookmarklet.js
//= link mobile/bookmarklet.js
//= link mobile/mobile.js
//= link templates.js
//= link error_pages.css
//= link admin.css
//= link error_pages.css
//= link rtl.css

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -14,7 +14,7 @@
//= require_tree ./collections
//= require_tree ./views
//= require perfect-scrollbar/perfect-scrollbar.jquery
//= require perfect-scrollbar/dist/perfect-scrollbar
var app = {
collections: {},

View File

@@ -12,12 +12,17 @@ app.collections.Comments = Backbone.Collection.extend({
make : function(text) {
var self = this;
var comment = new app.models.Comment({ "text": text });
var comment = new app.models.Comment({"text": text}, {post: this.post});
var deferred = comment.save({}, {
url: "/posts/"+ this.post.id +"/comments",
success: function() {
comment.set({author: app.currentUser.toJSON(), parent: self.post });
// Need interactions after make
comment.interactions = new app.models.LikeInteractions(
_.extend({comment: comment, post: self.post}, comment.get("interactions"))
);
self.add(comment);
}
});

View File

@@ -4,7 +4,11 @@ app.collections.Likes = Backbone.Collection.extend({
model: app.models.Like,
initialize : function(models, options) {
this.url = "/posts/" + options.post.id + "/likes"; //not delegating to post.url() because when it is in a stream collection it delegates to that url
// A comment- like has a post reference and a comment reference
this.url = (options.comment != null) ?
// not delegating to post.url() because when it is in a stream collection it delegates to that url
"/comments/" + options.comment.id + "/likes" :
"/posts/" + options.post.id + "/likes";
}
});
// @license-end

View File

@@ -44,7 +44,7 @@ Handlebars.registerHelper('linkToPerson', function(context, block) {
// relationship indicator for profile page
Handlebars.registerHelper("sharingMessage", function(person) {
var i18nScope = "people.helper.is_not_sharing";
var icon = "circle";
var icon = "entypo-record";
if( person.is_sharing ) {
i18nScope = "people.helper.is_sharing";
icon = "entypo-check";

View File

@@ -1,7 +1,4 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
/* we need to wrap this in a document ready to ensure JST is accessible */
$(function(){
Handlebars.registerPartial('status-message', HandlebarsTemplates['status-message_tpl']);
});
Handlebars.registerPartial("status-message", HandlebarsTemplates["status-message_tpl"]);
// @license-end

View File

@@ -1,25 +1,23 @@
(function() {
app.helpers.locations = {
getTiles: function() {
// If the mapbox option is enabled in the diaspora.yml, the mapbox tiles with the podmin's credentials are used.
// If the mapbox option is enabled in the diaspora.toml, the mapbox tiles with the podmin's credentials are used.
if (gon.appConfig.map.mapbox.enabled) {
return L.tileLayer("https://api.mapbox.com/styles/v1/{style}/tiles/256/{z}/{x}/{y}?access_token={accessToken}", {
accessToken: gon.appConfig.map.mapbox.access_token,
style: gon.appConfig.map.mapbox.style,
attribution: "Map data &copy; <a href='http://openstreetmap.org'>OpenStreetMap</a> contributors, " +
"<a href='http://creativecommons.org/licenses/by-sa/2.0/''>CC-BY-SA</a>, " +
"Imagery © <a href='https://www.mapbox.com'>Mapbox</a>",
maxZoom: 18
});
return L.tileLayer(
"https://api.mapbox.com/styles/v1/{style}/tiles/256/{z}/{x}/{y}?access_token={accessToken}",
{
accessToken: gon.appConfig.map.mapbox.access_token,
style: gon.appConfig.map.mapbox.style,
attribution:
"Map data &copy; <a href='https://openstreetmap.org'>OpenStreetMap</a> contributors, " +
"<a href='http://opendatacommons.org/licenses/dbcl/1.0/'>Open Database License, ODbL 1.0</a>, " +
"Imagery © <a href='https://www.mapbox.com'>Mapbox</a>",
maxZoom: 18,
tileSize: 512,
zoomOffset: -1
}
);
}
// maptiles from the Heidelberg University are used by default.
return L.tileLayer("http://korona.geog.uni-heidelberg.de/tiles/roads/x={x}&y={y}&z={z}", {
attribution: "Map data &copy; <a href='http://openstreetmap.org'>OpenStreetMap</a> contributors, " +
"rendering <a href='http://giscience.uni-hd.de/'>" +
"GIScience Research Group @ Heidelberg University</a>",
maxZoom: 18
});
}
};
})();

View File

@@ -1,6 +1,11 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
(function(){
app.helpers.allowedEmbedsMime = function(mimetype) {
var v = document.createElement(mimetype[1]);
return v.canPlayType && v.canPlayType(mimetype[0]) !== "";
};
app.helpers.textFormatter = function(text, mentions) {
mentions = mentions ? mentions : [];
@@ -11,6 +16,9 @@
typographer: true
});
var footnote = window.markdownitFootnote;
md.use(footnote);
var inlinePlugin = window.markdownitForInline;
md.use(inlinePlugin, "utf8_symbols", "text", function (tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/<->/g, "↔")
@@ -35,7 +43,7 @@
var hashtagPlugin = window.markdownitHashtag;
md.use(hashtagPlugin, {
// compare tag_text_regexp in app/models/acts_as_taggable_on-tag.rb
// compare tag_text_regexp in config/initializers/acts_as_taggable_on.rb
hashtagRegExp: "[" + PosixBracketExpressions.word +
"\\u055b" + // Armenian emphasis mark
"\\u055c" + // Armenian exclamation mark
@@ -83,6 +91,30 @@
// Bootstrap table markup
md.renderer.rules.table_open = function () { return "<table class=\"table table-striped\">\n"; };
var html5medialPlugin = window.markdownitHTML5Embed;
md.use(html5medialPlugin, {html5embed: {
inline: false,
autoAppend: true,
renderFn: function handleBarsRenderFn(parsed, mediaAttributes) {
var attributes = mediaAttributes[parsed.mediaType];
return HandlebarsTemplates["media-embed_tpl"]({
mediaType: parsed.mediaType,
attributes: attributes,
mimetype: parsed.mimeType,
sourceURL: parsed.url,
title: parsed.title,
fallback: parsed.fallback,
needsCover: parsed.mediaType === "video"
});
},
attributes: {
"audio": "controls preload=none",
"video": "preload=none"
},
isAllowedMimeType: app.helpers.allowedEmbedsMime
}});
return md.render(text);
};
})();

View File

@@ -1,14 +1,11 @@
(function() {
app.helpers.truncate = function(passedString, length) {
if (passedString === null || passedString === undefined) {
if (passedString === null || passedString === undefined || passedString.length < length) {
return passedString;
}
if (passedString.length > length) {
var lastBlank = passedString.lastIndexOf(' ', length);
var trimstring = passedString.substring(0, Math.min(length, lastBlank));
return new Handlebars.SafeString(trimstring + " ...");
}
return new Handlebars.SafeString(passedString);
var lastBlank = passedString.lastIndexOf(" ", length);
var trimstring = passedString.substring(0, Math.min(length, lastBlank));
return trimstring + " ...";
};
})();

View File

@@ -1,6 +1,17 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
app.models.Comment = Backbone.Model.extend({
urlRoot: "/comments"
urlRoot: "/comments",
initialize: function(model, options) {
options = options || {};
this.post = model.post || options.post || this.collection.post;
this.interactions = new app.models.LikeInteractions(
_.extend({comment: this, post: this.post}, this.get("interactions"))
);
this.likes = this.interactions.likes;
this.likesCount = this.attributes.likes_count;
this.userLike = this.interactions.userLike();
}
});
// @license-end

View File

@@ -0,0 +1,58 @@
// This class contains code extracted from interactions.js to factorize likes management between posts and comments
app.models.LikeInteractions = Backbone.Model.extend({
initialize: function(options) {
this.likes = new app.collections.Likes(this.get("likes"), options);
this.post = options.post;
},
likesCount: function() {
return this.get("likes_count");
},
userLike: function() {
return this.likes.select(function(like) {
return like.get("author") && like.get("author").guid === app.currentUser.get("guid");
})[0];
},
toggleLike: function() {
if (this.userLike()) {
this.unlike();
} else {
this.like();
}
},
like: function() {
var self = this;
this.likes.create({}, {
success: function() {
self.post.set({participation: true});
self.trigger("change");
self.set({"likes_count": self.get("likes_count") + 1});
self.likes.trigger("change");
},
error: function(model, response) {
app.flashMessages.handleAjaxError(response);
}
});
},
unlike: function() {
var self = this;
this.userLike().destroy({
success: function() {
// TODO: unlike always sets participation to false in the UI, even if there are more participations left
// in the backend (from manually participating, other likes or comments)
self.post.set({participation: false});
self.trigger("change");
self.set({"likes_count": self.get("likes_count") - 1});
self.likes.trigger("change");
},
error: function(model, response) {
app.flashMessages.handleAjaxError(response);
}});
}
});

View File

@@ -4,7 +4,7 @@ app.models.Post = Backbone.Model.extend(_.extend({}, app.models.formatDateMixin,
urlRoot : "/posts",
initialize : function() {
this.interactions = new app.models.Post.Interactions(_.extend({post : this}, this.get("interactions")));
this.interactions = new app.models.PostInteractions(_.extend({post: this}, this.get("interactions")));
this.delegateToInteractions();
},

View File

@@ -1,71 +1,27 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
//require ../post
app.models.Post.Interactions = Backbone.Model.extend({
initialize : function(options){
app.models.PostInteractions = app.models.LikeInteractions.extend({
initialize: function(options) {
app.models.LikeInteractions.prototype.initialize.apply(this, arguments);
this.post = options.post;
this.comments = new app.collections.Comments(this.get("comments"), {post : this.post});
this.likes = new app.collections.Likes(this.get("likes"), {post : this.post});
this.reshares = new app.collections.Reshares(this.get("reshares"), {post : this.post});
this.comments = new app.collections.Comments(this.get("comments"), {post: this.post});
this.reshares = new app.collections.Reshares(this.get("reshares"), {post: this.post});
},
likesCount : function(){
return this.get("likes_count");
},
resharesCount : function(){
resharesCount: function() {
return this.get("reshares_count");
},
commentsCount : function(){
commentsCount: function() {
return this.get("comments_count");
},
userLike : function(){
return this.likes.select(function(like){
return like.get("author") && like.get("author").guid === app.currentUser.get("guid");
})[0];
},
userReshare : function(){
userReshare: function() {
return this.reshares.select(function(reshare){
return reshare.get("author") && reshare.get("author").guid === app.currentUser.get("guid");
})[0];
},
toggleLike : function() {
if(this.userLike()) {
this.unlike();
} else {
this.like();
}
},
like : function() {
var self = this;
this.likes.create({}, {
success: function() {
self.post.set({participation: true});
self.trigger("change");
self.set({"likes_count" : self.get("likes_count") + 1});
self.likes.trigger("change");
},
error: function(model, response) {
app.flashMessages.handleAjaxError(response);
}
});
},
unlike : function() {
var self = this;
this.userLike().destroy({success : function() {
self.trigger('change');
self.set({"likes_count" : self.get("likes_count") - 1});
self.likes.trigger("change");
}});
},
comment: function(text, options) {
var self = this;
options = options || {};
@@ -81,6 +37,10 @@ app.models.Post.Interactions = Backbone.Model.extend({
});
},
removedComment: function() {
this.set({"comments_count": this.get("comments_count") - 1});
},
reshare : function(){
var interactions = this;
@@ -101,7 +61,7 @@ app.models.Post.Interactions = Backbone.Model.extend({
});
},
userCanReshare : function(){
userCanReshare: function() {
var isReshare = this.post.get("post_type") === "Reshare"
, rootExists = (isReshare ? this.post.get("root") : true)
, publicPost = this.post.get("public")

View File

@@ -69,7 +69,7 @@ app.models.Stream = Backbone.Collection.extend({
},
sortOrder : function() {
return /activity/.test(this.basePath()) ? "interactedAt" : "createdAt";
return /^\/activity/.test(this.basePath()) ? "interactedAt" : "createdAt";
},
/* This function is for adding a large number of posts one by one.

View File

@@ -29,6 +29,25 @@ app.pages.AdminPods = app.views.Base.extend({
_showMessages: function() {
var msgs = document.createDocumentFragment();
if (gon.totalCount && gon.totalCount > 0) {
let totalPods = $("<div class='alert alert-info' role='alert' />")
.append(Diaspora.I18n.t("admin.pods.total", {count: gon.totalCount}));
if (gon.activeCount) {
if (gon.activeCount === 0) {
totalPods
.append(" " + Diaspora.I18n.t("admin.pods.none_active"));
}
if (gon.activeCount === gon.totalCount) {
totalPods
.append(" " + Diaspora.I18n.t("admin.pods.all_active"));
} else {
totalPods
.append(" " + Diaspora.I18n.t("admin.pods.active", {count: gon.activeCount}));
}
}
msgs.appendChild(totalPods[0]);
}
if( gon.uncheckedCount && gon.uncheckedCount > 0 ) {
var unchecked = $("<div class='alert alert-info' role='alert' />")
.append(Diaspora.I18n.t("admin.pods.unchecked", {count: gon.uncheckedCount}));

View File

@@ -5,16 +5,12 @@ app.pages.Contacts = Backbone.View.extend({
el: "#contacts_container",
events: {
"click #contacts_visibility_toggle" : "toggleContactVisibility",
"click #chat_privilege_toggle" : "toggleChatPrivilege",
"click #change_aspect_name" : "showAspectNameForm",
"click .conversation_button": "showMessageModal",
"click .invitations-button": "showInvitationsModal"
},
initialize: function(opts) {
this.visibilityToggle = $("#contacts_visibility_toggle i");
this.chatToggle = $("#chat_privilege_toggle i");
this.stream = opts.stream;
this.stream.render();
$("#people-stream.contacts .header i").tooltip({"placement": "bottom"});
@@ -29,41 +25,6 @@ app.pages.Contacts = Backbone.View.extend({
this.setupAspectSorting();
},
toggleChatPrivilege: function() {
if (this.chatToggle.hasClass("enabled")) {
this.chatToggle.tooltip("destroy")
.removeClass("enabled")
.removeAttr("data-original-title")
.attr("title", Diaspora.I18n.t("contacts.aspect_chat_is_not_enabled"))
.tooltip({"placement": "bottom"});
} else {
this.chatToggle.tooltip("destroy")
.addClass("enabled")
.removeAttr("data-original-title")
.attr("title", Diaspora.I18n.t("contacts.aspect_chat_is_enabled"))
.tooltip({"placement": "bottom"});
}
},
toggleContactVisibility: function() {
if (this.visibilityToggle.hasClass("entypo-lock-open")) {
this.visibilityToggle.removeClass("entypo-lock-open")
.addClass("entypo-lock")
.tooltip("destroy")
.removeAttr("data-original-title")
.attr("title", Diaspora.I18n.t("contacts.aspect_list_is_not_visible"))
.tooltip({"placement": "bottom"});
}
else {
this.visibilityToggle.removeClass("entypo-lock")
.addClass("entypo-lock-open")
.tooltip("destroy")
.removeAttr("data-original-title")
.attr("title", Diaspora.I18n.t("contacts.aspect_list_is_visible"))
.tooltip({"placement": "bottom"});
}
},
showAspectNameForm: function() {
$(".header > h3").hide();
var aspectName = $.trim($(".header h3 #aspect_name").text());
@@ -81,7 +42,7 @@ app.pages.Contacts = Backbone.View.extend({
showMessageModal: function(){
$("#conversationModal").on("modal:loaded", function() {
var people = _.pluck(app.contacts.filter(function(contact) {
return contact.inAspect(app.aspect.get("id"));
return contact.person.get("relationship") === "mutual" && contact.inAspect(app.aspect.get("id"));
}), "person");
new app.views.ConversationsForm({prefill: people});
});

View File

@@ -24,9 +24,6 @@ app.pages.Profile = app.views.Base.extend({
if (app.hasPreload("photos_count")) {
this.photos = app.parsePreload("photos_count");
}
if (app.hasPreload("contacts_count")) {
this.contacts = app.parsePreload("contacts_count");
}
this.streamCollection = _.has(opts, "streamCollection") ? opts.streamCollection : null;
this.streamViewClass = _.has(opts, "streamView") ? opts.streamView : null;
@@ -70,7 +67,6 @@ app.pages.Profile = app.views.Base.extend({
return new app.views.ProfileHeader({
model: this.model,
photos: this.photos,
contacts: this.contacts
});
},

View File

@@ -1,10 +0,0 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
app.pages.Registration = Backbone.View.extend({
initialize: function() {
$("input#user_email").popover({
placement: "left",
trigger: "focus"
}).popover("show");
}
});
// @license-end

View File

@@ -15,6 +15,10 @@ app.pages.Settings = Backbone.View.extend({
form: $("#post-default-aspects")
});
$("#update_profile_form").areYouSure();
$("#register-protocol-handler").click(function() {
Diaspora.ProtocolHandler.register();
});
}
});
// @license-end

View File

@@ -3,23 +3,23 @@
app.pages.SinglePostViewer = app.views.Base.extend({
templateName: "single-post-viewer",
subviews : {
"#single-post-content" : "singlePostContentView",
'#single-post-interactions' : 'singlePostInteractionsView'
subviews: {
"#single-post-content": "singlePostContentView",
"#single-post-interactions": "singlePostInteractionsView"
},
initialize : function() {
initialize: function() {
this.model = new app.models.Post(gon.post);
this.initViews();
},
initViews : function() {
initViews: function() {
this.singlePostContentView = new app.views.SinglePostContent({model: this.model});
this.singlePostInteractionsView = new app.views.SinglePostInteractions({model: this.model});
this.render();
},
postRenderTemplate : function() {
postRenderTemplate: function() {
if(this.model.get("title")){
// formats title to html...
var html_title = app.helpers.textFormatter(this.model.get("title"), this.model.get("mentioned_people"));

View File

@@ -20,11 +20,11 @@ app.Router = Backbone.Router.extend({
"p/:id(/)": "singlePost",
"people(/)": "peopleSearch",
"people/:id(/)": "profile",
"people/:id/contacts(/)": "profile",
"people/:id/photos(/)": "photos",
"posts/:id(/)": "singlePost",
"profile/edit(/)": "settings",
"public(/)": "stream",
"local_public(/)": "stream",
"stream(/)": "stream",
"tags/:name(/)": "followed_tags",
"u/:name(/)": "profile",
@@ -173,10 +173,6 @@ app.Router = Backbone.Router.extend({
});
},
registration: function() {
app.page = new app.pages.Registration();
},
settings: function() {
app.page = new app.pages.Settings();
},

View File

@@ -4,6 +4,7 @@ app.views.Base = Backbone.View.extend({
initialize : function() {
this.setupRenderEvents();
this.setupReport();
},
presenter : function(){
@@ -102,22 +103,25 @@ app.views.Base = Backbone.View.extend({
this.model.set(_.inject(this.formAttrs, _.bind(setValueFromField, this), {}));
},
report: function(evt) {
if(evt) { evt.preventDefault(); }
var msg = prompt(Diaspora.I18n.t('report.prompt'), Diaspora.I18n.t('report.prompt_default'));
if (msg == null) {
return;
setupReport: function() {
const reportForm = document.getElementById("report-content-form");
if (reportForm) {
reportForm.addEventListener("submit", this.onSubmitReport);
}
var data = {
report: {
item_id: this.model.id,
item_type: $(evt.currentTarget).data("type"),
text: msg
}
},
onSubmitReport: function(ev) {
if (ev) { ev.preventDefault(); }
const form = ev.currentTarget;
$("#reportModal").modal("hide");
const textarea = document.getElementById("report-reason-field");
const report = {
item_id: form.dataset.reportId,
item_type: form.dataset.reportType,
text: textarea.value
};
var report = new app.models.Report();
report.save(data, {
new app.models.Report().save({report: report}, {
success: function() {
app.flashMessages.success(Diaspora.I18n.t("report.status.created"));
},
@@ -127,11 +131,21 @@ app.views.Base = Backbone.View.extend({
});
},
report: function(evt) {
if (evt) { evt.preventDefault(); }
const form = document.getElementById("report-content-form");
form.dataset.reportId = this.model.id;
form.dataset.reportType = evt.currentTarget.dataset.type;
document.getElementById("report-reason-field").value = "";
document.getElementById("report-reason-field").focus();
$("#reportModal").modal();
},
destroyConfirmMsg: function() { return Diaspora.I18n.t("confirm_dialog"); },
destroyModel: function(evt) {
evt && evt.preventDefault();
var url = this.model.urlRoot + "/" + this.model.id;
const url = this.model.urlRoot + "/" + this.model.id;
if( confirm(_.result(this, "destroyConfirmMsg")) ) {
this.$el.addClass("deleting");

View File

@@ -21,10 +21,6 @@ app.views.AspectCreate = app.views.Base.extend({
});
},
_contactsVisible: function() {
return this.$("#aspect_contacts_visible").is(":checked");
},
_name: function() {
return this.$("#aspect_name").val();
},
@@ -71,8 +67,7 @@ app.views.AspectCreate = app.views.Base.extend({
app.aspects.create({
"person_id": this._personId || null,
"name": this._name(),
"contacts_visible": this._contactsVisible()
"name": this._name()
});
},

View File

@@ -16,10 +16,8 @@ app.views.AspectMembership = app.views.Base.extend({
},
events: {
"click ul.aspect_membership.dropdown-menu > li.aspect_selector"
: "_clickHandler",
"keypress ul.aspect_membership.dropdown-menu > li.aspect_selector"
: "_clickHandler"
"click ul.aspect-membership.dropdown-menu > li.aspect_selector": "_clickHandler",
"keypress ul.aspect-membership.dropdown-menu > li.aspect_selector": "_clickHandler"
},
initialize: function(opts) {

View File

@@ -27,16 +27,14 @@ app.views.AspectsDropdown = app.views.Base.extend({
},
// change class and text of the dropdown button
_updateButton: function(inAspectClass) {
var button = this.$('.btn.dropdown-toggle'),
_updateButton: function() {
let button = this.$(".btn.dropdown-toggle"),
selectedAspects = this.$(".dropdown-menu > li.selected").length,
buttonText;
if (selectedAspects === 0) {
button.removeClass(inAspectClass).addClass('btn-default');
buttonText = Diaspora.I18n.t("aspect_dropdown.select_aspects");
} else {
button.removeClass('btn-default').addClass(inAspectClass);
if (selectedAspects === 1) {
buttonText = this.$(".dropdown-menu > li.selected .text").first().text();
} else {

View File

@@ -12,7 +12,7 @@ app.views.BackToTop = Backbone.View.extend({
backToTop: function(evt) {
evt.preventDefault();
$("html, body").animate({scrollTop: 0});
$("html, body").animate({scrollTop: 0}, this.toggleVisibility);
},
toggleVisibility: function() {

View File

@@ -135,7 +135,10 @@ app.views.CommentStream = app.views.Base.extend({
},
removeComment: function(comment) {
this.$("#" + comment.get("guid")).closest(".comment.media").remove();
var result = this.$("#" + comment.get("guid")).closest(".comment.media").remove();
if (result.hasClass("deleting")) {
this.model.interactions.removedComment();
}
},
expandComments: function(evt){

View File

@@ -6,40 +6,58 @@ app.views.Comment = app.views.Content.extend({
className : "comment media",
tooltipSelector: "time",
events : function() {
subviews: {
".likes-on-comment": "likesInfoView"
},
events: function() {
return _.extend({}, app.views.Content.prototype.events, {
"click .comment_delete": "destroyModel",
"click .comment_report": "report"
"click .comment_report": "report",
"click .like": "toggleLike"
});
},
initialize : function(options){
initialize: function(options) {
this.templateName = options.templateName || this.templateName;
this.model.interactions.on("change", this.render, this);
this.model.on("change", this.render, this);
},
presenter : function() {
presenter: function() {
return _.extend(this.defaultPresenter(), {
canRemove: this.canRemove(),
text: app.helpers.textFormatter(this.model.get("text"), this.model.get("mentioned_people"))
text: app.helpers.textFormatter(this.model.get("text"), this.model.get("mentioned_people")),
likesCount: this.model.attributes.likesCount,
userLike: this.model.interactions.userLike()
});
},
ownComment : function() {
ownComment: function() {
return app.currentUser.authenticated() && this.model.get("author").diaspora_id === app.currentUser.get("diaspora_id");
},
postOwner : function() {
postOwner: function() {
return app.currentUser.authenticated() && this.model.get("parent").author.diaspora_id === app.currentUser.get("diaspora_id");
},
canRemove : function() {
canRemove: function() {
return app.currentUser.authenticated() && (this.ownComment() || this.postOwner());
},
toggleLike: function(evt) {
if (evt) { evt.preventDefault(); }
this.model.interactions.toggleLike();
},
likesInfoView: function() {
return new app.views.LikesInfo({model: this.model});
}
});
app.views.ExpandedComment = app.views.Comment.extend({
postRenderTemplate : function(){
this.bindMediaEmbedThumbClickEvent();
}
});
// @license-end

View File

@@ -63,7 +63,29 @@ app.views.Content = app.views.Base.extend({
}
},
// This function is called when user clicks cover for HTML5 embedded video
onVideoThumbClick: function(evt) {
var clickedThumb;
if ($(evt.target).hasClass("thumb")) {
clickedThumb = $(evt.target);
} else {
clickedThumb = $(evt.target).parent(".thumb");
}
clickedThumb.find(".video-overlay").addClass("hidden");
clickedThumb.parents(".collapsed").children(".expander").click();
var video = clickedThumb.find("video");
video.attr("controls", "");
video.get(0).load();
video.get(0).play();
clickedThumb.unbind("click");
},
bindMediaEmbedThumbClickEvent: function() {
this.$(".media-embed .thumb").bind("click", this.onVideoThumbClick);
},
postRenderTemplate : function(){
this.bindMediaEmbedThumbClickEvent();
_.defer(_.bind(this.collapseOversized, this));
// run collapseOversized again after all contained images are loaded
@@ -93,6 +115,8 @@ app.views.StatusMessage = app.views.Content.extend({
app.views.ExpandedStatusMessage = app.views.StatusMessage.extend({
postRenderTemplate : function(){
this.bindMediaEmbedThumbClickEvent();
var photoAttachments = this.$(".photo-attachments");
if(photoAttachments.length > 0) {
new app.views.Gallery({ el: photoAttachments });

View File

@@ -31,12 +31,20 @@ app.views.Gallery = app.views.Base.extend({
return {
index: link,
event: event,
hidePageScrollbars: false,
disableScroll: true,
continuous: true,
toggleControlsOnReturn: false,
onopened: this.preventHideControls,
slideshowInterval: 2000
slideshowInterval: 2000,
onslidecomplete: function(index, slide) {
// If the image is very tall (more than twice its width), then it is scrollable instead of resized
var image = slide.firstElementChild;
if (image.naturalHeight > window.innerHeight && image.naturalHeight > image.naturalWidth * 2) {
image.classList.add("too-tall");
} else {
var margins = 110; // Margins are 80px for thumbnails height and 15px for top image margin + scroll-x height
image.style = "max-height: " + (window.innerHeight - margins) + "px";
}
}
};
}
});

View File

@@ -9,13 +9,13 @@ app.views.Help = app.views.StaticContentView.extend({
"click .faq-link-sharing": "sharing",
"click .faq-link-posts-and-posting": "postsAndPosting",
"click .faq-link-tags": "tags",
"click .faq-link-keyboard-shortcuts": "keyboardShortcuts",
"click .faq-link-chat": "chat"
"click .faq-link-keyboard-shortcuts": "keyboardShortcuts"
},
/* eslint-disable camelcase */
initialize : function() {
this.GETTING_HELP_SUBS = {
getting_started_a: {tutorial_series: this.linkHtml("http://diasporafoundation.org/getting_started/sign_up", Diaspora.I18n.t("getting_started_tutorial"))},
getting_started_a: {tutorial_series: this.linkHtml("https://diasporafoundation.org/getting_started/sign_up", Diaspora.I18n.t("getting_started_tutorial"))},
get_support_a_website: {link: this.linkHtml("https://diasporafoundation.org/", Diaspora.I18n.t("foundation_website"))},
get_support_a_tutorials: {tutorials: this.linkHtml("https://diasporafoundation.org/tutorials", Diaspora.I18n.t("tutorials"))},
get_support_a_wiki: {link: this.linkHtml("https://wiki.diasporafoundation.org/Special:Search", Diaspora.I18n.t("wiki"))},
@@ -28,10 +28,11 @@ app.views.Help = app.views.StaticContentView.extend({
this.POSTS_AND_POSTING_SUBS = {
post_report_a: {community_guidelines: this.linkHtml("https://diasporafoundation.org/community_guidelines", Diaspora.I18n.t("community_guidelines"))},
format_text_a: {
markdown: this.linkHtml("http://diasporafoundation.org/formatting", Diaspora.I18n.t( 'markdown' )),
here: this.linkHtml("http://daringfireball.net/projects/markdown/syntax", Diaspora.I18n.t( 'here' ))
markdown: this.linkHtml("https://diasporafoundation.org/formatting", Diaspora.I18n.t("markdown")),
here: this.linkHtml("https://daringfireball.net/projects/markdown/syntax", Diaspora.I18n.t("here"))
}
};
/* eslint-enable camelcase */
this.TAGS_SUBS = {
filter_tags_a: {
@@ -39,31 +40,22 @@ app.views.Help = app.views.StaticContentView.extend({
}
};
this.CHAT_SUBS = {
add_contact_roster_a: {
toggle_privilege: this.getChatIcons(),
contacts_page: this.linkHtml(Routes.contacts(), Diaspora.I18n.t("chat.contacts_page"))
}
};
this.data = {
title_header: Diaspora.I18n.t( 'title_header' ),
title_getting_help: Diaspora.I18n.t( 'getting_help.title' ),
title_account_and_data_management: Diaspora.I18n.t( 'account_and_data_management.title' ),
title_aspects: Diaspora.I18n.t( 'aspects.title' ),
title_mentions: Diaspora.I18n.t( 'mentions.title' ),
title_pods: Diaspora.I18n.t( 'pods.title' ),
title_posts_and_posting: Diaspora.I18n.t( 'posts_and_posting.title' ),
title_private_posts: Diaspora.I18n.t( 'private_posts.title' ),
title_public_posts: Diaspora.I18n.t( 'public_posts.title' ),
title_resharing_posts: Diaspora.I18n.t( 'resharing_posts.title' ),
title_header: Diaspora.I18n.t("title_header"),
title_getting_help: Diaspora.I18n.t("getting_help.title"),
title_account_and_data_management: Diaspora.I18n.t("account_and_data_management.title"),
title_aspects: Diaspora.I18n.t("aspects.title"),
title_mentions: Diaspora.I18n.t("mentions.title"),
title_pods: Diaspora.I18n.t("pods.title"),
title_posts_and_posting: Diaspora.I18n.t("posts_and_posting.title"),
title_private_posts: Diaspora.I18n.t("private_posts.title"),
title_public_posts: Diaspora.I18n.t("public_posts.title"),
title_resharing_posts: Diaspora.I18n.t("resharing_posts.title"),
title_profile: Diaspora.I18n.t("profile.title"),
title_sharing: Diaspora.I18n.t( 'sharing.title' ),
title_tags: Diaspora.I18n.t( 'tags.title' ),
title_keyboard_shortcuts: Diaspora.I18n.t( 'keyboard_shortcuts.title' ),
title_miscellaneous: Diaspora.I18n.t( 'miscellaneous.title' ),
title_chat: Diaspora.I18n.t( 'chat.title' ),
chat_enabled: this.chatEnabled()
title_sharing: Diaspora.I18n.t("sharing.title"),
title_tags: Diaspora.I18n.t("tags.title"),
title_keyboard_shortcuts: Diaspora.I18n.t("keyboard_shortcuts.title"),
title_miscellaneous: Diaspora.I18n.t("miscellaneous.title")
};
return this;
@@ -199,27 +191,8 @@ app.views.Help = app.views.StaticContentView.extend({
e.preventDefault();
},
chat: function(e){
this.renderStaticSection("chat", "faq_chat", this.CHAT_SUBS);
this.menuClicked(e);
e.preventDefault();
},
linkHtml: function(url, text) {
return "<a href=\"" + url + "\" target=\"_blank\">" + text + "</a>";
},
chatEnabled: function(){
return gon.appConfig.chat.enabled;
},
getChatIcons: function(){
return "<div class=\"help-chat-icons\">" +
" <i class=\"entypo-lock-open\"></i>" +
" <i class=\"entypo-chat\"></i>" +
" <i class=\"entypo-trash\"></i>" +
"</div>";
}
});
// @license-end

View File

@@ -19,10 +19,15 @@ app.views.Hovercard = app.views.Base.extend({
this.showMe = false;
this.parent = null; // current 'hovercardable' element that caused HC to appear
this.active = true;
},
presenter: function() {
return _.extend({}, this.defaultPresenter(), {
person: this.person
});
},
postRenderTemplate: function() {
this.$el.appendTo($("body"));
@@ -102,14 +107,14 @@ app.views.Hovercard = app.views.Base.extend({
if( !person || person.length === 0 ) {
throw new Error("received data is not a person object");
}
var personModel = new app.models.Person(person);
person.is_sharing = personModel.isSharing();
self.person = person;
if (app.currentUser.authenticated()) {
self.aspectMembershipDropdown = new app.views.AspectMembership({person: new app.models.Person(person)});
self.aspectMembershipDropdown = new app.views.AspectMembership({person: personModel});
}
self.render();
self._populateHovercardWith(person);
if( !self.showMe ) {
// mouse has left element
return;
@@ -118,23 +123,6 @@ app.views.Hovercard = app.views.Base.extend({
});
},
_populateHovercardWith: function(person) {
this.avatarLink.attr("href", this.href());
this.personLink.attr("href", this.href());
this.personLink.text(person.name);
this.personID.text(person.diaspora_id);
if (person.profile) {
this.avatar.attr("src", person.profile.avatar);
// set hashtags
this.hashtags.empty();
this.hashtags.html($(_.map(person.profile.tags, function(tag) {
return $("<a/>", {href: Routes.tag(tag)}).text("#" + tag)[0];
})));
}
},
_positionHovercard: function() {
var p_pos = this.parent.offset();
var p_height = this.parent.height();

View File

@@ -19,7 +19,7 @@ app.views.Location = Backbone.View.extend({
var locator = new OSM.Locator();
locator.getAddress(function(address, latlng){
$(element).empty();
$("<input/>",
$("<input></input>",
{ id: "location_address",
value: address,
type: "text",

View File

@@ -12,7 +12,7 @@ app.views.NotificationDropdown = app.views.Base.extend({
this.dropdown = $("#notification-dropdown");
this.dropdownNotifications = this.dropdown.find(".notifications");
this.ajaxLoader = this.dropdown.find(".ajax-loader");
this.perfectScrollbarInitialized = false;
this.perfectScrollbar = null;
this.dropdownNotifications.scroll(this.dropdownScroll.bind(this));
this.bindCollectionEvents();
},
@@ -106,18 +106,17 @@ app.views.NotificationDropdown = app.views.Base.extend({
},
updateScrollbar: function() {
if(this.perfectScrollbarInitialized) {
this.dropdownNotifications.perfectScrollbar("update");
if (this.perfectScrollbar) {
this.perfectScrollbar.update();
} else {
this.dropdownNotifications.perfectScrollbar();
this.perfectScrollbarInitialized = true;
this.perfectScrollbar = new PerfectScrollbar(this.dropdownNotifications[0]);
}
},
destroyScrollbar: function() {
if(this.perfectScrollbarInitialized) {
this.dropdownNotifications.perfectScrollbar("destroy");
this.perfectScrollbarInitialized = false;
if (this.perfectScrollbar) {
this.perfectScrollbar.destroy();
this.perfectScrollbar = null;
}
}
});

View File

@@ -2,23 +2,16 @@
app.views.Photos = app.views.InfScroll.extend({
className: "clearfix row",
postClass : app.views.Photo,
initialize : function() {
this.stream = this.model;
this.collection = this.stream.items;
new app.views.Gallery({el: this.$el});
// viable for extraction
this.stream.fetch();
this.setupInfiniteScroll();
},
postRenderTemplate: function(){
var photoAttachments = $("#main-stream > div");
if(photoAttachments.length > 0) {
new app.views.Gallery({ el: photoAttachments });
}
}
});
// @license-end

View File

@@ -27,12 +27,13 @@ app.views.PodEntry = app.views.Base.extend({
presenter: function() {
return _.extend({}, this.defaultPresenter(), {
/* jshint camelcase: false */
hasPort: (this.model.get("port") >= 0),
is_unchecked: (this.model.get("status")==="unchecked"),
has_no_errors: (this.model.get("status")==="no_errors"),
has_errors: (this.model.get("status")!=="no_errors"),
status_text: Diaspora.I18n.t("admin.pods.states."+this.model.get("status")),
pod_url: (this.model.get("ssl") ? "https" : "http") + "://" + this.model.get("host") +
(this.model.get("port") ? ":" + this.model.get("port") : ""),
(this.model.get("port") >= 0 ? ":" + this.model.get("port") : ""),
response_time_fmt: this._fmtResponseTime()
/* jshint camelcase: true */
});

View File

@@ -14,7 +14,6 @@ app.views.ProfileHeader = app.views.Base.extend({
initialize: function(opts) {
this.photos = _.has(opts, 'photos') ? opts.photos : null;
this.contacts = _.has(opts, 'contacts') ? opts.contacts : null;
this.model.on("change", this.render, this);
$("#mentionModal").on("modal:loaded", this.mentionModalLoaded.bind(this));
$("#mentionModal").on("hidden.bs.modal", this.mentionModalHidden);
@@ -24,13 +23,11 @@ app.views.ProfileHeader = app.views.Base.extend({
return _.extend({}, this.defaultPresenter(), {
show_profile_btns: this._shouldShowProfileBtns(),
show_photos: this._shouldShowPhotos(),
show_contacts: this._shouldShowContacts(),
is_blocked: this.model.isBlocked(),
is_sharing: this.model.isSharing(),
is_receiving: this.model.isReceiving(),
is_mutual: this.model.isMutual(),
has_tags: this._hasTags(),
contacts: this.contacts,
photos: this.photos
});
},
@@ -51,10 +48,6 @@ app.views.ProfileHeader = app.views.Base.extend({
return (this.photos && this.photos > 0);
},
_shouldShowContacts: function() {
return (this.contacts && this.contacts > 0);
},
showMentionModal: function() {
app.helpers.showModal("#mentionModal");
},

View File

@@ -31,7 +31,7 @@ app.views.PublisherAspectSelector = app.views.AspectsDropdown.extend({
}
this._updateSelectedAspectIds();
this._updateButton('btn-default');
this._updateButton();
// update the globe or lock icon
var icon = this.$("#visibility-icon");
@@ -48,7 +48,7 @@ app.views.PublisherAspectSelector = app.views.AspectsDropdown.extend({
updateAspectsSelector: function(ids){
this._selectAspects(ids);
this._updateSelectedAspectIds();
this._updateButton('btn-default');
this._updateButton();
},
// take care of the form fields that will indicate the selected aspects

View File

@@ -5,139 +5,102 @@
// progress. Attaches previews of finished uploads to the publisher.
app.views.PublisherUploader = Backbone.View.extend({
allowedExtensions: ["jpg", "jpeg", "png", "gif"],
sizeLimit: 4194304, // bytes
initialize: function(opts) {
this.publisher = opts.publisher;
this.uploader = new qq.FineUploaderBasic({
element: this.el,
button: this.el,
text: {
fileInputTitle: Diaspora.I18n.t("photo_uploader.upload_photos")
},
request: {
endpoint: Routes.photos(),
params: {
/* eslint-disable camelcase */
authenticity_token: $("meta[name='csrf-token']").attr("content"),
/* eslint-enable camelcase */
photo: {
pending: true
}
}
},
validation: {
allowedExtensions: this.allowedExtensions,
sizeLimit: this.sizeLimit
},
messages: {
typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
sizeError: Diaspora.I18n.t("photo_uploader.size_error"),
emptyError: Diaspora.I18n.t("photo_uploader.empty")
},
callbacks: {
onProgress: _.bind(this.progressHandler, this),
onSubmit: _.bind(this.submitHandler, this),
onComplete: _.bind(this.uploadCompleteHandler, this),
onError: function(id, name, errorReason) {
if (app.flashMessages) { app.flashMessages.error(errorReason); }
}
}
});
this.info = $("<div id=\"fileInfo\" />");
this.publisher.wrapperEl.before(this.info);
this.publisher.photozoneEl.on("click", ".x", _.bind(this._removePhoto, this));
},
progressHandler: function(id, fileName, loaded, total) {
var progress = Math.round(loaded / total * 100);
this.info.text(fileName + " " + progress + "%").fadeTo(200, 1);
this.publisher.photozoneEl
.find("li.loading").first().find(".progress-bar")
.width(progress + "%");
},
submitHandler: function() {
this.$el.addClass("loading");
this._addPhotoPlaceholder();
// Initialize the PostPhotoUploader and subscribe its events
this.uploader = new Diaspora.PostPhotoUploader(this.el, opts.dropZoneElementIds);
this.uploader.onUploadStarted = _.bind(this.uploadStartedHandler, this);
this.uploader.onProgress = _.bind(this.progressHandler, this);
this.uploader.onUploadCompleted = _.bind(this.uploadCompleteHandler, this);
},
// add photo placeholders to the publisher to indicate an upload in progress
_addPhotoPlaceholder: function() {
_addPhotoPlaceholder: function(id) {
var publisher = this.publisher;
publisher.setButtonsEnabled(false);
publisher.wrapperEl.addClass("with_attachments");
publisher.photozoneEl.append(
"<li class=\"publisher_photo loading\" style=\"position:relative;\">" +
"<li id=\"upload-" + id + "\"class=\"publisher_photo loading\" style=\"position:relative;\">" +
" <div class=\"progress\">" +
" <div class=\"progress-bar progress-bar-striped active\" role=\"progressbar\"></div>"+
" </div>" +
" <img src=\"\"+Handlebars.helpers.imageUrl(\"ajax-loader2.gif\")+\"\" class=\"ajax-loader\" alt=\"\" />"+
" <div class=\"spinner\"></div>" +
"</li>"
);
},
uploadCompleteHandler: function(_id, fileName, response) {
uploadStartedHandler: function(id) {
this.$el.addClass("loading");
this._addPhotoPlaceholder(id);
},
progressHandler: function(id, fileName, progress) {
this.publisher.photozoneEl
.find("li.loading#upload-" + id + " .progress-bar")
.width(progress + "%");
},
uploadCompleteHandler: function(id, fileName, response) {
if (response.success){
this.info.text(Diaspora.I18n.t("photo_uploader.completed", {file: fileName})).fadeTo(2000, 0);
var photoId = response.data.photo.id,
image = response.data.photo.unprocessed_image;
var id = response.data.photo.id,
url = response.data.photo.unprocessed_image.url;
this._addFinishedPhoto(id, url);
this._addFinishedPhoto(id, photoId, image);
this.trigger("change");
} else {
this._cancelPhotoUpload();
this.trigger("change");
this.info.text(Diaspora.I18n.t("photo_uploader.error", {file: fileName}));
this._cancelPhotoUpload(id);
this.publisher.wrapperEl.find("#photodropzone_container").first().after(
"<div id=\"upload_error\">" +
Diaspora.I18n.t("photo_uploader.error", {file: fileName}) +
Diaspora.I18n.t("photo_uploader.error", {file: fileName}) +
"</div>"
);
this.trigger("change");
}
},
// replace the first photo placeholder with the finished uploaded image and
// add the id to the publishers form
_addFinishedPhoto: function(id, url) {
_addFinishedPhoto: function(id, photoId, image) {
var publisher = this.publisher;
// add form input element
publisher.$(".content_creation form").append(
"<input type=\"hidden\", value=\""+id+"\" name=\"photos[]\" />"
"<input type=\"hidden\", value=\"" + photoId + "\" name=\"photos[]\" />"
);
// replace placeholder
var placeholder = publisher.photozoneEl.find("li.loading").first();
var placeholder = publisher.photozoneEl.find("li.loading#upload-" + id);
var imgElement = document.createElement("img");
imgElement.src = image.thumb_medium.url;
imgElement.classList.add("hidden");
imgElement.dataset.id = photoId;
imgElement.dataset.small = image.thumb_small.url;
imgElement.dataset.scaled = image.scaled_full.url;
placeholder
.removeClass("loading")
.prepend(
"<div class=\"x\"></div>"+
"<div class=\"circle\"></div>"
)
.find("img").attr({"src": url, "data-id": id}).removeClass("ajax-loader");
placeholder
.find("div.progress").remove();
'<div class="x"></div>' +
'<div class="circle"></div>' +
imgElement.outerHTML
).removeClass("loading");
placeholder.find("div.progress").remove();
placeholder.find("img").on("load", function(ev) {
$(ev.target).removeClass("hidden");
placeholder.find(".spinner").remove();
});
// no more placeholders? enable buttons
if( publisher.photozoneEl.find("li.loading").length === 0 ) {
if (publisher.photozoneEl.find("li.loading").length === 0) {
this.$el.removeClass("loading");
publisher.setButtonsEnabled(true);
}
},
_cancelPhotoUpload: function() {
var publisher = this.publisher;
var placeholder = publisher.photozoneEl.find("li.loading").first();
placeholder
.removeClass("loading")
.find("img").remove();
_cancelPhotoUpload: function(id) {
this.publisher.photozoneEl.find("li.loading#upload-" + id).remove();
},
// remove an already uploaded photo
@@ -155,7 +118,7 @@ app.views.PublisherUploader = Backbone.View.extend({
photo.fadeOut(400, function() {
photo.remove();
if( self.publisher.$(".publisher_photo").length === 0 ) {
if (self.publisher.$(".publisher_photo").length === 0) {
// no more photos left...
self.publisher.wrapperEl.removeClass("with_attachments");
}
@@ -164,9 +127,7 @@ app.views.PublisherUploader = Backbone.View.extend({
});
}
});
return false;
}
});
// @license-end

View File

@@ -11,7 +11,6 @@
//= require ./publisher/poll_creator_view
//= require ./publisher/services_view
//= require ./publisher/uploader_view
//= require jquery-textchange
app.views.Publisher = Backbone.View.extend({
@@ -22,7 +21,7 @@ app.views.Publisher = Backbone.View.extend({
"focus textarea" : "open",
"submit form" : "createStatusMessage",
"click #submit" : "createStatusMessage",
"textchange #status_message_text": "checkSubmitAvailability",
"input #status_message_text": "checkSubmitAvailability",
"click #locator" : "showLocation",
"click #poll_creator" : "togglePollCreator",
"click #hide_location" : "destroyLocation",
@@ -52,10 +51,6 @@ app.views.Publisher = Backbone.View.extend({
this.$(".question_mark").hide();
}
// this has to be here, otherwise for some reason the callback for the
// textchange event won't be called in Backbone...
this.inputEl.bind("textchange", $.noop);
$("body").click(function(event) {
var $target = $(event.target);
if ($target.closest("#publisher").length === 0 && !$target.hasClass("dropdown-backdrop")) {
@@ -113,6 +108,7 @@ app.views.Publisher = Backbone.View.extend({
this.viewUploader = new app.views.PublisherUploader({
el: this.$("#file-upload"),
dropZoneElementIds: ["publisher-textarea-wrapper"],
publisher: this
});
this.viewUploader.on("change", this.checkSubmitAvailability, this);
@@ -133,10 +129,6 @@ app.views.Publisher = Backbone.View.extend({
if (photoAttachments.length > 0) {
new app.views.Gallery({el: photoAttachments});
}
},
onChange: function() {
self.inputEl.trigger("textchange");
}
};
@@ -284,13 +276,13 @@ app.views.Publisher = Backbone.View.extend({
getUploadedPhotos: function() {
var photos = [];
$("li.publisher_photo img").each(function() {
var file = $(this).attr("src").substring("/uploads/images/".length);
var photo = $(this);
photos.push(
{
"sizes": {
"small" : "/uploads/images/thumb_small_" + file,
"medium" : "/uploads/images/thumb_medium_" + file,
"large" : "/uploads/images/scaled_full_" + file
"small": photo.data("small"),
"medium": photo.attr("src"),
"large": photo.data("scaled")
}
}
);
@@ -351,7 +343,7 @@ app.views.Publisher = Backbone.View.extend({
};
var previewPost = new app.views.PreviewPost({model: new app.models.Post(previewMessage)}).render().el;
return $("<div/>").append(previewPost).html();
return $("<div></div>").append(previewPost).html();
},
keyDown : function(evt) {
@@ -368,8 +360,7 @@ app.views.Publisher = Backbone.View.extend({
// clear text
this.inputEl.val("");
this.inputEl.trigger("keyup")
.trigger("keydown");
this.inputEl.trigger("input");
autosize.update(this.inputEl);
// remove photos
@@ -403,9 +394,6 @@ app.views.Publisher = Backbone.View.extend({
// clear poll form
this.viewPollCreator.clearInputs();
// force textchange plugin to update lastValue
this.inputEl.data("lastValue", "");
return this;
},
@@ -445,7 +433,8 @@ app.views.Publisher = Backbone.View.extend({
},
checkSubmitAvailability: function() {
if( this._submittable() ) {
if (this._submittable()) {
this.open();
this.setButtonsEnabled(true);
} else {
this.setButtonsEnabled(false);
@@ -484,7 +473,7 @@ app.views.Publisher = Backbone.View.extend({
},
_beforeUnload: function(e) {
if(this._submittable() && this.inputEl.val() !== this.prefillText){
if (this._submittable() && this.inputEl.val() !== this.prefillText) {
var confirmationMessage = Diaspora.I18n.t("confirm_unload");
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome, etc.

View File

@@ -36,8 +36,9 @@ app.views.SinglePostContent = app.views.Base.extend({
var map = L.map(mapContainer[0]).setView([location.lat, location.lng], 14);
var tiles = app.helpers.locations.getTiles();
tiles.addTo(map);
if (tiles) {
tiles.addTo(map);
}
// put marker on map
L.marker(location).addTo(map);

View File

@@ -7,7 +7,7 @@ app.views.StreamPost = app.views.Post.extend({
subviews : {
".feedback": "feedbackView",
".comments": "commentStreamView",
".likes": "likesInfoView",
".likes-on-post": "likesInfoView",
".reshares": "resharesInfoView",
".post-controls": "postControlsView",
".post-content": "postContentView",

View File

@@ -25,7 +25,7 @@ app.views.Stream = app.views.InfScroll.extend({
markNavSelected : function() {
var activeStream = Backbone.history.fragment;
var streamSelection = $("#stream_selection");
var streamSelection = $("#stream-selection");
streamSelection.find("[data-stream]").removeClass("selected");
streamSelection.find("[data-stream='" + activeStream + "']").addClass("selected");

View File

@@ -48,7 +48,7 @@ app.views.TagFollowingList = app.views.Base.extend({
if(evt){ evt.preventDefault(); }
var name = this.$(".tag_input").val();
// compare tag_text_regexp in app/models/acts_as_taggable_on-tag.rb
// compare tag_text_regexp in config/initializers/acts_as_taggable_on.rb
var normalizedName = (name === "<3" ? name : name.replace(
new RegExp("[^" + PosixBracketExpressions.alnum + "_\\-]+", "gi"), "").toLowerCase());

View File

@@ -0,0 +1,121 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
Diaspora.PostPhotoUploader = class {
/**
* Initializes a new instance of PostPhotoUploader
* This class handles uploading photos and provides client side scaling
*/
constructor(el, dropZoneElementIds, aspectIds) {
this.element = el;
this.dropZoneElementIds = dropZoneElementIds;
this.sizeLimit = 4194304;
this.aspectIds = aspectIds;
this.onProgress = null;
this.onUploadStarted = null;
this.onUploadCompleted = null;
/**
* Shows a message using flash messages or alert for mobile.
* @param {string} type - The type of the message, e.g. "error" or "success".
* @param text - The text to display.
*/
this.showMessage = (type, text) => (app.flashMessages ? app.flashMessages[type](text) : alert(text));
/**
* Returns true if the given parameter is a function
* @param {param} - The object to check
* @returns {boolean}
*/
this.func = param => (typeof param === "function");
this.initFineUploader();
}
/**
* Initializes the fine uploader component
*/
initFineUploader() {
this.fineUploader = new qq.FineUploaderBasic({
element: this.element,
button: this.element,
text: {
fileInputTitle: Diaspora.I18n.t("photo_uploader.upload_photos")
},
request: {
endpoint: Routes.photos(),
params: {
/* eslint-disable camelcase */
authenticity_token: $("meta[name='csrf-token']").attr("content"),
photo: {
pending: true,
aspect_ids: this.aspectIds
}
/* eslint-enable camelcase */
}
},
paste: {
targetElement: document.getElementById("status_message_text"),
promptForName: true
},
validation: {
acceptFiles: "image/png, image/jpeg, image/gif, image/webp",
allowedExtensions: ["jpg", "jpeg", "png", "gif", "webp"],
sizeLimit: (window.Promise && qq.supportedFeatures.scaling ? null : this.sizeLimit)
},
messages: {
typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
sizeError: Diaspora.I18n.t("photo_uploader.size_error"),
emptyError: Diaspora.I18n.t("photo_uploader.empty")
},
callbacks: {
onSubmit: (id, name) => this.onPictureSelected(id, name),
onUpload: (id, name) => (this.func(this.onUploadStarted) && this.onUploadStarted(id, name)),
onProgress: (id, fileName, loaded, total) =>
(this.func(this.onProgress) && this.onProgress(id, fileName, Math.round(loaded / total * 100))),
onComplete: (id, name, json) => (this.func(this.onUploadCompleted) && this.onUploadCompleted(id, name, json)),
onError: (id, name, errorReason) => this.showMessage("error", errorReason)
}
});
if (this.dropZoneElementIds instanceof Array) {
var dropZoneElements = this.dropZoneElementIds.map(id => document.getElementById(id)).filter(el => el);
if (dropZoneElements.length > 0) {
this.dragAndDropModule = new qq.DragAndDrop({
dropZoneElements: dropZoneElements,
callbacks: {
processingDroppedFilesComplete: (files) => this.fineUploader.addFiles(files)
}
});
}
}
}
/**
* Called when a picture from user's device has been selected.
* Scales the images using Pica if the image exceeds the file size limit
* @param {number} id - The current file's id.
* @param {string} name - The current file's name.
*/
onPictureSelected(id, name) {
// scale image because it's bigger than the size limit and the browser supports it
if (this.fineUploader.getSize(id) > this.sizeLimit && window.Promise && qq.supportedFeatures.scaling) {
this.fineUploader.scaleImage(id, {
maxSize: 3072,
customResizer: !qq.ios() && (i => window.pica().resize(i.sourceCanvas, i.targetCanvas))
}).then(scaledImage => {
this.fineUploader.addFiles({
blob: scaledImage,
name: name
});
});
// since we are adding the smaller scaled image afterwards, we return false
return false;
}
// return true to upload the image without scaling
return true;
}
};
// @license-end

View File

@@ -0,0 +1,253 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
Diaspora.ProfilePhotoUploader = class {
/**
* Initializes a new instance of ProfilePhotoUploader
*/
constructor() {
// get several elements we will use a few times
this.fileInput = document.querySelector("#file-upload");
this.picture = document.querySelector("#profile_photo_upload .avatar");
this.info = document.querySelector("#fileInfo");
this.cropContainer = document.querySelector(".crop-container");
this.spinner = document.querySelector("#file-upload-spinner");
/**
* Creates a button
* @param {string} icon - The entypo icon class.
* @param {function} onClick - Is called when button has been clicked.
*/
this.createButton = (icon, onClick) =>
($(`<button class="btn btn-default" type="button"><i class="entypo-${icon}"></i></button>`)
.on("click", onClick));
/**
* Shows a message using flash messages or alert for mobile.
* @param {string} type - The type of the message, e.g. "error" or "success".
* @param text - The text to display.
*/
this.showMessage = (type, text) => (app.flashMessages ? app.flashMessages[type](text) : alert(text));
this.initFineUploader();
}
/**
* Initializes the fine uploader component
*/
initFineUploader() {
this.fineUploader = new qq.FineUploaderBasic({
element: this.fileInput,
validation: {
acceptFiles: "image/png, image/jpeg",
allowedExtensions: ["jpg", "jpeg", "png"]
},
request: {
endpoint: Routes.photos(),
params: {
/* eslint-disable camelcase */
authenticity_token: $("meta[name='csrf-token']").attr("content"),
/* eslint-enable camelcase */
photo: {"pending": true, "aspect_ids": "all", "set_profile_photo": true}
}
},
button: this.fileInput,
autoUpload: false,
messages: {
typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
sizeError: Diaspora.I18n.t("photo_uploader.size_error"),
emptyError: Diaspora.I18n.t("photo_uploader.empty")
},
callbacks: {
onProgress: (id, fileName, loaded, total) => {
(this.info.innerText = `${fileName} ${Math.round(loaded / total * 100)}%`);
},
onSubmit: (id, name) => this.onPictureSelected(id, name),
onComplete: (id, name, responseJSON) => this.onUploadCompleted(id, name, responseJSON),
onError: (id, name) => this.showMessage("error", Diaspora.I18n.t("photo_uploader.error", {file: name}))
},
text: {
fileInputTitle: ""
},
scaling: {
sendOriginal: false,
sizes: [
{maxSize: 1600}
]
}
});
}
/**
* Called when a picture from user's device has been selected.
* @param {number} id - The current file's id.
* @param {string} name - The current file's name.
*/
onPictureSelected(id, name) {
this.setLoading(true);
this.fileName = name;
const file = this.fileInput.querySelector("input").files[0];
// ensure browser's file reader support
if (FileReader && file) {
const fileReader = new FileReader();
fileReader.onload = () => this.initCropper(fileReader.result);
fileReader.readAsDataURL(file);
} else {
this.setLoading(false);
}
}
/**
* Initializes the cropper and all controls.
* @param {object|string} imageData - The base64 image data
*/
initCropper(imageData) {
// cache the current picture source if the user cancels
this.previousPicture = this.picture.getAttribute("src");
this.mimeType = imageData.split(";base64")[0].substring(5);
this.picture.onload = () => {
// set the preferred size style of the cropper based on picture orientation
const isPortrait = this.picture.naturalHeight > this.picture.naturalWidth;
this.picture.setAttribute("style", (isPortrait ? "max-height:600px;max-width:none;" : "max-width:600px;"));
this.buildControls();
this.setLoading(false);
// eslint-disable-next-line no-undef
this.cropper = new Cropper(this.picture, {
aspectRatio: 1,
zoomable: false,
autoCropArea: 1,
preview: ".preview"
});
};
this.picture.setAttribute("src", imageData);
}
/**
* Creates image manipulation controls and previews.
*/
buildControls() {
this.controls = {
rotateLeft: this.createButton("ccw", () => this.cropper.rotate(-45)),
rotateRight: this.createButton("cw", () => this.cropper.rotate(45)),
reset: this.createButton("cycle", () => this.cropper.reset()),
accept: this.createButton("check", () => this.cropImage()),
cancel: this.createButton("trash", () => this.cancel())
};
this.controlRow = $("<div class='controls'>").appendTo(this.cropContainer);
// rotation buttons on the left
this.controlRow.append($("<div class='btn-group buttons-left' role='group'>").append([
this.controls.rotateLeft,
this.controls.rotateRight
]));
// preview images in the middle
this.controlRow.append("<div class='preview'>");
// main buttons on the right
this.controlRow.append($("<div class='btn-group buttons-right' role='group'>").append([
this.controls.reset,
this.controls.cancel,
this.controls.accept
]));
}
/**
* Called when the user clicked accept button. Sets file data and triggers file upload.
*/
cropImage() {
const canvas = this.cropper.getCroppedCanvas();
// replace the stored file with the new canvas
this.fineUploader.clearStoredFiles();
this.fineUploader.addFiles([{
canvas: canvas,
name: this.fileName,
quality: 100,
type: this.mimeType
}]);
// reset all controls
this.cancel();
this.picture.setAttribute("src", canvas.toDataURL(this.mimeType));
// finally start uploading
this.setLoading(true);
this.fineUploader.uploadStoredFiles();
}
/**
* Is called after the file upload has been completed and the profile photo changed.
* @param {number} id - The current file's id.
* @param {string} fileName - The current file's name.
* @param {object} responseJSON - The server's json response.
*/
onUploadCompleted(id, fileName, responseJSON) {
this.setLoading(false);
this.fileInput.classList.remove("hidden");
if (responseJSON.data !== undefined) {
/* flash message prompt */
this.showMessage("success", Diaspora.I18n.t("photo_uploader.looking_good"));
this.info.innerText = Diaspora.I18n.t("photo_uploader.completed", {"file": fileName});
const photoId = responseJSON.data.photo.id;
const url = responseJSON.data.photo.unprocessed_image.url;
const oldPhoto = $("#photo_id");
if (oldPhoto.length === 0) {
$("#update_profile_form")
.prepend(`<input type="hidden" value="${photoId}" id="photo_id" name="photo_id"/>`);
} else {
oldPhoto.val(photoId);
}
this.picture.setAttribute("src", url);
$(`.avatar[alt="${gon.user.diaspora_id}"]`).attr("src", url);
} else {
this.cancel();
}
}
/**
* Toggles loading state by hiding or showing several elements
* @param {boolean} loading - True if loading state should be enabled.
*/
setLoading(loading) {
if (loading) {
this.fileInput.classList.add("hidden");
this.picture.classList.add("hidden");
this.spinner.classList.remove("hidden");
} else {
this.picture.classList.remove("hidden");
this.spinner.classList.add("hidden");
}
}
/**
* Destroys the cropper and resets all elements to initial state.
*/
cancel() {
this.cropper.destroy();
this.picture.onload = null;
this.picture.setAttribute("style", "");
this.picture.setAttribute("src", this.previousPicture);
this.controlRow.remove();
this.fileInput.classList.remove("hidden");
this.info.innerText = "";
this.mimeType = null;
this.name = null;
}
};
// @license-end

View File

@@ -0,0 +1,21 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
Diaspora.ProtocolHandler = {
register: function() {
if (!window.navigator.registerProtocolHandler) {
return false;
}
try {
window.navigator.registerProtocolHandler(
"web+diaspora",
[window.location.protocol, "//", window.location.host, "/link?q=%s"].join(""),
gon.appConfig.settings.podname
);
} catch (_) {
return false;
}
return true;
}
};

View File

@@ -1,10 +1,9 @@
//= require jquery3
//= require handlebars.runtime
//= require templates
//= require main
//= require fine-uploader/fine-uploader.core
//= require fine-uploader/fine-uploader/fine-uploader
//= require mobile/mobile
//= require jquery.autoSuggest.custom
//= require contact-list
//= require sinon
//= require jasmine-ajax
//= require jasmine-ajax/lib/mock-ajax

View File

@@ -1,50 +0,0 @@
//= require emojione
//= require favico.js/favico
//= require jquery.ui/ui/resizable
//= require jquery.ui/ui/draggable
//= require jquery.slimscroll/jquery.slimscroll
//= require jquery-colorbox
//= require jquery-fullscreen-plugin
//= require diaspora_jsxc
// initialize jsxc xmpp client
$(document).ready(function() {
if (app.currentUser.authenticated()) {
$.post("/user/auth_token", null, function(data) {
if (jsxc && data['token']) {
var jid = app.currentUser.get('diaspora_id');
jsxc.init({
root: '/assets/diaspora_jsxc',
rosterAppend: 'body',
otr: {
debug: true,
SEND_WHITESPACE_TAG: true,
WHITESPACE_START_AKE: true
},
onlineHelp: "/help/chat",
priority: {
online: 1,
chat: 1
},
displayRosterMinimized: function() {
return false;
},
xmpp: {
url: $('script#jsxc').data('endpoint'),
username: jid.replace(/@.*?$/g, ''),
domain: jid.replace(/^.*?@/g, ''),
jid: jid,
password: data.token,
resource: 'diaspora-jsxc',
overwrite: true,
onlogin: true
}
});
} else {
console.error('No token found! Authenticated!?');
}
}, 'json');
}
});

View File

@@ -4,28 +4,31 @@
*/
//= require js_image_paths
//= require js-routes
//= require underscore
//= require backbone
//= require autosize
//= require underscore/underscore-umd
//= require backbone/backbone
//= require autosize/dist/autosize
//= require charcount
//= require jquery-placeholder
//= require jquery-placeholder/jquery.placeholder
//= require jquery.timeago
//= require jquery.ui/ui/core
//= require jquery.ui/ui/widget
//= require jquery.ui/ui/mouse
//= require jquery.ui/ui/sortable
//= require jquery-ui/core
//= require jquery-ui/widget
//= require jquery-ui/widgets/mouse
//= require jquery-ui/widgets/sortable
//= require keycodes
//= require jquery.autoSuggest.custom
//= require fine-uploader/fine-uploader.core
//= require fine-uploader/fine-uploader/fine-uploader
//= require handlebars.runtime
//= require_tree ../templates
//= require posix-bracket-expressions
//= require markdown-it
//= require markdown-it/dist/markdown-it
//= require markdown-it-diaspora-mention
//= require markdown-it-for-inline
//= require markdown-it-footnote
//= require markdown-it-hashtag
//= require markdown-it-sanitizer
//= require markdown-it-sub
//= require markdown-it-sup
//= require markdown-it-html5-embed
//= require highlightjs
//= require clear-form
//= require corejs-typeahead
@@ -37,10 +40,13 @@
//= require bootstrap
//= require osmlocator
//= require bootstrap-switch
//= require blueimp-gallery
//= require blueimp-gallery/blueimp-gallery-indicator
//= require blueimp-gallery/js/blueimp-gallery
//= require blueimp-gallery/js/blueimp-gallery-indicator
//= require leaflet
//= require api/authorization_page
//= require bootstrap-markdown/bootstrap-markdown
//= require bootstrap-markdown/js/bootstrap-markdown
//= require helpers/markdown_editor
//= require helpers/protocol_handler
//= require jquery.are-you-sure
//= require cropperjs/dist/cropper.js
//= require pica/dist/pica

View File

@@ -4,22 +4,22 @@
*/
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
//= require jquery-textchange
//= require charcount
//= require js-routes
//= require autosize
//= require autosize/dist/autosize
//= require keycodes
//= require jquery.autoSuggest.custom
//= require fine-uploader/fine-uploader.core
//= require fine-uploader/fine-uploader/fine-uploader
//= require jquery.timeago
//= require underscore
//= require underscore/underscore-umd
//= require bootstrap
//= require pica/dist/pica
//= require diaspora
//= require helpers/i18n
//= require helpers/profile_photo_uploader
//= require helpers/tags_autocomplete
//= require bootstrap-markdown/bootstrap-markdown
//= require bootstrap-markdown/js/bootstrap-markdown
//= require helpers/markdown_editor
//= require helpers/post_photo_uploader
//= require widgets/timeago
//= require mobile/mobile_application
//= require mobile/mobile_file_uploader
@@ -32,4 +32,5 @@
//= require mobile/mobile_conversations
//= require mobile/mobile_post_actions
//= require mobile/mobile_drawer
//= require mobile/mobile_profile_photo_uploader
// @license-end

View File

@@ -52,6 +52,8 @@
$.post(form.attr("action") + "?format=mobile", form.serialize(), function(data){
Diaspora.Mobile.Comments.updateStream(form, data);
// Register new comments
$(".stream").trigger("comments.loaded");
}, "html").fail(function(response) {
Diaspora.Mobile.Alert.handleAjaxError(response);
Diaspora.Mobile.Comments.resetCommentBox(form);
@@ -107,10 +109,12 @@
url: toggleReactionsLink.attr("href"),
success: function (data) {
toggleReactionsLink.addClass("active").removeClass("loading");
$(data).insertAfter(bottomBar.children(".show-comments").first());
$(data).insertAfter(bottomBar.children(".post-actions-container").first());
self.showCommentBox(commentActionLink);
bottomBarContainer.getCommentsContainer().find("time.timeago").timeago();
bottomBarContainer.activate();
// Inform the comment action for new comments
$(".stream").trigger("comments.loaded");
},
error: function(){
bottomBarContainer.deactivate();
@@ -185,8 +189,8 @@
addNewComments: function(bottomBar, data) {
if ($(".comment-container", bottomBar).length === 0) {
$(".show-comments", bottomBar).after($("<div/>", {"class": "comment-container"}));
$(".comment-container", bottomBar).append($("<ul/>", {"class": "comments"}));
$(".show-comments", bottomBar).after($("<div></div>", {"class": "comment-container"}));
$(".comment-container", bottomBar).append($("<ul></ul>", {"class": "comments"}));
}
$(".comment-container .comments", bottomBar).append(data);
},
@@ -212,8 +216,10 @@
var postGuid = bottomBar.parents(".stream-element").data("guid");
toggleReactionsLink.remove();
toggleReactionsLink = $("<a/>", {"class": "show-comments", "href": Routes.postComments(postGuid) + ".mobile"})
.html(text + "<i class='entypo-chevron-up'/>");
toggleReactionsLink = $("<a></a>", {
"class": "show-comments",
"href": Routes.postComments(postGuid) + ".mobile"
}).html(text + "<i class='entypo-chevron-up'/>");
parent.prepend(toggleReactionsLink);
bottomBar.removeClass("inactive").addClass("active");
}

View File

@@ -2,97 +2,74 @@
//= require js_image_paths
function createUploader(){
var aspectIds = gon.preloads.aspect_ids;
var fileInfo = $("#fileInfo-publisher");
new qq.FineUploaderBasic({
element: document.getElementById("file-upload-publisher"),
request: {
endpoint: Routes.photos(),
params: {
/* eslint-disable camelcase */
authenticity_token: $("meta[name='csrf-token']").attr("content"),
photo: {
aspect_ids: aspectIds,
/* eslint-enable camelcase */
pending: true
}
}
},
validation: {
allowedExtensions: ["jpg", "jpeg", "png", "gif"],
sizeLimit: 4194304
},
button: document.getElementById("file-upload-publisher"),
text: {
fileInputTitle: Diaspora.I18n.t("photo_uploader.upload_photos")
},
// Initialize the PostPhotoUploader and subscribe its events
this.uploader = new Diaspora.PostPhotoUploader(document.getElementById("file-upload-publisher"),
["publisher-textarea-wrapper", "status_message_text", "file-upload-publisher"]);
callbacks: {
onProgress: function(id, fileName, loaded, total) {
var progress = Math.round(loaded / total * 100);
$("#fileInfo-publisher").text(fileName + " " + progress + "%");
},
onSubmit: function() {
$("#publisher-textarea-wrapper").addClass("with_attachments");
$("#photodropzone").append(
"<li class='publisher_photo loading' style='position:relative;'>" +
"<img alt='Ajax-loader2' src='" + ImagePaths.get("ajax-loader2.gif") + "' />" +
"</li>"
);
},
onComplete: function(_id, fileName, responseJSON) {
if (responseJSON.data === undefined) {
return;
}
this.uploader.onUploadStarted = _.bind(uploadStartedHandler, this);
this.uploader.onProgress = _.bind(progressHandler, this);
this.uploader.onUploadCompleted = _.bind(uploadCompletedHandler, this);
$("#fileInfo-publisher").text(Diaspora.I18n.t("photo_uploader.completed", {"file": fileName}));
var id = responseJSON.data.photo.id,
url = responseJSON.data.photo.unprocessed_image.url,
currentPlaceholder = $("li.loading").first();
function progressHandler(fileName, progress) {
fileInfo.text(fileName + " " + progress + "%");
}
$("#publisher-textarea-wrapper").addClass("with_attachments");
$("#new_status_message").append("<input type='hidden' value='" + id + "' name='photos[]' />");
function uploadStartedHandler() {
$("#publisher-textarea-wrapper").addClass("with_attachments");
$("#photodropzone").append(
"<li class='publisher_photo loading' style='position:relative;'>" +
"<img alt='Ajax-loader2' src='" + ImagePaths.get("ajax-loader2.gif") + "' />" +
"</li>"
);
}
// replace image placeholders
var img = currentPlaceholder.find("img");
img.attr("src", url);
img.attr("data-id", id);
currentPlaceholder.removeClass("loading");
currentPlaceholder.append("<div class='x'>X</div>" +
"<div class='circle'></div>");
function uploadCompletedHandler(_id, fileName, responseJSON) {
if (responseJSON.data === undefined) {
return;
}
var publisher = $("#publisher");
fileInfo.text(Diaspora.I18n.t("photo_uploader.completed", {"file": fileName}));
var id = responseJSON.data.photo.id,
image = responseJSON.data.photo.unprocessed_image,
currentPlaceholder = $("li.loading").first();
publisher.find("input[type='submit']").removeAttr("disabled");
$("#publisher-textarea-wrapper").addClass("with_attachments");
$("#new_status_message").append("<input type='hidden' value='" + id + "' name='photos[]' />");
$(".x").bind("click", function() {
var photo = $(this).closest(".publisher_photo");
photo.addClass("dim");
$.ajax({
url: "/photos/" + photo.children("img").attr("data-id"),
dataType: "json",
type: "DELETE",
success: function() {
photo.fadeOut(400, function() {
photo.remove();
if ($(".publisher_photo").length === 0) {
$("#publisher-textarea-wrapper").removeClass("with_attachments");
}
});
// replace image placeholders
var img = currentPlaceholder.find("img");
img.attr("src", image.thumb_medium.url);
img.attr("data-small", image.thumb_small.url);
img.attr("data-scaled", image.scaled_full.url);
img.attr("data-id", id);
currentPlaceholder.removeClass("loading");
currentPlaceholder.append("<div class='x'>X</div>" +
"<div class='circle'></div>");
var publisher = $("#publisher");
publisher.find("input[type='submit']").removeAttr("disabled");
$(".x").bind("click", function() {
var photo = $(this).closest(".publisher_photo");
photo.addClass("dim");
$.ajax({
url: "/photos/" + photo.children("img").attr("data-id"),
dataType: "json",
type: "DELETE",
success: function() {
photo.fadeOut(400, function() {
photo.remove();
if ($(".publisher_photo").length === 0) {
$("#publisher-textarea-wrapper").removeClass("with_attachments");
}
});
});
},
onError: function(id, name, errorReason) {
alert(errorReason);
}
},
messages: {
typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
sizeError: Diaspora.I18n.t("photo_uploader.size_error"),
emptyError: Diaspora.I18n.t("photo_uploader.empty")
}
});
}
});
});
}
}
window.addEventListener("load", function() {
createUploader();

View File

@@ -3,6 +3,11 @@
initialize: function() {
$(".like-action", ".stream").bind("tap click", this.onLike);
$(".reshare-action", ".stream").bind("tap click", this.onReshare);
// Add handler to newly loaded comments
var self = this;
$(".stream").bind("comments.loaded", function() {
$(".like-action", ".stream").bind("tap click", self.onLike);
});
},
showLoader: function(link) {
@@ -75,8 +80,8 @@
onLike: function(evt){
evt.preventDefault();
var link = $(evt.target).closest(".like-action"),
likeCounter = $(evt.target).closest(".stream-element").find(".like-count");
var link = $(evt.target).closest(".like-action").first(),
likeCounter = $(evt.target).find(".like-count").first();
if(!link.hasClass("loading") && link.hasClass("inactive")) {
Diaspora.Mobile.PostActions.like(likeCounter, link);

View File

@@ -11,7 +11,8 @@ Diaspora.ProfilePhotoUploader.prototype = {
new qq.FineUploaderBasic({
element: document.getElementById("file-upload"),
validation: {
allowedExtensions: ["jpg", "jpeg", "png"],
acceptFiles: "image/png, image/jpeg, image/gif, image/webp",
allowedExtensions: ["png", "jpg", "jpeg", "gif", "webp"],
sizeLimit: 4194304
},
request: {

View File

@@ -33,7 +33,7 @@ $(document).ready(function(){
if(hiddenField.length > 0) { hiddenField.remove(); }
else {
$("#new_status_message").append(
$("<input/>", {
$("<input></input>", {
name: "services[]",
type: "hidden",
value: provider
@@ -48,4 +48,74 @@ $(document).ready(function(){
});
new Diaspora.MarkdownEditor("#status_message_text");
$(".dropdown-menu > li").bind("tap click", function(evt) {
let target = $(evt.target).closest("li");
// visually toggle the aspect selection
if (target.is(".radio")) {
_toggleRadio(target);
} else if (target.is(".aspect-selector")) {
// don't close the dropdown
evt.stopPropagation();
_toggleCheckbox(target);
}
_updateSelectedAspectIds();
_updateButton();
// update the globe or lock icon
let icon = $("#visibility-icon");
if (target.find(".text").text().trim() === Diaspora.I18n.t("stream.public")) {
icon.removeClass("entypo-lock");
icon.addClass("entypo-globe");
} else {
icon.removeClass("entypo-globe");
icon.addClass("entypo-lock");
}
});
function _toggleRadio(target) {
$(".dropdown-menu > li").removeClass("selected");
target.toggleClass("selected");
}
function _toggleCheckbox(target) {
$(".dropdown-menu > li.radio").removeClass("selected");
target.toggleClass("selected");
}
// take care of the form fields that will indicate the selected aspects
function _updateSelectedAspectIds() {
let form = $("#new_status_message");
// remove previous selection
form.find('input[name="aspect_ids[]"]').remove();
// create fields for current selection
form.find(".dropdown-menu > li.selected").each(function() {
let uid = _.uniqueId("aspect_ids_");
let id = $(this).data("aspect_id");
form.append('<input id="' + uid + '" name="aspect_ids[]" type="hidden" value="' + id + '">');
});
}
// change class and text of the dropdown button
function _updateButton() {
let button = $(".btn.dropdown-toggle"),
selectedAspects = $(".dropdown-menu > li.selected").length,
buttonText;
switch (selectedAspects) {
case 0:
buttonText = Diaspora.I18n.t("aspect_dropdown.select_aspects");
break;
case 1:
buttonText = $(".dropdown-menu > li.selected .text").first().text();
break;
default:
buttonText = Diaspora.I18n.t("aspect_dropdown.toggle", {count: selectedAspects.toString()});
}
button.find(".text").text(buttonText);
}
});

View File

@@ -1,5 +0,0 @@
/* Copyright (c) 2010-2011, Diaspora Inc. This file is
* licensed under the Affero General Public License version 3 or later. See
* the COPYRIGHT file.
*/
//= require_tree ../templates

View File

@@ -1,4 +1,4 @@
@import 'perfect-scrollbar';
@import 'perfect-scrollbar/css/perfect-scrollbar';
@import 'color-variables';
@import 'bootstrap-complete';
@@ -11,13 +11,11 @@
@import 'icons';
@import 'animations';
@import 'flash_messages';
@import 'sprites';
@import 'hovercard';
@import 'base';
@import 'interactions';
@import 'spinner';
@import 'timeago';
@import 'vendor/fileuploader';
@import 'vendor/autoSuggest';
@import 'typeahead';
@import 'colors';
@@ -26,6 +24,9 @@
// font overrides
@import 'typography';
// New design, can be used adding the .modern-design class to a <div> around the page which is ported
@import 'modern-design';
// layout
@import 'sidebar';
@@ -42,6 +43,7 @@
// profile and settings pages
@import 'settings';
@import 'cropperjs/dist/cropper';
// new SPV
@import 'header';
@@ -84,10 +86,9 @@
@import 'stream';
@import 'stream_element';
@import 'comments';
@import 'diaspora_jsxc';
@import 'chat';
@import 'markdown-content';
@import 'oembed';
@import 'media-embed';
@import 'post-content';
// contacts
@@ -96,14 +97,14 @@
// code
@import 'code';
@import 'highlightjs/github';
@import 'highlightjs/styles/github';
// statistics
@import 'statistics';
// gallery
@import 'blueimp-gallery';
@import 'blueimp-gallery/blueimp-gallery-indicator';
@import 'blueimp-gallery/css/blueimp-gallery';
@import 'blueimp-gallery/css/blueimp-gallery-indicator';
@import 'gallery';
// settings

View File

@@ -1,7 +1,7 @@
/* Mixin file for sass. Here is where we define our variables and
browser compatability functions used in all scss/sass files */
/* Transision defaults */
// Transition defaults
$speed: 0.1s;
$easing: linear;
@@ -138,3 +138,21 @@ $default-border-radius: 3px;
.glyphicon-ok { display: none;}
}
}
@mixin aspect-dropdown-link($anchor-size) {
$link-text-color: #333;
a {
cursor: pointer;
padding-left: 10px;
.text {
color: $link-text-color;
font-size: $anchor-size;
}
&:hover {
background: $background-grey;
}
}
}

View File

@@ -1,23 +1,20 @@
@import 'mixins';
.aspect-dropdown {
li {
@include selectable-list;
@include aspect-dropdown-link(1em);
.status_indicator {
width: 19px;
height: 14px;
display: inline-block;
}
a {
.text {
color: #333333;
}
&:hover {
background: $background-grey;
}
cursor: pointer;
padding-left: 10px;
}
}
}
.aspect-membership {
max-height: 300px;
overflow: auto;
}

View File

@@ -10,14 +10,15 @@ body {
.page-contacts,
.page-conversations,
.page-notifications,
.page-people.action-show,
.page-people.action-contacts,
.page-people.action-show,
.page-photos,
.page-posts,
.page-profiles.action-edit,
.page-services.action-index,
.page-streams,
.page-tags,
.page-two_factor_authentications,
.page-user_applications,
.page-users.action-edit,
.page-users.action-update,
@@ -70,20 +71,29 @@ pre { word-wrap: break-word; }
height: 50px;
line-height: 50px;
opacity: 0;
pointer-events: none;
position: fixed;
right: 20px;
text-decoration: none;
transition: opacity ease 400ms;
width: 50px;
z-index: 49;
&:hover,
&.visible:hover {
&:focus,
&:active {
color: $white;
opacity: .85;
text-decoration: none;
}
&.visible { opacity: .5; }
&.visible {
opacity: .5;
pointer-events: auto;
&:hover {
opacity: .85;
}
}
}
.noscript {

View File

@@ -1,14 +0,0 @@
body > .container-fluid.chat-roster-shown {
padding-right: 224px;
#back-to-top { right: 244px; }
}
body > .container-fluid.chat-roster-hidden {
#back-to-top { right: 54px; }
}
// This element is instanciated by JSXC. Does not have to follow naming conventions
// scss-lint:disable IdSelector, SelectorFormat
#jsxc_roster {
top: $navbar-height;
}
// scss-lint:enable IdSelector, SelectorFormat

View File

@@ -5,3 +5,12 @@ pre {
white-space: pre;
code { white-space: pre; }
}
// For inline-code inside links, let's force the color to the default link
// color to make them be recognizable as links.
p a {
code,
pre {
color: $link-color;
}
}

View File

@@ -44,7 +44,7 @@ body {
pre code { border: 0; }
@import 'highlightjs/darcula';
@import 'highlightjs/styles/darcula';
#single-post-content .head {
.author-name { color: lighten($gray-lighter, 27%); }
@@ -55,8 +55,8 @@ body {
.tag:hover { background-color: desaturate(darken($link-color, 35%), 20%); }
#profile_container .profile_header {
#author_info #sharing_message.entypo-check { color: lighten($green, 10%); }
#sharing_message.entypo-check {
color: lighten($green, 10%);
}
#invitationsModal #email_invitation { border-top: 1px dashed $gray-light; }

View File

@@ -24,13 +24,9 @@
.comments > .comment,
.comment.new-comment-form-wrapper {
.avatar {
height: 35px;
width: 35px;
}
margin: 0;
border-top: 1px dotted $border-grey;
padding: 10px 0;
padding: 10px 0 0;
.info {
margin-top: 5px;
@@ -44,7 +40,18 @@
}
}
.comment.new-comment-form-wrapper { padding-bottom: 0; }
.permalink {
@include transition(opacity);
opacity: 0;
}
.comment:hover .permalink {
opacity: .8;
&:hover {
opacity: 1;
}
}
.submit-button {
margin-top: 10px;
@@ -71,6 +78,25 @@
}
}
.likes-on-comment {
&.likes {
margin-top: 6px;
}
.media {
margin: 0 0 2px;
&:not(.display-avatars) .entypo-heart {
display: none;
}
}
.expand-likes {
display: inline-block;
margin-bottom: 4px;
}
}
.new-comment {
&:not(.open) .submit-button,
&:not(.open) .md-header {

View File

@@ -37,9 +37,6 @@
text-decoration: none;
margin-right: 25px;
}
#chat_privilege_toggle > .enabled {
color: $text-color-active;
}
.contacts-header-icon {
font-size: 24.5px;
line-height: 40px;

View File

@@ -93,5 +93,10 @@ textarea {
}
::placeholder { text-transform: uppercase; }
p {
margin-top: .5rem;
text-align: center;
}
}
}

View File

@@ -1,12 +1,32 @@
$thumbnail-size: 12px;
$thumbnail-margin: 2px;
$thumbnail-active-size: $thumbnail-size + $thumbnail-margin;
$thumbnail-size: 50px;
$margin: 15px;
#blueimp-gallery {
.slides {
height: calc(100% - 40px);
padding: 20px 0 0 0;
margin: 0;
.slide {
overflow-y: auto;
}
.slide-content {
bottom: $margin * 2 + $thumbnail-size;
top: $margin;
}
.slide-error {
background-image: image-url("blueimp-gallery/img/error.svg");
}
.slide-loading {
background-image: image-url("blueimp-gallery/img/loading.gif");
}
.too-tall {
margin-bottom: $margin * 2 + $thumbnail-size;
max-height: none;
position: static;
}
}
[class^="entypo-"], [class*="entypo-"] {
@@ -37,24 +57,29 @@ $thumbnail-active-size: $thumbnail-size + $thumbnail-margin;
}
.indicator {
margin: 8px 0;
position: unset;
height: $thumbnail-size + 5px;
bottom: 0;
overflow-x: auto;
white-space: nowrap;
li {
border: none;
margin: $thumbnail-margin;
border: 0;
height: $thumbnail-size;
margin: $margin 6px;
vertical-align: middle;
width: $thumbnail-size;
height: $thumbnail-size;
border-radius: $thumbnail-size / 2;
background-size: cover;
&.active, &:hover{
margin: $thumbnail-margin / 2;
width: $thumbnail-active-size;
height: $thumbnail-active-size;
border-radius: $thumbnail-active-size / 2;
transition: linear 0.2s;
transition-property: height, width, margin;
&.active,
&:hover {
opacity: 1;
}
&:hover::after {
opacity: 0; // We don't want another thumbnail
}
&:only-child {
display: none;
}
}
}

View File

@@ -1,9 +1,4 @@
#hello-there {
#profile_photo_upload .avatar {
max-height: 200px;
max-width: 200px;
}
.well .avatar {
min-width: 50px;
}

View File

@@ -119,6 +119,19 @@
}
}
.dropdown-toggle {
align-items: center;
display: flex;
.user-name {
margin-right: 3px;
max-width: 250px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.user-menu-dropdown {
padding: 0;
}

View File

@@ -91,18 +91,6 @@ ul#help_nav {
border-radius: 0px 0px 4px 4px;
background-color: white;
padding: 10px 20px;
div.help-chat-icons{
text-align: center;
font-size: 50px;
line-height: 70px;
[class^="entypo-"], [class*="entypo-"] {
color: $text-color-pale;
&.entypo-chat { color: $text-color-active; }
}
}
}
}
}

View File

@@ -42,6 +42,14 @@
padding: 15px;
}
.part-of-diaspora {
font-style: italic;
a {
color: $white;
}
}
.login-form {
fieldset { background: none; }

View File

@@ -33,6 +33,12 @@
text-overflow: ellipsis;
}
.status-container {
align-items: center;
display: flex;
margin-bottom: 5px;
}
#hovercard_dropdown_container {
overflow: visible !important; /* otherwise the aspect dropdown is cropped */
}
@@ -53,10 +59,7 @@
.handle {
color: $text-grey;
line-height: 18px;
padding-top: 0px;
margin-top: 0px;
margin-bottom: 5px;
margin-right: 2px;
}
.btn-group.aspect-membership-dropdown { margin: 0 !important; }

View File

@@ -1,12 +1,13 @@
.page-sessions.action-new,
.page-sessions.action-create,
.page-passwords.action-new,
.page-passwords.action-edit {
padding-top: 25px;
.logos-asterisk {
background: image-url('branding/logos/asterisk.png') no-repeat;
height: 154px;
margin: auto;
margin-bottom: 12px;
margin: auto auto 12px;
width: 154px;
}

View File

@@ -16,6 +16,30 @@
}
}
h1 {
font-size: 2.7rem;
}
h2 {
font-size: 2.3rem;
}
h3 {
font-size: 2rem;
}
h4 {
font-size: 1.8rem;
}
h5 {
font-size: 1.6rem;
}
h6 {
font-size: 1.4rem;
}
.img-responsive {
display: inline;
}

View File

@@ -0,0 +1,21 @@
$stub-bg-color: #ddd;
.media-embed {
margin-top: 5px;
.thumb {
@include video-overlay;
background-color: $stub-bg-color;
video {
min-height: 60%;
vertical-align: middle;
width: 100%;
}
}
audio {
width: 100%;
}
}

View File

@@ -1,8 +1,5 @@
.bottom-bar {
border-radius: 0 0 5px 5px;
z-index: 3;
display: block;
position: relative;
padding: 8px 10px 10px;
background: $background-grey;
margin-top: 10px;
@@ -10,6 +7,17 @@
min-height: 22px;
overflow: hidden;
&,
.comment-stats {
border-bottom-left-radius: $border-radius-small;
border-bottom-right-radius: $border-radius-small;
}
.post-actions-container {
display: flex;
justify-content: space-between;
}
> a,
.show-comments,
.show-comments > [class^="entypo"] {
@@ -37,8 +45,7 @@
}
}
.post-stats {
float: right;
%stats {
position: relative;
display: flex;
@@ -46,9 +53,9 @@
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
line-height: 22px;
line-height: 24px;
margin-left: 5px;
vertical-align: top;
vertical-align: text-bottom;
z-index: 2;
}
@@ -67,17 +74,36 @@
}
.entypo-reshare.active { color: $blue; }
.entypo-heart.active { color: $red; }
}
.post-action {
.post-stats {
@extend %stats;
}
.comment-stats {
@extend %stats;
background: $background-grey;
border-top: 1px solid $border-grey;
flex-direction: row-reverse;
padding: 3px;
}
%action {
display: flex;
margin: 0 7px;
.disabled { color: $medium-gray; }
}
.post-action {
@extend %action;
}
.comment-action {
@extend %action;
}
.add-comment-switcher { padding-top: 10px; }
&.inactive {
@@ -91,16 +117,19 @@
.stream-element .comments {
margin: 0;
margin-top: 10px;
padding: 0;
width: 100%;
.content { padding: 0; }
.comment {
border-top: 1px solid $border-medium-grey;
padding: 10px 0 0;
background-color: $framed-background;
border: 1px solid $border-medium-grey;
border-radius: 5px;
margin-top: 10px;
&:first-child { padding-top: 20px; }
.media {
padding: 6px;
}
}
}

Some files were not shown because too many files have changed in this diff Show More