Compare commits

...

861 Commits

Author SHA1 Message Date
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
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
cmrd Senya
0ae19071ad Set video click handler at app.views.ExpandedComment
fixes #7736

closes #7737
2018-03-10 00:01:13 +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
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
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
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
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
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
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
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
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
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
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
3033e915e5 Merge branch 'next-minor' of github.com:diaspora/diaspora into next-minor 2018-02-08 23:19:57 +01:00
Benjamin Neff
a8fcbb3365 Merge branch 'master' into next-minor 2018-02-08 22:55:30 +01:00
Benjamin Neff
1f3ad2fa65 Merge branch 'release/0.7.3.0' 2018-02-08 22:54:14 +01:00
Benjamin Neff
aff4be8821 updated 21 locale files [ci skip] 2018-02-08 22:46:45 +01:00
Benjamin Neff
e0687e8de3 Upgrade Nokogiri to fix a disclosed vulnerability in libxml2 2018-02-08 22:44:11 +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
7abb0518e9 Start 0.7.4.0 cycle
[ci skip]
2018-02-01 23:48:04 +01:00
Benjamin Neff
5e157dc9c3 Send participation after receiving a public post
This is to let the author of the post know, that this pod is interested
in updates about this post.

The sending user is only used to verify that the participation was sent
from this pod, but lets use an admin/podmin account if available.

closes #7708
2018-02-01 23:40:51 +01:00
Benjamin Neff
6c5b8b73af Fix post_message for posts without text
fixes #7700
closes #7706
2018-02-01 23:39:18 +01:00
Benjamin Neff
a32cac06ab Retry Contact messages 20 time (about two weeks)
closes #7705
2018-02-01 23:37:53 +01:00
Benjamin Neff
b9787cc632 Start sending the blocking flag 2018-02-01 23:35:35 +01:00
Benjamin Neff
815cf121ab Remove participants limit for conversations
The limit was added in 2012 to prevent spam, but since the participants
need to be a mutual contact with the author nowadays, I don't think it's
a spam problem anymore.
2018-02-01 23:35:35 +01:00
Benjamin Neff
80bfc3fcfd Bump diaspora_federation 2018-02-01 23:35:35 +01:00
Benjamin Neff
746ff52256 Fix mention in #newhere message when invited by another person
fixes #7701
closes #7702
2018-02-01 23:35:04 +01:00
Benjamin Neff
f23966ef87 Make mobile bookmarklet work the same way as with desktop UI
This fixes that it fails when you call it without notes parameter.

closes #7698
2018-02-01 23:33:36 +01:00
Fla
a72feee812 Changelog misspelling [ci skip]
closes #7710
2018-01-31 22:15:27 +01:00
flaburgan
b156c2f1a3 Use current-password and new-password for password autocomplete
closes #7642
fixes #7633
2018-01-21 21:29:06 +01:00
Dennis Schubert
5a6bd47000 Merge branch 'master' into next-minor 2018-01-12 17:56:01 +01:00
Dennis Schubert
a40824cd2b Merge branch 'hotfix/0.7.2.1' 2018-01-12 17:54:27 +01:00
Benjamin Neff
5bc4473e11 Fix notifications when people remove their birthday date
Some people may remove their birthday date after the notification was
sent, which then breaks the notification page for other users. Let's
just display the date when the notification was created, and not display
the users updated birthday date. When users update from date A to B it
always looks weird anyway, when we display the same new date B twice on
different days, or display two different dates for the same user.

We could remove notifications when users change or remove their
birthday, but that would be way more complex and also we usually don't
remove notifications (not even for deleted posts).

Fixes #7689

closes #7691
2018-01-12 17:52:57 +01:00
Brad Koehn
1a3c16eb6e update to support 280 character Twitter
closes #7694
closes #7662
fixes #7661
2018-01-09 00:05:33 +01:00
Janakas
0347507b20 Delete archive files when closing an account
closes #7684
2018-01-08 21:15:41 +01:00
Janakas
d4e5d13a8f Remove old export archives after 2 weeks
Fixes #5727
2018-01-08 21:14:06 +01:00
Janakas
497c647983 Rearrange userdata-export section and change timestamp to timeago 2018-01-08 21:14:01 +01:00
Janakas
d150a6b2af Fix invite link on /contacts
closes #7690
2018-01-05 03:45:54 +01:00
Benjamin Neff
c135ace407 Fix notifications when people remove their birthday date
Some people may remove their birthday date after the notification was
sent, which then breaks the notification page for other users. Let's
just display the date when the notification was created, and not display
the users updated birthday date. When users update from date A to B it
always looks weird anyway, when we display the same new date B twice on
different days, or display two different dates for the same user.

We could remove notifications when users change or remove their
birthday, but that would be way more complex and also we usually don't
remove notifications (not even for deleted posts).

Fixes #7689

closes #7691
2018-01-05 01:50:11 +01:00
Janakas
2e3b7dee1e Check for a running redis in script/server
Fixes #5267

closes #7685
2017-12-30 15:40:30 +01:00
Benjamin Neff
25d41429bc Merge branch 'master' into next-minor 2017-12-26 03:37:57 +01:00
Benjamin Neff
cf2bd66005 Merge branch 'release/0.7.2.0' 2017-12-26 03:36:49 +01:00
Benjamin Neff
a9cce95a74 updated 32 locale files [ci skip] 2017-12-26 03:30:32 +01:00
Benjamin Neff
ba85f35ae9 Merge branch 'release/0.7.2.0' into next-minor 2017-12-25 20:55:22 +01:00
Benjamin Neff
e0eb76eb2a Remove aspect_ids parameter from publisher
closes #7683
2017-12-25 20:54:10 +01:00
Benjamin Neff
70c659192f Fix default aspects on profile page and bookmarklet publisher
Fixes #7679
2017-12-25 20:54:05 +01:00
Benjamin Neff
53b7dcd8ca Merge branch 'release/0.7.2.0' into next-minor 2017-12-24 02:50:28 +01:00
Benjamin Neff
d59b5b2df7 Fix birthday notification mail
Fixes #7681

closes #7682
2017-12-24 02:50:19 +01:00
Benjamin Neff
c5536395c0 Start 0.7.3.0 cycle 2017-12-18 04:55:45 +01:00
flaburgan
53603917eb Fix deformed hovercards avatar
closes #7656

fixes #6039
2017-12-18 04:40:13 +01:00
Rete2
fc33a2ac5d Create birthday notification and mailer
closes #7624

fixes #1649
2017-12-18 04:34:35 +01:00
Benjamin Neff
89eeec72d3 Merge branch 'master' into next-minor 2017-11-01 00:50:17 +01:00
Benjamin Neff
2c9fec91da Merge branch 'hotfix/0.7.1.1' 2017-11-01 00:49:19 +01:00
Benjamin Neff
7c4648030f Run rake directly without xvfb on travis
closes #7654
2017-11-01 00:46:36 +01:00
Benjamin Neff
4e267bb1ef Use configure_bundler script on travis 2017-11-01 00:45:22 +01:00
Benjamin Neff
a14115119c Add script/configure_bundler to set correct bundler options 2017-11-01 00:45:22 +01:00
Benjamin Neff
63fcc9c1bc Fix compatibility with Bundler 1.6
Stop using `Bundler.settings.with`, because it will be removed from
Bundler 1.6.

Also, as described in #7653, we could use `Bundler.settings[:with]`, but
that would be internal API again, so it probably breaks again in the
future. That's why I added a `BundlerHelper` module to parse the
required optional group from our config files, without the use of any
internal Bundler API.

Fixes #7653
2017-11-01 00:45:18 +01:00
Benjamin Neff
70410d1691 Ignore invalid diaspora:// links
Fixes #7651

closes #7652
2017-10-27 02:26:52 +02:00
Benjamin Neff
2ce7d59cb3 Merge branch 'master' into next-minor 2017-10-21 00:45:59 +02:00
Benjamin Neff
db95c94c97 Merge branch 'release/0.7.1.0' 2017-10-21 00:44:32 +02:00
Benjamin Neff
783650e34c updated 35 locale files [ci skip] 2017-10-21 00:41:40 +02:00
Benjamin Neff
4bf0a74382 Merge branch 'release/0.7.1.0' into next-minor 2017-10-20 02:56:16 +02:00
Benjamin Neff
0f688b9d73 Group notifications by updated_at
The notifications need to be grouped by the same date as they are
sorted, otherwise the date used for the group doesn't match all
timestamps in the group and also the groups are sorted by the wrong
date.

This fixes #7647, a regression of #7568.

closes #7648
2017-10-20 02:56:06 +02:00
Benjamin Neff
f7349457d3 Merge branch 'release/0.7.1.0' into next-minor 2017-10-20 01:25:33 +02:00
Benjamin Neff
c9423bfdd2 Add some progress indicators to the account deletions rake task
[ci skip]

closes #7646
2017-10-20 01:25:28 +02:00
Benjamin Neff
31559ce483 Merge branch 'release/0.7.1.0' into next-minor 2017-10-18 01:08:35 +02:00
Benjamin Neff
9673f45ff9 Cleanup empty signatures
Some relayables from redmatrix and hubzilla have empty signatures. They
are invalid and break therefore the user data export.

closes #7644
2017-10-18 01:08:26 +02:00
Benjamin Neff
1ac0dfbbbc Merge branch 'release/0.7.1.0' into next-minor 2017-10-17 01:39:39 +02:00
cmrd Senya
2e9c6f46dc Clean up invalid contacts from the DB
Cleans invalid contacts where the referenced user was deleted from the DB or where
the referenced person owner was deleted from the DB.

closes #7632
2017-10-17 01:39:22 +02:00
cmrd Senya
ad025850ce Forbid user destruction 2017-10-17 01:38:36 +02:00
cmrd Senya
973e9d98c6 Raise sensible error message when user is missing
That's for the case when podmin has messed up the database
2017-10-17 01:38:36 +02:00
cmrd Senya
f212b51f7f Check for user existence on aspect membership destruction 2017-10-17 01:38:36 +02:00
Benjamin Neff
a36d22d72b Handle duplicate account migrations
closes #7641
2017-10-17 01:36:25 +02:00
Benjamin Neff
2bd9c663c5 Add rake task to rerun failed account deletions
closes #7639
2017-10-17 01:33:43 +02:00
Benjamin Neff
6d5647ec11 Handle duplicate account deletions 2017-10-17 01:32:14 +02:00
Benjamin Neff
b920ddbff5 Move special and ignored associations to tests 2017-10-17 01:32:14 +02:00
Benjamin Neff
f704f30572 Remove conversation visibilities with standard person associations 2017-10-17 01:32:14 +02:00
Benjamin Neff
f4902421ea Destroy user and person associations in batches 2017-10-17 01:32:14 +02:00
Benjamin Neff
4e6d92ce63 Remove wrapping transaction for account deletion
This uses a lot of memory for big accounts. Also it doesn't make much
sense to rollback everything when something fails, it's better to delete
everything we can.
2017-10-17 01:32:13 +02:00
flaburgan
faff140a3f Avoid page to jump to top after a post deletion, fixes #7628
closes #7638
2017-10-17 01:30:12 +02:00
Benjamin Neff
2711b9dc83 Cleanup relayables where the signature is missing
When we should have the signature but don't have it, the user data
export fails. There are a few comments from back in 2011 where the
signature is missing.

Also some podmins maybe messed with signatures in their database, which
would also break the exports now.

closes #7637
2017-10-17 01:27:00 +02:00
Benjamin Neff
32067246df Delete people with invalid diaspora IDs (friendica with path)
closes #7630
2017-10-17 01:23:47 +02:00
Benjamin Neff
1b6ffa2528 Start 0.7.2.0 cycle 2017-09-28 23:38:57 +02:00
Benjamin Neff
fd36517dee Limit the number of parallel exports that are allowed to run
closes #7629
2017-09-28 23:11:46 +02:00
Benjamin Neff
b8fb4b6251 Delete invalid oEmbed caches with binary titles
There are a few old oEmbed caches which have the title saved in binary
(because they contain Chinese characters). This fails with
`ActionView::Template::Error ("å" from ASCII-8BIT to UTF-8)`. Since I
found only very old OEmbed caches with this problem (newest from 2012),
I think we can just remove these. When I create a new oEmbed cache for
the same URL it creates it without `!binary`.

closes #7620
2017-09-28 23:10:07 +02:00
Benjamin Neff
3fafcd9307 The diaspora ID validator now validates if it is lowercase
Relaying relayables will fail with non-lowercase authors.

closes #7625
2017-09-28 23:08:41 +02:00
Benjamin Neff
84b89d5594 Relay likes for comments 2017-09-28 23:04:35 +02:00
Benjamin Neff
5f5d8c5e13 Replace diaspora:// links in the text 2017-09-28 23:04:35 +02:00
Benjamin Neff
4a994b0a48 Creates references for linked posts after create 2017-09-28 23:04:34 +02:00
Benjamin Neff
c82e891c03 Add reference source and target behaviour 2017-09-28 23:04:34 +02:00
Benjamin Neff
28d3271933 Create refereces model 2017-09-28 23:04:34 +02:00
Benjamin Neff
35711606e4 Remove public and provider_display_name from reshares 2017-09-28 23:04:34 +02:00
Benjamin Neff
bb97aa8538 Allow RFC 7033 WebFinger via http:// for development 2017-09-28 23:04:34 +02:00
Benjamin Neff
7c304119e1 Bump diaspora_federation 2017-09-28 23:04:21 +02:00
Benjamin Neff
95fbd3fc66 Don't change the filename of the export everytime the user is touched
closes #7622
2017-09-28 03:28:15 +02:00
Benjamin Neff
ac39e920c8 Add camo to NodeInfo
closes #7617
2017-09-28 03:20:31 +02:00
Benjamin Neff
e4b0b569e2 Bump pry
closes #7618
2017-09-28 03:15:34 +02:00
Benjamin Neff
ca8a3db5bc Bump leaflet-rails 2017-09-28 03:15:32 +02:00
Benjamin Neff
5ebbacf444 Mock call to nominatim for cucumber 2017-09-28 03:15:32 +02:00
Benjamin Neff
bd99127600 Bump rails-assets-markdown-it 2017-09-28 03:15:32 +02:00
Benjamin Neff
1e44d9c0a9 Bump rails-assets-jasmine 2017-09-28 03:15:31 +02:00
Benjamin Neff
33c92028f8 Bump rails-assets-blueimp-gallery 2017-09-28 03:15:31 +02:00
Benjamin Neff
f35e5d9cd9 Bump simplecov-html 2017-09-28 03:15:31 +02:00
Benjamin Neff
2e19fa6eec Bump hashdiff 2017-09-28 03:15:31 +02:00
Benjamin Neff
abeb46aa2d Bump haml 2017-09-28 03:15:31 +02:00
Benjamin Neff
f50b28ab7d Bump fabrication 2017-09-28 03:15:31 +02:00
Benjamin Neff
6dbad14d00 Bump bindata 2017-09-28 03:15:31 +02:00
Benjamin Neff
a9bb673881 Bump rubocop 2017-09-28 03:15:30 +02:00
Benjamin Neff
156c7b8253 Bump pry-byebug 2017-09-28 03:15:30 +02:00
Benjamin Neff
34a149f61a Bump pronto 2017-09-28 03:15:30 +02:00
Benjamin Neff
5edbd8f740 Bump jasmine 2017-09-28 03:15:30 +02:00
Benjamin Neff
edfab73589 Bump typhoeus 2017-09-28 03:15:30 +02:00
Benjamin Neff
e607057138 Bump sprockets-rails 2017-09-28 03:15:30 +02:00
Benjamin Neff
eac9e8fd97 Bump secure_headers 2017-09-28 03:15:30 +02:00
Benjamin Neff
aac57a926b Bump js-routes 2017-09-28 03:15:30 +02:00
Benjamin Neff
769abf6948 Bump fog-aws 2017-09-28 03:15:29 +02:00
Benjamin Neff
c8f24dd872 Bump faraday_middleware 2017-09-28 03:15:29 +02:00
Benjamin Neff
9a3faa8917 Bump autoprefixer-rails 2017-09-28 03:15:29 +02:00
Benjamin Neff
8d01a1d389 Bump addressable 2017-09-28 03:15:29 +02:00
Benjamin Neff
6543e1c200 Bump activerecord-import 2017-09-28 03:15:29 +02:00
Benjamin Neff
f012a13809 Bump rails 2017-09-28 03:15:29 +02:00
Benjamin Neff
c7a3d85c83 Set TargetRubyVersion in .rubocop.yml [ci skip]
closes #7621
2017-09-28 03:14:31 +02:00
Benjamin Neff
d3d66f30c3 Bump ruby versions on travis
closes #7616
2017-09-28 03:13:07 +02:00
cmrd Senya
c6ed850a85 Memory usage optimization for archive export
- Removed posts and non contacts from other's data
- Collections are exported in batches to lower memory footprint
- In base exporters create User object instead of keeping instance because it caches all associations

closes #7627
2017-09-26 04:07:18 +02:00
cmrd Senya
ea57fc5d25 Fix mistyped remote person in dispatcher spec 2017-09-26 04:06:43 +02:00
cmrd Senya
9f0b74ebbb Memory usage test for archive export
It is not included into the main test suite, because it has :performance tag.

One can run this test using command:
$ bin/rspec --tag performance spec/integration/export/memory_usage_spec.rb

This test creates additional fixtures set to speed up repeated runs.
2017-09-26 04:06:43 +02:00
cmrd Senya
265a7ee253 Don't force fixtures rebuild on each rspec run
Main purpose of fixtures for us is to speed up test runs. Rebuilding
fixtures each run makes them pointless. They will be rebuilt automatically
if some of "files_to_check" are changed, so we're protected from the case
when fixtures are outdated and don't load properly.
2017-09-26 04:06:43 +02:00
cmrd Senya
9ee9dbe969 Fix local migration run without old private key
It was possible to run migration locally without providing old private
key. This way migration was performed but not dispatched, which obviously
leads to desynchronization of the federation state so let's validate sender
before performing any actual actions.

closes #7558
2017-09-26 04:06:16 +02:00
Benjamin Neff
c8340f7d28 Merge branch 'master' into next-minor 2017-09-19 20:26:57 +02:00
Benjamin Neff
508e44e01b Merge branch 'hotfix/0.7.0.1' 2017-09-19 20:24:37 +02:00
Benjamin Neff
13d6c23713 Bump nokogiri for a security release 2017-09-19 20:20:57 +02:00
Benjamin Neff
655fe2a912 Cleanup invalid polls without status message
closes #7614
2017-09-18 03:24:52 +02:00
Benjamin Neff
00296ffda5 Cleanup invalid likes without target 2017-09-18 03:23:01 +02:00
Benjamin Neff
028199a6f3 Remove "string" column from "ppid" table
This was added by accident in 4e18f3849d.

closes #7598
2017-09-18 03:21:41 +02:00
Benjamin Neff
4c967903fe Remove rails_admin_histories table
This was a leftover from rails_admin which was removed in #7440.

closes #7597
2017-09-17 19:35:50 +02:00
Benjamin Neff
1d2394571c Remove unused scripts
They were added a long time ago and they talk about rails 3 ... we have
rails 5 now and scripts in the bin folder, so I think we can remove
them.

closes #7596
2017-09-17 19:34:05 +02:00
Benjamin Neff
84d553555e Remove unneeded .freeze
closes #7595
2017-09-17 19:32:45 +02:00
Benjamin Neff
f7cbb20e11 Fix AppConfig.version_string with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
9556790480 Fix Person.find_by_substring with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
723be461cf Fix Services::Tumblr#tumblr_template with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
1b30508c19 Fix ConversationsHelper#conversation_class with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
79c2db65d7 Fix Diaspora::Camo.from_markdown with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
f2ab09db17 Fix NotificationMailers::Base#log_mail with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
9505eabcb3 Fix ApplicationHelper#changelog_url with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
a6b6251b53 Fix PeopleHelper#person_link and #person_image_link with frozen strings 2017-09-17 19:29:16 +02:00
Benjamin Neff
e82690963d Add # frozen_string_literal: true to all files 2017-09-17 19:29:15 +02:00
Benjamin Neff
44ebc7375a Remove unused spec-doc.rb
closes #7594
2017-09-17 19:27:47 +02:00
Benjamin Neff
45e714776e Don't truncate ar_internal_metadata after cucumber scenarios
This is an internal active record table and shouldn't be touched. When
this is truncated you need to fix it again by running
`bin/rails db:environment:set RAILS_ENV=test`

This is a temporary fix until there is a new version of
database_cleaner.

closes #7606
2017-09-04 02:49:07 +02:00
Steffen van Bergerem
460178ad34 Fix the screenshot tool
closes #7605
2017-09-03 23:53:26 +02:00
Steffen van Bergerem
ddaa6df0b4 Replace photo_attachments with photo-attachments
closes #7601
2017-08-31 02:45:02 +02:00
Steffen van Bergerem
b77ecd482a Replace aspect_membership_dropdown with aspect-membership-dropdown 2017-08-31 02:44:54 +02:00
Steffen van Bergerem
473cc2518b Replace comment_box with comment-box 2017-08-31 02:44:53 +02:00
Steffen van Bergerem
7457f254c1 Replace last_author with last-author 2017-08-31 02:44:53 +02:00
Steffen van Bergerem
9fa032e4c9 Replace people_stream with people-stream 2017-08-31 02:44:53 +02:00
Steffen van Bergerem
7729635485 Replace publisher_textarea_wrapper with publisher-textarea-wrapper 2017-08-31 02:44:53 +02:00
Steffen van Bergerem
caeaf23d4b Replace aspect_dropdown with aspect-dropdown 2017-08-31 02:44:53 +02:00
Steffen van Bergerem
3df4749733 Replace stream_container with stream-container 2017-08-31 02:44:53 +02:00
Steffen van Bergerem
b4e3f84607 Replace main_stream with main-stream 2017-08-31 02:44:47 +02:00
Benjamin Neff
e31c5ff4dc Handle unauthenticated users for likes/comments of private posts
closes #7583
2017-08-29 12:55:03 +02:00
Benjamin Neff
350e24863f Allow to load likes and reshares without login 2017-08-29 12:35:48 +02:00
Steffen van Bergerem
d130697ce2 Use Bootstrap 3 progress-bar for polls
closes #7600
2017-08-29 02:17:32 +02:00
Steffen van Bergerem
02d9d350d9 Move person extension for prefills to conversations form view
closes #7599
2017-08-29 02:13:57 +02:00
Steffen van Bergerem
48630b3a04 Fix conversation recipient prefill on contacts page
Use the already available contacts data for the prefill
2017-08-29 02:13:27 +02:00
Steffen van Bergerem
666ada44f1 Fix conversation recipient prefill on profile page
Fixes #7586

Use the already available data about the recipient for the prefill
2017-08-29 02:13:27 +02:00
Steffen van Bergerem
9d2763089d Replace where...first with find_by
Fixes #7539

closes #7593
2017-08-29 02:11:17 +02:00
flaburgan
a358bf7b66 Move the notification to be the first icon on the left
closes #7592
2017-08-29 02:09:51 +02:00
Steffen van Bergerem
98cccda6ea Remove auto detection of languages with highlightjs
Fixes #7476

closes #7591
2017-08-29 02:07:57 +02:00
Steffen van Bergerem
2bb7d4e067 Use language- prefix for codeblocks as defined in the CommonMark spec 2017-08-29 02:07:10 +02:00
Benjamin Neff
04035c3eb7 Allow to receive reshares without root
closes #7590
2017-08-29 02:06:08 +02:00
Benjamin Neff
163ffdb19b Allow multiple reshares without root
Follow-up for #7578

Fixes #7587
2017-08-29 02:05:43 +02:00
Steffen van Bergerem
cd09c75c50 Prevent users from zooming in IE Mobile
Fixes #7499

According to https://msdn.microsoft.com/en-us/library/dn629259(v=vs.85).aspx,
“the minimum-scale, maximum-scale, and initial-scale properties are currently
unsupported for Internet Explorer for Windows Phone“.

For further information on the viewport properties see
https://drafts.csswg.org/css-device-adapt/#viewport-meta

closes #7589
2017-08-29 02:04:00 +02:00
Benjamin Neff
6d7ba96c4f Remove locals option from render_template assertion
The locals option is only supported in ActionView::TestCase, so it is
ignored anyway (even worse, it disabled the complete assertion). I added
some more assertions to ensure the template is rendered with the correct
conversation.

closes #7588
2017-08-29 02:02:03 +02:00
Benjamin Neff
634c13f967 Remove wrong format: :json from status_messages_controller_spec
This was added by accident with the rails5 upgrade
2017-08-29 02:01:43 +02:00
goobertron
e7cac2e466 Replace <b> with <strong> in translations
closes #7585
2017-08-29 02:00:34 +02:00
goobertron
51152e140d Add ignore feature to help section
Fixes #7572
2017-08-29 01:59:51 +02:00
Benjamin Neff
e36b59309f Remove xml format from posts controller
closes #7584
2017-08-29 01:59:04 +02:00
Rete2
b556ad5211 show users vote in poll
closes #7550
2017-08-26 03:16:05 +02:00
Benjamin Neff
e08440d7ba Merge migrations from before 0.6.0.0 to 0000_create_schema.rb
closes #7580
2017-08-26 03:13:05 +02:00
Benjamin Neff
b040f85790 Remove root_guid from reshares when post is deleted
And cleanup old reshares with deleted root posts

closes #7578
2017-08-26 03:08:37 +02:00
Manuel Vögele
0f771dbb10 Remove tiff support from photos
closes #7576
2017-08-26 03:02:51 +02:00
Steffen van Bergerem
ce40ec128f Fix mixed username and timestamp with LTR/RTL scripts
Fixes #7424

closes #7575
2017-08-26 02:59:24 +02:00
Steffen van Bergerem
c91c19b633 Order notifications by updated_at instead of created_at
closes #7568
2017-08-26 02:57:16 +02:00
Benjamin Neff
5ea7b8ee13 Set fog_provider and load carrierwave/storage/fog if S3 is enabled
Fixes #7563

closes #7566
2017-08-26 02:50:18 +02:00
Frédéric Bolvin
398235ee6f use asset manifest instead of entries in config.assets.precompile
closes #7565
2017-08-26 02:44:41 +02:00
Deus Figendi
e547a89246 fixes #7573 long poll answers
closes #7579
2017-08-25 01:51:31 +02:00
Benjamin Neff
9240605ad5 Remove internet explorer version check
This was in all stack traces, which confused people ...

We currently only support IE11, so the version check was already old
again ...

When we break old browser versions, we don't check that for other
browsers. So older IE browser just break, like very other older browser
too.

closes #7557
2017-08-24 14:57:43 +02:00
Benjamin Neff
8f0c74f72e Remove old_browser_js_support
This was needed for IE8 and IE9
2017-08-24 14:56:37 +02:00
Benjamin Neff
b8149a1fa1 Remove ie.js
Was needed for IE8
2017-08-24 14:56:37 +02:00
Benjamin Neff
494518def1 Remove old message parameter from invite mail
closes #7571
2017-08-23 21:55:43 +02:00
Benjamin Neff
b530ed0be0 Switch back to mobile-fu
closes #7570
2017-08-23 21:50:29 +02:00
Benjamin Neff
2f3ea8c397 Merge branch 'master' into next-minor 2017-08-19 22:41:02 +02:00
Benjamin Neff
7153df5c86 Merge branch 'release/0.7.0.0' 2017-08-19 22:38:38 +02:00
Benjamin Neff
1c753204bc Merge branch 'release/0.7.0.0' into next-minor 2017-08-19 18:24:43 +02:00
Benjamin Neff
bf47e1bc93 Make sc avaliable
Also add "it" as fallback for "oc" and "sc"
2017-08-19 18:23:38 +02:00
Benjamin Neff
3b9848802e updated 53 locale files [ci skip] 2017-08-19 18:05:00 +02:00
Benjamin Neff
278298e21d Merge branch 'release/0.7.0.0' into next-minor 2017-08-19 15:04:09 +02:00
Benjamin Neff
4ef0c19ce3 Change order of fields in fill_in_new_user_form
The user_email is the first field anyway, and login form as a
user_username field too, so it maybe happens that we already fill in the
user_username filed there before page load finished.

closes #7556
2017-08-19 15:04:04 +02:00
Batyr Nuryyev
951a258a3d no title upon hover on button
closes #7551
2017-08-19 12:39:35 +02:00
ivan sebastian
3016280ef1 add jquery are you sure to comment form
closes #7530
2017-08-19 12:31:24 +02:00
Benjamin Neff
7e0cbff4fa Merge branch 'release/0.7.0.0' into next-minor 2017-08-19 07:39:55 +02:00
Benjamin Neff
50dd7b03d7 Wait for ajax request before checking contacts
closes #7554
2017-08-19 07:39:27 +02:00
Benjamin Neff
a01cc4dfcb Merge branch 'release/0.7.0.0' into next-minor 2017-08-17 11:42:11 +02:00
Benjamin Neff
aa8d46da0c Wait for post to be deleted before continuing
closes #7548
2017-08-17 11:42:04 +02:00
Steffen van Bergerem
fdff13e542 Enable tooltips for comment timeagos
closes #7547
2017-08-17 11:40:56 +02:00
Steffen van Bergerem
6ae2df2f9e Fix missing timeagos for comments in the single post view 2017-08-17 11:40:49 +02:00
Benjamin Neff
685135474b Merge branch 'release/0.7.0.0' into next-minor 2017-08-17 03:36:38 +02:00
Benjamin Neff
17949ffb4e Match parameter with match_array to fix order mismatch
closes #7546
2017-08-17 03:27:46 +02:00
Steffen van Bergerem
4cb365a6f4 Fix missing photos in the single post view
closes #7545
2017-08-17 03:25:31 +02:00
Steffen van Bergerem
ff9591aee0 Use gender-neutral forms in comments and specs
closes #7544
2017-08-17 00:50:55 +02:00
Benjamin Neff
f295da1613 Merge branch 'release/0.7.0.0' into next-minor 2017-08-16 20:42:22 +02:00
Benjamin Neff
b49b33675f Wait for stream to load and deselect each aspect individually
closes #7543
2017-08-16 20:41:13 +02:00
Benjamin Neff
cdc3084990 Wait for stream to load for invitation test 2017-08-16 20:41:05 +02:00
Benjamin Neff
2d06b2865f Handle when the block to delete doesn't exist
closes #7542
2017-08-16 20:40:11 +02:00
Benjamin Neff
a4d1ad160c Fix stop ignoring from privacy settings and on mobile
Fixes #7541
2017-08-16 20:39:58 +02:00
Benjamin Neff
0c1dd195da Start 0.7.1.0 cycle 2017-08-15 01:45:45 +02:00
Benjamin Neff
ecd4601bac Remove 0.6.8.0 from Changelog 2017-08-15 01:40:01 +02:00
Benjamin Neff
cbc3900d59 Merge pull request #6750 from cmrd-senya/account_migration_message
Account migration model/message
2017-08-15 01:13:43 +02:00
Benjamin Neff
d6225daaf3 Merge pull request #7534 from oneturkmen/enable-mobile-web-app-capable-meta
added tag for supporting apps prior to Chrome M39
2017-08-15 00:56:43 +02:00
cmrd Senya
45619cb153 Account migration model and message support
This commit introduces support for AccountMigration federation message
receive. It covers the cases when the new home pod for a user is remote
respective to the recepient pod of the message. It also allows to initiate
migration locally by a podmin from the rails console. This will give the
pods a possibility to understand the account migration event on the
federation level and thus future version which will implement migration
will be backward compatible with the pods starting from this commit.
2017-08-15 01:32:34 +03:00
cmrd Senya
e2979df65a Add explicit mutual contact to test data
Add explicit mutual contact creation to the DataGenerator#generic_user_data
which is used in account deletion tests.
2017-08-14 19:15:54 +03:00
Batyr Nuryyev
70dfcd97c5 added tag for supporting apps prior to Chrome M39
updates tag to follow standard styleguide
2017-08-14 16:25:42 +03:00
cmrd Senya
8f46073809 Stop disabling Send workers for each example 2017-08-14 13:54:38 +03:00
Benjamin Neff
b447eb6e95 Merge pull request #7538 from SuperTux88/fix-account_deleter
Re-add disconnect_contacts in AccountDeleter
2017-08-14 10:28:57 +02:00
Benjamin Neff
a61d5739d4 Re-add disconnect_contacts in AccountDeleter 2017-08-14 04:52:00 +02:00
Benjamin Neff
064b409390 Merge pull request #7537 from SuperTux88/update-gems
Update thor, coveralls and simplecov
2017-08-14 04:08:19 +02:00
Benjamin Neff
1bd630d8a1 Merge pull request #7536 from SuperTux88/refactor-publisher-preview
Remove avatar, name, timestamp and interactions from publisher preview
2017-08-14 04:07:56 +02:00
Benjamin Neff
7a21c227f7 Merge pull request #7535 from SuperTux88/unstuck-export
Reset stuck exports and handle errors
2017-08-14 04:05:25 +02:00
Benjamin Neff
47574bc324 Bump coveralls and simplecov 2017-08-14 03:15:21 +02:00
Benjamin Neff
907e221f24 Unlock thor again
It looks like all commands we use in production fixed the warnings
(rails 5.1), so we can update that again.
2017-08-14 03:04:05 +02:00
Benjamin Neff
dd6cbbbb8e Remove avatar, name, timestamp and interactions from publisher preview
This doesn't add any value in the post preview:
* Avatar is already at the left-hand side of the publisher
* Timestamp is always "less than a minute ago"
* Interactions are disabled in the preview anyway

We don't display these things in the comment preview either, they only
need space and don't add any value to the preview.
2017-08-14 02:21:28 +02:00
Benjamin Neff
1db6381308 Reset stuck exports 2017-08-14 00:36:52 +02:00
Benjamin Neff
172f80bcae Handle unexpected errors while exporting userdata or photos
Otherwise the export stays soft-locked and the podmin needs to reset it
manually.

Fixes #6225
2017-08-14 00:36:52 +02:00
Benjamin Neff
9adcca2679 Merge pull request #7533 from SuperTux88/add-indexes
Add missing indexes from #7234
2017-08-13 20:57:39 +02:00
Benjamin Neff
cc8fa3e5cd Merge pull request #7532 from svbergerem/update-gems
Update gems
2017-08-13 20:37:52 +02:00
Benjamin Neff
dbde75abcf Add missing unique indexes from #7234 2017-08-13 20:10:07 +02:00
Benjamin Neff
1d5460cd64 Cleanup invalid aspects and set unique index 2017-08-13 20:10:07 +02:00
Benjamin Neff
0577bf8058 Add missing indexes
See #7234
2017-08-13 20:10:07 +02:00
Benjamin Neff
7ffd7878d0 Use person for AccountDeleter
Also remove `disconnect_contacts` methods, because contacts are already
removed with aspects memberships in `before_destroy`.
2017-08-13 20:10:07 +02:00
Benjamin Neff
245ad9e04d Remove diaspora_handle from AccountDeletions and add unique index 2017-08-13 19:43:04 +02:00
Benjamin Neff
fa0b78f5a2 Merge pull request #7531 from svbergerem/comment-preview-mentions
Render mentions in comment previews correctly
2017-08-13 15:04:58 +02:00
Steffen van Bergerem
3c59bcc4cd Bump raindrops 2017-08-13 14:56:25 +02:00
Steffen van Bergerem
b3a3adcd72 Bump rails-assets-jasmine 2017-08-13 14:40:49 +02:00
Steffen van Bergerem
d09bedf597 Bump jsonpath 2017-08-13 14:36:38 +02:00
Steffen van Bergerem
b1e885b0b3 Bump hitimes 2017-08-13 14:31:17 +02:00
Steffen van Bergerem
4979b8d95b Bump hashdiff 2017-08-13 14:29:45 +02:00
Steffen van Bergerem
322d112fe6 Bump haml 2017-08-13 14:28:35 +02:00
Steffen van Bergerem
2e2d3b5c7c Bump fog-core 2017-08-13 14:27:20 +02:00
Steffen van Bergerem
4e0f22ebb4 Bump excon 2017-08-13 14:25:37 +02:00
Steffen van Bergerem
d0a2fafeb7 Bump rspec-rails 2017-08-13 14:16:24 +02:00
Steffen van Bergerem
f1a7a3735c Bump poltergeist 2017-08-13 14:14:49 +02:00
Steffen van Bergerem
de4afb2d1f Bump jasmine 2017-08-13 14:12:03 +02:00
Steffen van Bergerem
c0713ddd8e Bump capybara 2017-08-13 14:08:10 +02:00
Steffen van Bergerem
2e25785f97 Bump versionist 2017-08-13 14:04:46 +02:00
Steffen van Bergerem
6df48b50c3 Bump openid_connect 2017-08-13 14:03:06 +02:00
Steffen van Bergerem
2d28ce3abf Bump mysql2 2017-08-13 14:00:51 +02:00
Steffen van Bergerem
7a3f6cec4e Bump autoprefixer-rails 2017-08-13 13:58:35 +02:00
Steffen van Bergerem
60d2db2732 Bump acts_as_api 2017-08-13 13:56:43 +02:00
Steffen van Bergerem
54d70a87ed Render mentions in comment previews correctly 2017-08-13 13:50:02 +02:00
Benjamin Neff
4b1c5685a9 Merge pull request #7529 from SuperTux88/actionview-loglevel
Disable rendering logging in production
2017-08-13 13:12:14 +02:00
Benjamin Neff
5f3a62fc43 Disable rendering logging in production 2017-08-13 05:23:57 +02:00
Benjamin Neff
138b706259 Merge pull request #7528 from Flaburgan/update-help
Update help
2017-08-13 04:56:03 +02:00
flaburgan
d14908ed0d Sharing and tags 2017-08-13 04:53:53 +02:00
flaburgan
770e7ddc2b Public post 2017-08-13 04:53:53 +02:00
flaburgan
21cdc6041d Private profile 2017-08-13 04:53:53 +02:00
flaburgan
0671a3a60c Insert an image 2017-08-13 04:53:52 +02:00
flaburgan
b968732941 Make pronto happy (double quote, spacing...) 2017-08-13 04:53:52 +02:00
flaburgan
8158a3a3b5 Markdown indications 2017-08-13 04:53:52 +02:00
flaburgan
1e591b041f Report only spam or illegal content 2017-08-13 04:53:51 +02:00
flaburgan
8b63eabcbe Search approximation 2017-08-13 04:53:51 +02:00
flaburgan
a14a0e34c6 Mention in comments 2017-08-13 04:53:51 +02:00
flaburgan
bd7f50f9b6 'Make contacts in this aspect visible to each other' is a local feature 2017-08-13 04:53:50 +02:00
flaburgan
c494640a51 Update the migration section 2017-08-13 04:53:50 +02:00
flaburgan
330e0f1fa1 Add link to discourse 2017-08-13 04:53:47 +02:00
Benjamin Neff
ce5e42c471 Merge pull request #7182 from svbergerem/spv-load-initial-interactions
Single post view interaction refactorings
2017-08-12 19:16:00 +02:00
Steffen van Bergerem
04735ce9b0 Remove unused interactions method in post controller 2017-08-12 18:09:14 +02:00
Steffen van Bergerem
ad53a43f88 Remove unused post interactions parse method 2017-08-12 18:09:14 +02:00
Steffen van Bergerem
55349162bd Fix comment highlightning in the SPV 2017-08-12 18:09:14 +02:00
Steffen van Bergerem
5808b84e83 Only include at most 30 likes and reshares on pageload in the SPV 2017-08-12 18:09:14 +02:00
Steffen van Bergerem
6b162110ce Add 'show all' links to the SPV to fetch missing likes and reshares 2017-08-12 18:09:13 +02:00
Steffen van Bergerem
6bab65e603 Stop underlining interaction avatars on hover or on focus 2017-08-12 18:09:13 +02:00
Steffen van Bergerem
7bd6825c2a Fix timeago in the single post view 2017-08-12 18:09:13 +02:00
Steffen van Bergerem
0bfc2fdd77 Load likes and reshares in the SPV via gon 2017-08-12 18:09:13 +02:00
Steffen van Bergerem
05d19e69ee Move ExtremePostPresenter methods into PostPresenter, add #with_initial_interactions method 2017-08-12 18:09:12 +02:00
Benjamin Neff
339dd27651 Merge pull request #7526 from SuperTux88/rails5-eager_load_paths
Use config.eager_load_paths instead of config.autoload_once_paths
2017-08-12 17:49:03 +02:00
Benjamin Neff
04c3880d79 Use config.eager_load_paths in production
See http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#autoloading-is-disabled-after-booting-in-the-production-environment
2017-08-12 17:04:00 +02:00
Benjamin Neff
5905645d0f Fix mobile_fu
Since the gem was renamed, we need to require it manually...
2017-08-12 15:47:05 +02:00
Benjamin Neff
dc92633dab Merge pull request #7514 from SuperTux88/rails5
Upgrade to rails 5.1
2017-08-12 15:43:15 +02:00
Benjamin Neff
6b2c010ecc Wait for like to finish 2017-08-12 15:39:28 +02:00
Benjamin Neff
c2526c6111 Don't wait for .loading class, it's sometimes already removed again 2017-08-12 15:39:27 +02:00
Benjamin Neff
62cb1f99ce Get current time before the test to be safer on MySQL 2017-08-12 15:39:27 +02:00
Benjamin Neff
605e292589 Wait for image to be uploaded 2017-08-12 15:39:27 +02:00
Benjamin Neff
6b8c2ebe9f Fix rubocop cop namespace for ExtraSpacing 2017-08-12 15:39:27 +02:00
Benjamin Neff
ec680962ee Convert CreateSchema migration to real migration with up method
Otherwise Rails 5 would ignore the migration version and create the
tables with bitints as IDs on MySQL.
2017-08-12 15:39:27 +02:00
Dennis Schubert
50f1fd304f Remove UTF8 to UTF8mb4 migration
we released that in 0.5.0.0 in 2015, we do not support skipping majors
anyway, and this is broken in Rails 5, so let's remove this. If people
upgrade from before 0.5.0.0, they have to upgrade via 0.6.0.0, but
that's written in the documenation.
2017-08-12 15:39:27 +02:00
Dennis Schubert
5b1be7d8da Remove the schema.rb from this repo
Although this is contrary to rails best-practises, we cannot provide a schema.rb that works for both MySQL and PostgreSQL, so we have no choice. Our migrations are maintained, so it should always be possible to get back to a "clean" database schema anyway.
2017-08-12 15:39:26 +02:00
Dennis Schubert
ef70549832 Replace usages of the deprecated delete_all with conditions 2017-08-12 15:39:26 +02:00
Dennis Schubert
b614237504 Make all current migrations Rails 4.2 based 2017-08-12 15:39:26 +02:00
Dennis Schubert
1f272f5306 Do not touch the schema_migrations table in migrations
... this breaks the Rails 5 upgrade, and it's actually no longer needed.
New installations will have the right size anyway, and even if some
older installations miss the migration by not updating for 2 years, it
still doesn't matter since there is no risk that we will ever have
emojis in our migration filenames.
2017-08-12 15:39:26 +02:00
Benjamin Neff
b203862ca3 Workaround for bootstrap-sass
The change in assets.rb should be enough, but it doesn't work, because
sprockets `after_initialize` runs before it and initializes sprockets
with unfiltered paths.

But the trick with the underscore works, because bootstrap-sass has
named the file `_bootstrap.scss`, and rails-assets-bootstrap has
`bootstrap.scss`, so with `_bootstrap` it uses the correct bootstrap.
2017-08-12 15:39:26 +02:00
Benjamin Neff
b80d324504 Fix some failing cukes because they were too fast 2017-08-12 15:39:26 +02:00
Benjamin Neff
ff3bd1f59b Fix post service spec
* load records to array to check them
* test that only 15 people are returned
2017-08-12 15:39:25 +02:00
Benjamin Neff
33e3e3a14d Fix person spec, use first(15) instead of slice(0..14) 2017-08-12 15:39:25 +02:00
Benjamin Neff
f4136d4559 Fix post spec
* don't use `double` for queries
* use `second` instead of `at()`.
2017-08-12 15:39:25 +02:00
Benjamin Neff
29ab4d8242 Fix querying spec, remove (Post) 2017-08-12 15:39:25 +02:00
Benjamin Neff
63e342e6c4 Use aspect_ids for visible_shareables 2017-08-12 15:39:25 +02:00
Benjamin Neff
d62772f9c0 Replace Fixnum with Integer 2017-08-12 15:39:25 +02:00
Benjamin Neff
ca8974d4a0 Use ActionDispatch::TestRequest in NotificationSerializer spec 2017-08-12 15:39:24 +02:00
Benjamin Neff
b61536ff06 Remove unused formatted_birthday from profile model 2017-08-12 15:39:24 +02:00
Benjamin Neff
77951c4657 Fix user removal spec 2017-08-12 15:39:24 +02:00
Benjamin Neff
1adb4837ef Fix OpenID Connect TokenEndpoint when client id is not found 2017-08-12 15:39:24 +02:00
Benjamin Neff
385ab76077 Refactor OpenID specs to prevent duplicate client names 2017-08-12 15:39:24 +02:00
Benjamin Neff
27f3b68f54 Copy headers in OpenidConnect TokenEndpointController 2017-08-12 15:39:24 +02:00
Benjamin Neff
9626c77a1c Remove skip_fallback from post fetcher 2017-08-12 15:39:23 +02:00
Benjamin Neff
621fdda197 New syntax for request specs 2017-08-12 15:39:23 +02:00
Benjamin Neff
7c9590a27c Use .reload instead of (true) in specs
Or remove it where not needed
2017-08-12 15:39:23 +02:00
Benjamin Neff
2a6515fab9 Add params keyword to controller specs 2017-08-12 15:39:23 +02:00
Benjamin Neff
955ef43a0e Replace use_transactional_fixtures with use_transactional_tests 2017-08-12 15:39:23 +02:00
Benjamin Neff
5335ee86d6 Mobile fails now with ActionController::UnknownFormat 2017-08-12 15:39:22 +02:00
Benjamin Neff
4f5b1dd845 Fix creating share visibilities
Validation fails because there is no user set.
2017-08-12 15:39:22 +02:00
Benjamin Neff
d5f24021a7 Replace render text: ... with render plain: ... 2017-08-12 15:39:22 +02:00
Benjamin Neff
4bbc51bfb9 Remove return in scope block
Return in scope fails with `LocalJumpError: unexpected return`
2017-08-12 15:39:22 +02:00
Benjamin Neff
150fea6edb Replace render nothing: true with head 2017-08-12 15:39:22 +02:00
Benjamin Neff
80c241bc7a Replace redirect_to :back with redirect_back
Also remove some unused html responses
2017-08-12 15:39:22 +02:00
Benjamin Neff
b8ebb778bf Refactor federation mappings
The hashes don't work properly with rails 5, there are different classes
loaded when called from the rails engine with missing inheritance.

Also the hashes never worked well with spring.
2017-08-12 15:39:21 +02:00
Benjamin Neff
2b911b0131 Permit parameters before using them
ActionController::Parameters no longer inherits from HashWithIndifferentAccess
2017-08-12 15:39:21 +02:00
Benjamin Neff
8a5752dd6c Fix creating a post with poll
There were validation errors because `answer.poll` wasn't set.
2017-08-12 15:39:21 +02:00
Benjamin Neff
c382321934 Replace old ..._filter with new ..._action 2017-08-12 15:39:21 +02:00
Benjamin Neff
6e4c5bae29 Replace attribute_changed? with new methods 2017-08-12 15:39:21 +02:00
Benjamin Neff
e076910b74 Prepend protect_from_forgery because this defaults to false now 2017-08-12 15:39:21 +02:00
Benjamin Neff
b9d9a63739 Add rails-controller-testing dependency
Needed for `assigns` in controller specs
2017-08-12 15:39:20 +02:00
Benjamin Neff
ee9a299df6 Replace HashWithIndifferentAccess, it is now deprecated 2017-08-12 15:39:20 +02:00
Benjamin Neff
d0b634852b Fix belongs_to, it is now required by default 2017-08-12 15:39:20 +02:00
Benjamin Neff
eb19c327e2 Add ApplicationRecord 2017-08-12 15:39:20 +02:00
Benjamin Neff
fe57bd88e8 Add ApplicationMailer 2017-08-12 15:39:20 +02:00
Benjamin Neff
4a9548ec1b Use skip_pipeline: true for asset_url 2017-08-12 15:39:20 +02:00
Benjamin Neff
3d7061b240 Update configs for rails 5
Used `rails app:update`
2017-08-12 15:39:19 +02:00
Dennis Schubert
b711a8d4a1 Update binstubs 2017-08-12 15:39:19 +02:00
Dennis Schubert
45de17e1de Remove test_after_commit 2017-08-12 15:39:19 +02:00
Dennis Schubert
922c3ab81a Update gems 2017-08-12 15:39:19 +02:00
Steffen van Bergerem
7624854495 Merge pull request #7235 from AugierLe42e/md-editor-mobile-view
Markdown editor final chapter: add editor on publisher, comments and conversation of mobile view
2017-08-12 11:56:57 +02:00
Steffen van Bergerem
a6fb85d10f Merge pull request #7524 from ivantedja/7273-cmd-enter-submit
support cmd+enter for post submission
2017-08-12 11:55:23 +02:00
Steffen van Bergerem
f4cdec03c7 Remove obsolete conversation and new status message CSS 2017-08-12 11:02:47 +02:00
Steffen van Bergerem
d4ed3bce4d Remove unnecessary markdown editor CSS 2017-08-12 11:02:46 +02:00
Benjamin Neff
53f05eff5a Merge pull request #7525 from Flaburgan/hide-signin-on-signin-page
Hide 'Sign in' header link on the connection page
2017-08-12 03:40:31 +02:00
ivan sebastian
b154e9d7f9 support cmd+enter for post submission 2017-08-11 23:33:37 +07:00
flaburgan
2b90bb8562 Hide 'Sign in' header link on the connection page 2017-08-11 17:40:29 +02:00
Augier
008b899422 Markdown editor on publisher, conversations and mobile comments 2017-08-11 10:51:14 +02:00
Benjamin Neff
280a9e2023 Merge pull request #7523 from svbergerem/improve-adding-posts-to-stream
Improve adding posts to stream
2017-08-11 03:21:48 +02:00
Steffen van Bergerem
ba9a2cbeba Remove no posts info after rendering with available posts 2017-08-11 02:24:52 +02:00
Steffen van Bergerem
4c7948c7f7 Use id in stream comparator as fallback 2017-08-11 02:24:51 +02:00
Benjamin Neff
43bdebca74 Merge pull request #7522 from svbergerem/fix-autosize-comments-conversations
Call autosize when changing input via markdown editor
2017-08-10 22:31:12 +02:00
Steffen van Bergerem
757a5fbd10 Merge pull request #7509 from Flaburgan/responsive-header
Improve responsive header in desktop version
2017-08-10 18:48:37 +02:00
Steffen van Bergerem
39110c6b1b Use full width for notification dropdown on small devices 2017-08-10 17:51:01 +02:00
Steffen van Bergerem
8ce76882e3 Replace deprecated visible-* classes 2017-08-10 17:51:01 +02:00
Steffen van Bergerem
635a5c0564 Remove unused check for visible notification badge in notification dropdown view 2017-08-10 17:51:01 +02:00
Steffen van Bergerem
6995ca1fe3 Fix vertical alignment of search bar in the header 2017-08-10 17:51:01 +02:00
Steffen van Bergerem
9c40009ee1 Avoid using fixed vertical margins and paddings in the header 2017-08-10 17:51:01 +02:00
flaburgan
91e0e131a5 Improve colors management 2017-08-10 17:51:01 +02:00
flaburgan
047bb607f3 Do not hardcode image path 2017-08-10 17:51:01 +02:00
flaburgan
0798bfbc8c Refactor ids to classes, reorder css properties, css selectors depth 2017-08-10 17:51:01 +02:00
flaburgan
b995dfd179 Avoid search result dropdown to be hidden 2017-08-10 17:51:01 +02:00
flaburgan
99570c9c07 Responsive header for not connected pages too 2017-08-10 17:51:01 +02:00
flaburgan
569411acb8 Change global menu content on small screen 2017-08-10 17:51:01 +02:00
flaburgan
ae73294f41 Improved responsive header 2017-08-10 17:51:01 +02:00
Steffen van Bergerem
d4bdb2fcb4 Call autosize when changing input via markdown editor
Fixes #7521
2017-08-10 16:42:19 +02:00
Benjamin Neff
9d2d20e854 Merge pull request #6726 from cmrd-senya/archive-schema
Update the user data export archive format.
2017-08-10 10:54:02 +02:00
cmrd Senya
9bcdc90cfd Fix Person.in_aspects scope multiple return
Fix Person.in_aspects scope to return each person only once when the
person is in multiple aspects.
2017-08-10 09:36:34 +03:00
cmrd Senya
0a1b434607 Add a little cuke test for profile export
That should increase test coverage percentage
2017-08-10 09:36:31 +03:00
cmrd Senya
d8398caf2e Move misc_spec.rb to spec/spec
spec/spec is a new folder for "tests for tests"
2017-08-10 09:36:29 +03:00
cmrd Senya
7374661e2f Update the user data export archive format.
This commit introduces changes to the user data export archive format.
This extends data set which is included in the archive. This data can be
then imported to other pods when this feature is implemented.

Also the commit adds the archive format json schema. ATM it is used in
automatic tests only, but in future it will also be used to validate
incoming archives.
2017-08-10 09:36:26 +03:00
Benjamin Neff
eefa6701a8 Merge pull request #7520 from svbergerem/increase-mobile-post-action-size
Include count in mobile post action link and increase reshare counter after reshare
2017-08-10 01:30:39 +02:00
Benjamin Neff
05a4bf262a Merge pull request #7518 from svbergerem/fix-7245
Prevent publisher from closing in preview mode
2017-08-10 01:27:55 +02:00
Benjamin Neff
c06af05e19 Merge pull request #7516 from Flaburgan/back-to-top-position
Move back to top to the right to avoid misclicks
2017-08-10 01:26:28 +02:00
Benjamin Neff
3d8bda40e1 Merge pull request #7517 from svbergerem/update-markdown-it
Update markdown-it
2017-08-10 01:23:57 +02:00
Steffen van Bergerem
bc0088eb47 Increase mobile reshare counter after reshare 2017-08-10 01:16:53 +02:00
Steffen van Bergerem
18256f3709 Include count in mobile post action link (reshare, comment and like) 2017-08-10 01:16:53 +02:00
Steffen van Bergerem
dc828e0e5a Prevent publisher from closing in preview mode
Fixes #7245
2017-08-09 22:12:00 +02:00
Steffen van Bergerem
32233ccb99 Merge pull request #7482 from cmrd-senya/markdown-editor-conversations-comments
Add markdown editor on conversations and comments
2017-08-09 21:50:35 +02:00
cmrd Senya
621d269760 MD editor coversations&comments: refactorings
Javascript refactorings for better maintainability:
* simplePreview function to avoid code duplication
* Preloaded conversation is processed in a slightly different way
* Split isPreviewOrTexareaNotEmpty function since it has more than one responsibility
2017-08-09 21:49:25 +02:00
cmrd Senya
1b1db3bb0c Bump diaspora_federation 2017-08-09 21:43:42 +03:00
cmrd Senya
2c3f116326 Add new scopes for the Post model 2017-08-09 21:43:37 +03:00
cmrd Senya
c63493b0d1 New Exporter::NonContactAuthors class
This class is capable of quering a list of people from authors of given posts that are non-contacts of a given
user.
2017-08-09 21:43:31 +03:00
cmrd Senya
8f4498506d Fix autosize for the textarea in conversations
We need to reinit autosize when we navigate in conversations with the backbone router.
2017-08-09 20:35:23 +03:00
Augier
7b711254a5 Fix CSS and blur on commant submission 2017-08-09 20:35:23 +03:00
Augier
fd39a48bea Add markdown editor on conversations and comments 2017-08-09 20:35:23 +03:00
cmrd Senya
c985af1f85 New Exporter::OthersRelayables class
This class implements methods that allow to query relayables (comments, likes, participations,
poll_participations) of other people for posts of the given person.
2017-08-09 18:09:04 +03:00
cmrd Senya
fca6121c6a Exporter::PostsWithActivity class
This class allows to query posts where a person made any activity (submitted comments,
likes, participations or poll participations).
2017-08-09 18:09:04 +03:00
cmrd Senya
7db4f825a6 Refactor account deletion spec
This commit refactors account deletion spec by moving data creation to a helper
object DataGenerator.
2017-08-09 18:09:04 +03:00
Steffen van Bergerem
f2606386d3 Bump markdown-it 2017-08-09 13:36:28 +02:00
flaburgan
62fa43b222 Move back to top to the right to avoid misclicks 2017-08-08 13:01:58 +02:00
Benjamin Neff
f83fb6f4c3 Merge pull request #7484 from Flaburgan/7126-name-invitation-boy
Include first/last name in invitation emails body
2017-08-07 23:00:39 +02:00
flaburgan
1eea034844 Add a test 2017-08-07 20:21:51 +02:00
flaburgan
9a27983313 Refactor name condition to a cleaner code, delegate :full_name from profile to person to user 2017-08-07 19:08:17 +02:00
flaburgan
c2e0feb38b Include first/last name in invitation emails 2017-08-07 19:08:17 +02:00
Benjamin Neff
6ecf784d91 Merge pull request #7513 from SuperTux88/bump-acts-as-taggable-on
Bump acts-as-taggable-on
2017-08-04 03:10:12 +02:00
Benjamin Neff
9ca9d63285 Merge pull request #7511 from SuperTux88/sidekiq5
Upgrade sidekiq
2017-08-04 03:09:50 +02:00
Benjamin Neff
d0896c7823 Merge pull request #7512 from SuperTux88/well-known
Cleanup .gitignore and add note about .well-known to the changelog
2017-08-04 03:08:03 +02:00
Benjamin Neff
3961841506 Bump acts-as-taggable-on 2017-08-04 01:02:11 +02:00
Benjamin Neff
c6a0fbe8d4 Cleanup .gitignore and add note about .well-known to the changelog
[ci skip]
2017-08-04 00:54:51 +02:00
Benjamin Neff
31acb5348a Bump sidekiq 2017-08-03 03:14:30 +02:00
Benjamin Neff
61afb35803 Merge pull request #7510 from SuperTux88/fix-bookmarklet-for-sprockets-3
Fix bookmarklet for sprockets 3
2017-08-01 03:33:04 +02:00
Benjamin Neff
1007b3cdbd Use Rails.application.assets_manifest.assets instead of json file 2017-07-31 22:56:05 +02:00
Benjamin Neff
7f8108e4ac Precompile bookmarklet to use in production
`Rails.application.assets` is only available when `config.assets.compile`
is true (which is false in production). So the old way with a separate
rake task doesn't work in production. But we can get the filename of the
precompiled file from `Rails.application.assets_manifest.assets`.
2017-07-31 22:43:28 +02:00
Benjamin Neff
c42315f3ee Merge pull request #7507 from SuperTux88/sprockets-3
Upgrade sprockets
2017-07-31 21:43:43 +02:00
Benjamin Neff
20822d3333 Merge pull request #7508 from svbergerem/mobile-comment-link
Direct links to mobile comments
2017-07-31 03:23:13 +02:00
Steffen van Bergerem
cd0f8a6670 Remove unused data attribute from mobile comments 2017-07-30 12:20:44 +02:00
Steffen van Bergerem
8a3d33d707 Add guid as id attribute to mobile comments 2017-07-30 12:16:47 +02:00
Benjamin Neff
a797f2d27b Don't precompile all themes for tests
And sprockets 3 also caches files in tmp/cache/assets/sprockets
2017-07-30 05:57:19 +02:00
Benjamin Neff
7a26456875 Add checksums to assets in specs 2017-07-30 05:21:33 +02:00
Benjamin Neff
7ee8bfbac4 Precompile poltergeist_disable_transition.css for tests 2017-07-30 05:01:39 +02:00
Benjamin Neff
29a7f151b6 Use config.assets.quiet instead of quiet_assets gem
The quiet_assets gem doesn't support rails 5, but sprockets 3 now has a
config.assets.quiet option, which deprecates the quiet_assets gem. But
the logging gem has a no-op silence method, that's why the quiet option
doesn't work out-of-the-box. I added a little hack to use the silence
method from ActiveSupport, which is also used from the original rails
logger.
2017-07-30 04:47:16 +02:00
Benjamin Neff
1360dd4207 Fix require favico.js
See rails/sprockets#169
2017-07-30 04:47:16 +02:00
Benjamin Neff
91ec412f14 manifest-*.json is now called .sprockets-manifest-*.json 2017-07-30 04:47:16 +02:00
Benjamin Neff
5f5448f955 Bump sprockets-rails 2017-07-30 02:31:55 +02:00
Benjamin Neff
6b131409f9 Merge pull request #7505 from svbergerem/fix-presenter-spec-filename-typo
Fix filename typo for post interaction presenter spec
2017-07-26 13:16:43 +02:00
Steffen van Bergerem
308bb1f77a Fix filename typo for post interaction presenter spec 2017-07-26 12:01:38 +02:00
Benjamin Neff
e036ffccc9 Merge pull request #7504 from svbergerem/update-jasmine
Update jasmine
2017-07-25 22:47:05 +02:00
Benjamin Neff
7416cee0c9 Merge pull request #7477 from diaspora/add-contributing-file
Add a Contributing file
2017-07-25 22:43:12 +02:00
Steffen van Bergerem
adf35b4bf0 Bump jasmine 2017-07-25 16:25:44 +02:00
Benjamin Neff
7baa3c0e24 Merge pull request #7495 from codebearsteam/6559-ergonomy-suggestion
Issue #6559: Changed default mail FROM header and tests

fixes #6559
2017-07-25 01:13:32 +02:00
netagonen
ce90d6a020 Replace Diaspora* with pod_name in the FROM header
Add pod name to FROM: header for no sender case
2017-07-25 00:49:02 +02:00
Rete2
2be0644281 Issue #6559: Changed default mail FROM header and tests 2017-07-25 00:46:02 +02:00
Benjamin Neff
da904ac025 Merge pull request #7503 from SuperTux88/quickfix-multi-stream-ignore-users-with-tags
Exclude ignored people from followed tags when building stream-relation
2017-07-24 01:35:58 +02:00
Benjamin Neff
a4c26b7464 Exclude ignored people from followed tags when building stream-relation
This improves the main stream when you have less or inactive contacts
and ignored an active person that posts many posts with tags. When the
person is only removed after collecting all post ids, you don't see
posts with tags from other people.
2017-07-23 23:33:43 +02:00
Benjamin Neff
35e9faf5f2 Merge pull request #7502 from SuperTux88/cucumber-first-login-timeout
Cache assets-cache for cucumber on travis
2017-07-23 19:43:07 +02:00
Benjamin Neff
b0ac09a0a3 Cache assets-cache for cucumber on travis 2017-07-23 18:02:56 +02:00
Benjamin Neff
d8410e21b3 Merge pull request #7259 from Flaburgan/bump-ruby-2.4
Bump ruby to 2.4
2017-07-23 18:00:06 +02:00
Benjamin Neff
5d4d7ffa1e Merge pull request #7501 from SuperTux88/send-public-profile
Send public profiles publicly
2017-07-23 04:19:49 +02:00
Benjamin Neff
726e56ffb2 Install gems for production, to see when compatibility breaks 2017-07-23 02:42:01 +02:00
flaburgan
33fa2e8a9e Bump ruby to 2.4 2017-07-23 02:41:29 +02:00
Benjamin Neff
8942bb98c8 Send and receive public flag for profile 2017-07-23 02:36:29 +02:00
Benjamin Neff
f9476409c8 Send public profiles publicly
this will help big profiles, and the informations are public anyway, so no
need to encrypt them.

fixes #3164
2017-07-23 02:36:22 +02:00
Dennis Schubert
488860d2f0 Merge pull request #7500 from SuperTux88/update-gems
Update gems
2017-07-23 02:33:13 +02:00
Benjamin Neff
e94ec1e3c5 Use latest ruby-versions 2017-07-23 00:50:17 +02:00
Benjamin Neff
c0266969be Bump rails-assets-markdown-it 2017-07-23 00:31:05 +02:00
Benjamin Neff
b07114e40a Bump rails-assets-highlightjs 2017-07-23 00:31:05 +02:00
Benjamin Neff
c92b1ddcc6 Bump rails-assets-blueimp-gallery 2017-07-23 00:31:05 +02:00
Benjamin Neff
652f235ff0 Bump rails-assets-autosize 2017-07-23 00:31:05 +02:00
Benjamin Neff
7e9935c8b2 Replace jquery-ui-rails with rails-assets-jquery.ui 2017-07-23 00:31:05 +02:00
Benjamin Neff
03241c6480 Bump dependency gems 2017-07-23 00:31:05 +02:00
Benjamin Neff
a00defe0eb Bump cucumber-rails 2017-07-23 00:31:05 +02:00
Benjamin Neff
407c4f47d2 Bump rspec 2017-07-23 00:31:04 +02:00
Benjamin Neff
2a0cb17f48 Bump shoulda-matchers 2017-07-23 00:31:04 +02:00
Benjamin Neff
c44ca18e8f Bump webmock 2017-07-23 00:24:53 +02:00
Benjamin Neff
026fe3dc3d Bump timecop 2017-07-23 00:24:53 +02:00
Benjamin Neff
5bec57cfc9 Bump poltergeist 2017-07-23 00:24:52 +02:00
Benjamin Neff
bfdcb5481a Bump database_cleaner 2017-07-23 00:24:52 +02:00
Benjamin Neff
7759de8383 Bump capybara 2017-07-23 00:24:52 +02:00
Benjamin Neff
ccf938c95e Bump fixture_builder 2017-07-23 00:24:52 +02:00
Benjamin Neff
6f1571bc1b Bump spring 2017-07-23 00:24:52 +02:00
Benjamin Neff
7a0f0363e9 Bump haml_lint 2017-07-23 00:24:52 +02:00
Benjamin Neff
8c27418a55 Bump rubocop 2017-07-23 00:24:52 +02:00
Benjamin Neff
07c5dfe085 Bump pronto 2017-07-23 00:24:51 +02:00
Benjamin Neff
9031f4b772 Bump rb-inotify 2017-07-23 00:24:51 +02:00
Benjamin Neff
18f88ce252 Bump rb-fsevent 2017-07-23 00:24:51 +02:00
Benjamin Neff
f56d80f59d Bump guard-rubocop 2017-07-23 00:24:51 +02:00
Benjamin Neff
ac2265d4b4 Bump asset_sync 2017-07-23 00:24:51 +02:00
Benjamin Neff
fc45740dae Bump eye 2017-07-23 00:24:51 +02:00
Benjamin Neff
5866836557 Bump logging-rails 2017-07-23 00:24:50 +02:00
Benjamin Neff
3355f9ee16 Bump will_paginate 2017-07-23 00:24:50 +02:00
Benjamin Neff
b0d27b6907 Bump hamlit 2017-07-23 00:24:50 +02:00
Benjamin Neff
f7f4d50131 Bump addressable 2017-07-23 00:24:50 +02:00
Benjamin Neff
c81aadd574 Bump active_model_serializers 2017-07-23 00:24:44 +02:00
Benjamin Neff
9b70060f10 Bump openid_connect 2017-07-22 23:43:12 +02:00
Benjamin Neff
e773e45121 Bump omniauth 2017-07-22 23:43:12 +02:00
Benjamin Neff
8f3fccf0b2 Bump secure_headers 2017-07-22 23:43:12 +02:00
Benjamin Neff
ea73138eb8 Bump twitter-text 2017-07-22 23:43:12 +02:00
Benjamin Neff
d646563c7c Bump ruby-oembed 2017-07-22 23:43:12 +02:00
Benjamin Neff
d14d1616ff Bump nokogiri 2017-07-22 23:43:12 +02:00
Benjamin Neff
5c487a3a83 Bump leaflet-rails 2017-07-22 23:43:11 +02:00
Benjamin Neff
bde25ff6e4 Bump rails-i18n 2017-07-22 23:43:11 +02:00
Benjamin Neff
b43d9ce186 Bump http_accept_language 2017-07-22 23:43:11 +02:00
Benjamin Neff
e2072ded2c Bump jquery 2017-07-22 23:43:11 +02:00
Benjamin Neff
91ea6448fa Bump handlebars_assets 2017-07-22 23:43:11 +02:00
Benjamin Neff
047f333e88 Bump mini_magick 2017-07-22 23:43:11 +02:00
Benjamin Neff
31e85f32ac Bump carrierwave 2017-07-22 23:43:07 +02:00
Benjamin Neff
17b51beeda Bump fog-aws 2017-07-22 02:32:26 +02:00
Benjamin Neff
f0c3ae3782 Bump activerecord-import 2017-07-22 02:32:26 +02:00
Benjamin Neff
21c2864b39 Bump pg 2017-07-22 02:32:26 +02:00
Benjamin Neff
4074660a86 Bump mysql2 2017-07-22 02:32:25 +02:00
Benjamin Neff
6d9cfa961f Bump compass-rails
Add sprockets as fixed dependency, we don't want to upgrade this by
accident
2017-07-22 02:32:25 +02:00
Benjamin Neff
d33ac50060 Bump autoprefixer-rails 2017-07-22 02:32:25 +02:00
Benjamin Neff
c6be849998 Bump rack-cors 2017-07-22 02:32:25 +02:00
Benjamin Neff
ae8dd05f4f Bump uglifier 2017-07-22 02:32:25 +02:00
Benjamin Neff
512739916e Bump sidekiq-cron 2017-07-22 02:32:25 +02:00
Benjamin Neff
a89ad99617 Bump sidekiq 2017-07-22 02:32:24 +02:00
Benjamin Neff
816fa55862 Bump devise 2017-07-22 02:32:24 +02:00
Benjamin Neff
14712df69c Bump json 2017-07-22 02:32:24 +02:00
Benjamin Neff
d9b3489846 Bump responders 2017-07-22 02:32:24 +02:00
Benjamin Neff
99474d8cfa Bump unicorn 2017-07-22 02:32:24 +02:00
Benjamin Neff
126062d721 Bump rails 2017-07-22 02:32:24 +02:00
Benjamin Neff
871b8fbb01 Merge pull request #7497 from UpshiftNetwork/fix-signs-up-feature-tests
Fix: Failing 'Signs Up'-Feature Tests
2017-07-19 00:06:34 +02:00
Finn Woelm
070ef782e6 Fix: Failing 'Signs Up'-Feature Tests
Up to now, scripts were loaded prior to the stylesheet in <head>. When
scripts are loaded before stylesheets, it is possible that scripts
execute on the DOM elements before styles are fully loaded. This can
yield unexpected results.

In the case of the features/desktop/signs_up.feature tests, it would
happen every so often that the scripts ran before styles were loaded.
For example, the app.views.Publisher class (responsible for actions
related to creating a new post) relies on the poll element being either
hidden (or poll options being defined). As per stylesheet, the poll is
hidden by default. But when the scripts run before the stylesheet has
loaded, the poll appears visible to the script and post submission is
disabled.

This is fixed by loading stylesheets prior to scripts. See SO for more
info: https://stackoverflow.com/a/1324720/6451879
2017-07-18 18:38:36 +07:00
Benjamin Neff
21263edbdf Merge pull request #7491 from UpshiftNetwork/fix-failing-mention-features
Fix: Use Capybara#fill_in for appending to publisher
2017-07-14 13:23:47 +02:00
Finn Woelm
14b7c10567 Fix: Use Capybara#fill_in for appending to publisher
Capybara's native#send_key function is slow when it is passed a string
longer than just a few characters. This often results in timeout issues
and Capybara (falsely) reporting feature as failing.

To fix this, we use the faster function #fill_in. This does not trigger
JavaScript events on the input, so we manually trigger them after
fill_in by just sending a single key. This can be any key but since we
do not want to modify the text in the input, non-text keys should be
used. For a list of non-text keys, see
http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Asend_keys

There is an alternative to the above:
1) Use #fill_in to enter all text except for the last character:
    fill_in ..., with: "#{status_message_text} #{txt[0..-2]}"
2) And then use #send_key to send that last character:
    find("#status_message_text").native.send_key(txt.last)

At the moment, both approaches work equally well but the second approach
is documented here just in case it becomes relevant in the future.
2017-07-14 12:33:30 +07:00
Benjamin Neff
5d2ddfede1 Update changelog [ci skip] 2017-07-14 02:34:53 +02:00
Benjamin Neff
01ca08b86f Merge pull request #7436 from SuperTux88/federation-update
Federation gem update
2017-07-14 01:31:32 +02:00
Benjamin Neff
8b7a592112 Merge pull request #7488 from UpshiftNetwork/fix-assets-check-2
Fix: Check for asset precompilation when starting server
2017-07-14 00:11:11 +02:00
Finn Woelm
78986e6419 Fix: Check for asset precompilation when starting server
When `public/assets/` is a symlink, running `find public/assets ...`
does not return the correct result. By using `public/assets/`, find is
able to return the correct result regardless of whether the folder is an
actual folder or a symlink.

[ci skip]
2017-07-13 21:41:11 +07:00
Benjamin Neff
6c1ebea633 Merge pull request #7483 from Flaburgan/7393-always-link-comment-mobile
Always link comment count text on mobile
2017-07-13 02:31:30 +02:00
Benjamin Neff
3817dc9a5b Merge pull request #7480 from Flaburgan/7402-space-comment-mobile-spv
Fix height too high on mobile SPV, closes #7402
2017-07-13 02:31:07 +02:00
Fla
f94fa95653 Add a Contributing file 2017-07-12 16:14:58 +02:00
flaburgan
fc27640468 Always link comment count text on mobile 2017-07-12 16:00:26 +02:00
Benjamin Neff
d62d79bc29 Merge branch 'next-minor' into develop 2017-07-12 03:51:17 +02:00
Benjamin Neff
541dcbcd39 Merge branch 'master' into next-minor 2017-07-12 03:50:58 +02:00
Benjamin Neff
8bed8a84a3 Merge branch 'release/0.6.7.0' 2017-07-12 03:49:09 +02:00
Benjamin Neff
0e8bb71449 updated 126 locale files [ci skip] 2017-07-12 03:42:15 +02:00
Benjamin Neff
bc663253d2 Merge branch 'next-minor' into develop 2017-07-07 09:02:19 +02:00
Benjamin Neff
1ce736df16 Merge branch 'release/0.6.7.0' into next-minor 2017-07-07 09:02:10 +02:00
Dennis Schubert
e47895f3e1 Center .excellence-box contents
closes #7481
2017-07-07 09:01:34 +02:00
flaburgan
2dc142bd70 Add access to the report page on mobile for moderators
closes #7479
2017-07-07 08:58:42 +02:00
Benjamin Neff
2dc129d9be Merge branch 'next-minor' into develop 2017-07-06 02:55:31 +02:00
Benjamin Neff
2244781615 Merge branch 'release/0.6.7.0' into next-minor 2017-07-06 02:55:26 +02:00
flaburgan
59c343c0c6 Increase poltegeist timeout
closes #7478
2017-07-06 02:51:14 +02:00
flaburgan
9146c8d80f Fix height too high on mobile SPV, closes #7402 2017-07-05 17:19:20 +02:00
Benjamin Neff
58609e42d7 Merge branch 'next-minor' into develop 2017-07-05 02:10:24 +02:00
Benjamin Neff
58aa59fb8e Start 0.6.8.0 cycle 2017-07-05 02:07:45 +02:00
Benjamin Neff
068acd93ce Cleanup changelog (no bugfixes in this release) 2017-07-05 02:04:07 +02:00
Benjamin Neff
0e13a316f6 Cleanup some translations
closes #7465
2017-07-05 02:02:13 +02:00
flaburgan
ddda28102c Clean up the footer links a bit
closes #7446
2017-07-05 01:59:18 +02:00
flaburgan
ea9e50085d Add link to discourse in footer and left side bar 2017-07-05 01:57:17 +02:00
flaburgan
07d0ed916d Fix design issues + pronto
closes #7295
2017-07-05 01:51:07 +02:00
flaburgan
427aa8794e Add tests for mobile drawer 2017-07-05 01:50:16 +02:00
flaburgan
2782edc780 Refactor partials + pronto 2017-07-05 01:50:16 +02:00
flaburgan
a7d97b7fd3 Add mobile message confirmation on user invit action, Refactor admin responsive code to use bootstrap grid
Hide pod version alert only in the mobile version, not depending on screen size
2017-07-05 01:50:16 +02:00
flaburgan
7bdf33e1a8 Move invitation form under the user search in admin
Indicates when there is no report to review to avoid a weird empty page
2017-07-05 01:50:16 +02:00
SansPseudoFix
5cb4c6e5df Refactor, more partials + No version check for mobile 2017-07-05 01:50:16 +02:00
SansPseudoFix
276b640418 Add admin views to mobile, use partials for common code with desktop 2017-07-05 01:50:10 +02:00
Benjamin Neff
d71aa6a54a Merge branch 'next-minor' into develop 2017-07-03 03:46:54 +02:00
atulonruby
df1139234f Warn user if he leaves profile editing page #6520
closes #7473

closes #6589
2017-07-03 03:45:57 +02:00
Benjamin Neff
a931bee319 Make Participation entity non-relayable 2017-07-03 03:14:42 +02:00
Benjamin Neff
be8a1dfef4 Add tests for ContactRetraction 2017-07-03 03:14:42 +02:00
cmrd Senya
c2b9b8ab54 Use ContactRetraction for stop sharing with someone 2017-07-03 03:14:42 +02:00
Benjamin Neff
e2a40bb643 Send Relayables with parent author when the parent is local
Needed for diaspora/diaspora_federation#64
2017-07-03 03:14:42 +02:00
Benjamin Neff
4f9e560ab3 Use RFC 7033 webfinger from diaspora_federation gem 2017-07-03 03:14:41 +02:00
Benjamin Neff
283722a693 Use build_relayable_federation_entity helper for receive specs 2017-07-03 03:14:41 +02:00
Benjamin Neff
3ab674552f Rename xml_order to signature_order 2017-07-03 03:14:41 +02:00
Benjamin Neff
0f551c7b19 Fix public flag for contact retractions 2017-07-03 03:14:41 +02:00
Benjamin Neff
4244f2a5df Make Participation entity non-relayable
Related to diaspora/diaspora_federation#35
2017-07-03 03:14:41 +02:00
Benjamin Neff
07e9bf8be8 Remove old unused salmon method 2017-07-03 03:14:40 +02:00
Benjamin Neff
246d1ebbdf Remove legacy post xml
This was used for the old post fetching

Related to diaspora/diaspora_federation#31
2017-07-03 03:14:40 +02:00
Benjamin Neff
a6d7dbf1dd Send MagicEnvelope as body with correct Content-Type in specs
Related to diaspora/diaspora_federation#30
2017-07-03 03:14:40 +02:00
Benjamin Neff
381c03cfd7 Remove backward-compatibility for Retractions 2017-07-02 23:56:01 +02:00
Benjamin Neff
b6b0aac969 Send only Retractions
Related to diaspora/diaspora_federation#27
2017-07-02 23:56:00 +02:00
Benjamin Neff
e907b3eb18 Send Contact entity for start/stop sharing
Related to diaspora/diaspora_federation#32
2017-07-02 23:56:00 +02:00
Benjamin Neff
f6dc809e29 Send new MagicEnvelope and EncryptedMagicEnvelope
Related to diaspora/diaspora_federation#30
2017-07-02 23:56:00 +02:00
Benjamin Neff
95def40c55 Make Message entity non-relayable
Related to #36
2017-07-02 23:56:00 +02:00
Benjamin Neff
87d0778086 Remove guid and public_key from WebFinger
Related to diaspora/diaspora_federation#39
2017-07-02 23:56:00 +02:00
Benjamin Neff
5e2d063c49 Hash from federation entity now contains the correct data-type 2017-07-02 23:56:00 +02:00
Benjamin Neff
189c223224 Fix notification factory 2017-07-02 23:55:59 +02:00
Benjamin Neff
49822a9af7 New namespace for InvalidRootNode 2017-07-02 23:55:59 +02:00
Benjamin Neff
5e3ea249a9 Replace additional_xml_elements with additional_data for relayables 2017-07-02 23:55:59 +02:00
Benjamin Neff
78c7156e72 Replace FactoryGirl with Fabricate for federation factories 2017-07-02 23:55:59 +02:00
Benjamin Neff
d79c2e511b Bump diaspora_federation 2017-07-02 23:55:01 +02:00
Benjamin Neff
cb50681cea Merge branch 'next-minor' into develop 2017-06-30 02:13:40 +02:00
Benjamin Neff
0d232f1d1b Switch PercentLiteralDelimiters to new default
Let's change that to the new rubocop default, which is also the
suggestion in the ruby style guide.

See https://github.com/bbatsov/ruby-style-guide#percent-literal-braces

closes #7466
2017-06-30 02:13:31 +02:00
Benjamin Neff
05efe9b8fe Merge branch 'next-minor' into develop 2017-05-29 03:21:59 +02:00
Benjamin Neff
1751e21a87 Merge branch 'master' into next-minor 2017-05-29 03:21:49 +02:00
Benjamin Neff
7aadadce44 Merge branch 'release/0.6.6.0' 2017-05-29 03:20:38 +02:00
Benjamin Neff
f59055860a updated 70 locale files [ci skip] 2017-05-29 03:17:45 +02:00
Benjamin Neff
44e10a9172 Merge branch 'next-minor' into develop 2017-05-26 01:51:37 +02:00
Mahonri Gibson
5739f67605 Save email without confirmation when podmail is disabled.
fixes #7195

closes #7455
2017-05-26 01:50:55 +02:00
Benjamin Neff
a7093c6f7d Merge branch 'next-minor' into develop 2017-05-23 00:17:19 +02:00
Benjamin Neff
a6869197d8 Start 0.6.7.0 cycle
[ci skip]
2017-05-23 00:15:06 +02:00
Dennis Schubert
01d1bb10ac Merge branch 'next-minor' into develop 2017-05-21 12:08:16 +02:00
Benjamin Neff
0197cecaf8 Bump nokogiri
closes #7458
2017-05-21 12:08:12 +02:00
Dennis Schubert
7c37a62593 Merge branch 'next-minor' into develop 2017-05-21 12:07:14 +02:00
Benjamin Neff
65e8fc4012 Fix comment for environment.sidekiq.retry in diaspora.yml
fixes #7456

closes #7457
2017-05-21 12:07:10 +02:00
Dennis Schubert
1e06fd786c Merge branch 'next-minor' into develop 2017-05-21 12:06:41 +02:00
Benjamin Neff
e177706769 Add admin account username to NodeInfo metadata
Fixes #7421

closes #7447
2017-05-21 12:06:35 +02:00
Benjamin Neff
7934c1e969 Add NodeInfo 2.0 support 2017-05-21 12:05:54 +02:00
Dennis Schubert
010c1953f9 Merge branch 'next-minor' into develop 2017-05-21 12:05:22 +02:00
Benjamin Neff
c2eb53e827 Bump rubocop
Use old style for Style/PercentLiteralDelimiters for now. Maybe we can
change this in the future, because the ruby style guide suggests to use
`[]` (which is also the new default for rubocop).

closes #7443#
2017-05-21 12:05:17 +02:00
Benjamin Neff
153569e297 Bump pronto and all pronto-runners
Also add `require: false` everywhere.
2017-05-21 12:05:13 +02:00
Benjamin Neff
e463397122 Merge branch 'next-minor' into develop 2017-05-16 00:37:06 +02:00
cmrd Senya
6abd0509f9 Use guid instead of id at permalink and in SPV
This changes links from /posts/:id to /posts/:guid where the links are
not clicked very often. ID search is faster than guid search so we can't
change it everywhere, but these links are not very useful for clicking,
but can be used for easier guid look up.

closes #7453
2017-05-16 00:36:43 +02:00
Benjamin Neff
ee05cc8270 Merge branch 'next-minor' into develop 2017-05-13 02:09:25 +02:00
Mahonri Gibson
942e090b3a Fix welcome message crashing server if podmin is set to invalid user.
Fixes #7363

closes #7452
2017-05-13 02:08:51 +02:00
Benjamin Neff
f4f0e724c6 Merge branch 'next-minor' into develop 2017-05-11 04:24:29 +02:00
Benjamin Neff
02b4d3f347 Don't raise when the public key of a person is "broken"
Breaking a public key of a person can be used to "block" receiving posts
from this person on the pod. So we should handle that case better and
not just trigger many retries for something that will fail again.

closes #7448
2017-05-11 04:24:13 +02:00
Benjamin Neff
7d9c6c85bd Remove rails_admin
This is now broken since more than half a year, so I think we can just
remove it.

Podmins shouldn't use this anyway, because it does bad things, like
replacing NULL with an empty string when editing something. If we really
need an admin interface for something, we should add it to our own admin
panel at /admins/dashboard.

Fixes #7027 and #6413

closes #7440
2017-05-11 04:18:33 +02:00
Benjamin Neff
064fc3cc45 Merge branch 'next-minor' into develop 2017-05-05 02:30:56 +02:00
Steffen van Bergerem
23d3d9dc3f Use post page title for atom feeds and add entry author
Fixes #7249

closes #7420
2017-05-05 02:30:46 +02:00
Steffen van Bergerem
6dc4493685 Add spec for post_page_title for reshares 2017-05-05 02:29:28 +02:00
Steffen van Bergerem
fc28d6af35 Fix first comment in mobile view with french locale
Fixes #7438. The regression has possibly been introduced by #7207.

closes #7441
2017-05-05 02:26:22 +02:00
Benjamin Neff
d72eb59c07 Merge branch 'next-minor' into develop 2017-05-03 02:49:18 +02:00
Benjamin Neff
e7cfaa7e42 Bump diaspora_federation
The previous version logged the encrypted private messages of the new
protocol, which only makes the logfiles bigger without any benefit,
because it's encrypted anyway ...

closes #7435
2017-05-03 02:49:08 +02:00
Steffen van Bergerem
7f784cf2b1 Merge branch 'next-minor' into develop 2017-05-03 02:09:07 +02:00
Benjamin Neff
9e36f0201c Initialize timeago only after language is set
closes #7419
2017-05-03 02:08:57 +02:00
cmrd Senya
87ed561d45 bump rails-timeago
Here we also set autoDispose to false. This is an option that was introduced
sometime after our last bump. Default is true and it disposes timeago object
if it is not in DOM. But that is the way we initialize timeago objects, therefore
if we have autoDispose=true then they will be disposed before they inserted in DOM.
So by using autoDispose=false we enforce previous behavior that worked fine for us.
2017-05-03 02:08:50 +02:00
cmrd Senya
a880de28a8 Add a cuke for mobile stream page post timestamps 2017-05-03 02:08:50 +02:00
cmrd Senya
4621c54421 fix a typo 2017-05-03 02:08:50 +02:00
Benjamin Neff
caaea50cf6 Merge branch 'next-minor' into develop 2017-04-26 22:18:02 +02:00
pskosinski
afef279aff Fix untranslatable photo upload button's hover text
closes #7429

fixes #7427
2017-04-26 22:17:44 +02:00
Benjamin Neff
45c623c262 Merge branch 'next-minor' into develop 2017-04-19 00:52:49 +02:00
Benjamin Neff
78c9cc5754 Merge branch 'master' into next-minor 2017-04-19 00:52:38 +02:00
Benjamin Neff
91a9549c3d Merge branch 'release/0.6.5.0' 2017-04-19 00:52:02 +02:00
Benjamin Neff
746cb8bfb8 updated 68 locale files [ci skip] 2017-04-19 00:38:49 +02:00
Dennis Schubert
3eeee4b5de Merge branch 'next-minor' into develop 2017-04-12 01:29:50 +02:00
Dennis Schubert
69be912478 Start 0.6.6.0 cycle
[ci skip]
2017-04-12 01:28:18 +02:00
Benjamin Neff
e91a0a57a3 Merge branch 'next-minor' into develop 2017-04-08 00:00:56 +02:00
Steffen van Bergerem
3971a24d68 Add avatar fallback for avatar next to publisher
closes #7414
2017-04-08 00:00:45 +02:00
Steffen van Bergerem
bf105db297 Use setupAvatarFallback in tags and notification dropdown view 2017-04-08 00:00:12 +02:00
Steffen van Bergerem
bcb75e3082 Add avatar fallback for conversations view
Fixes #4991
2017-04-08 00:00:12 +02:00
Steffen van Bergerem
1c1af74e9f Add avatar fallback for typeahead suggestions 2017-04-07 23:59:58 +02:00
Steffen van Bergerem
82629c5979 Merge branch 'next-minor' into develop 2017-04-06 14:10:31 +02:00
Steffen van Bergerem
791e74104e Fix taggable path in text formatter comment [ci skip] 2017-04-06 14:10:12 +02:00
Benjamin Neff
24b40a4c01 Merge branch 'next-minor' into develop 2017-04-06 01:02:26 +02:00
Amadren
30fad8279b Improve csp for a better cloudflare support
closes #7367
2017-04-06 01:01:50 +02:00
Steffen van Bergerem
a61031710c Merge branch 'next-minor' into develop 2017-04-02 12:51:35 +02:00
cmrd Senya
f1c1091162 Remove unused cucumber step
"should see JSON"

closes #7410
2017-04-02 12:51:27 +02:00
cmrd Senya
483f738a0f Remove unused json_spec gem 2017-04-02 12:48:37 +02:00
Benjamin Neff
b639385c46 Merge pull request #7407 from svbergerem/statistics-json-500
Return 406 instead of 500 for statistics.json
2017-03-31 01:00:06 +02:00
Steffen van Bergerem
c94bac3cf9 Return 406 instead of 500 for statistics.json
Fixes #7406
2017-03-30 23:17:58 +02:00
Dennis Schubert
9a76cf7d3b Merge branch 'next-minor' into develop 2017-03-29 22:33:43 +02:00
Dennis Schubert
8e8af0bfa5 Merge branch 'master' into next-minor 2017-03-29 22:32:20 +02:00
Benjamin Neff
6a5c34535d Merge branch 'next-minor' into develop 2017-03-28 19:55:48 +02:00
flaburgan
6f14040e8e Fix invitation from sidebar
closes #7404
2017-03-28 19:55:42 +02:00
flaburgan
577ead7768 Fix mobile delete original reshare test
closes #7403
2017-03-28 19:55:27 +02:00
Dennis Schubert
ec6a6d5138 Merge branch 'next-minor' into develop 2017-03-28 06:42:53 +02:00
Waithamai
38450eacea Added spacing between list items fixes #7400
closes #7401
2017-03-28 06:42:43 +02:00
Dennis Schubert
10bf1c0925 Merge branch 'next-minor' into develop 2017-03-28 01:57:02 +02:00
Benjamin Neff
35f4d61d11 Disable rack session cookie for sidekiq
Since 4.2.3 sidekiq allows to disable its own session cookie for the
case where the app provides a session already.

closes #7395
2017-03-28 01:56:52 +02:00
Dennis Schubert
efdfa749a7 Merge branch 'next-minor' into develop
closes #7398
2017-03-28 01:48:35 +02:00
Steffen van Bergerem
7feed3545c Create mention success flash message with JavaScript 2017-03-28 01:46:30 +02:00
Benjamin Neff
5de83b881b Merge pull request #7399 from svbergerem/remove-statistics-json
Remove statistics.json
2017-03-28 00:08:16 +02:00
Steffen van Bergerem
e8ee74ef87 Remove statistics.json 2017-03-27 15:54:34 +02:00
Benjamin Neff
d9b02418b6 Merge branch 'next-minor' into develop 2017-03-27 00:04:53 +02:00
Steffen van Bergerem
4a56c0465c Remove outdated rtl styles
These lines might have been necessary some time ago but now they are making things worse.

closes #7374
2017-03-27 00:04:38 +02:00
Steffen van Bergerem
2c53c2941e Remove unused rtl styles 2017-03-27 00:03:06 +02:00
Steffen van Bergerem
d59ede46df Remove styles for removed elements 2017-03-27 00:03:06 +02:00
Steffen van Bergerem
4a944c5ab4 Use small avatar in the person json
closes #7376
2017-03-27 00:02:10 +02:00
Steffen van Bergerem
13a44be306 Reduce size of conversation recipients in conversation form
Fixes #7321.
2017-03-27 00:01:29 +02:00
Steffen van Bergerem
6f3c61d8f2 Increase maximal height of large thumbnail
Fixes #6248, supersedes #6244.

closes #7383
2017-03-27 00:00:41 +02:00
Steffen van Bergerem
8a98cd4517 Refactor destroyModel function in base view
closes #7385
2017-03-26 23:53:37 +02:00
Steffen van Bergerem
3ce4bba383 Only remove post from stream after successful response
Pass destroyModel from post control view to post view
and don't listen to the remove event in the post view
anymore. The `remove` function will be called from the
base view.

Fixes #5445
2017-03-26 23:50:48 +02:00
Steffen van Bergerem
5b0b3d989b Merge pull request #7394 from SuperTux88/mention-backport-on-receive
Only backport mention syntax when the author is local
2017-03-26 12:26:52 +02:00
Benjamin Neff
04e653bd69 Merge branch 'next-minor' into develop 2017-03-26 04:15:19 +02:00
Steffen van Bergerem
aa55a7a023 Remove custom jquery input event
closes #7371
2017-03-26 04:14:59 +02:00
Benjamin Neff
a07bd94ec6 Merge pull request #7389 from svbergerem/fix-comment-mentions-spacing
Fix comment mentions spacing
2017-03-26 04:06:34 +02:00
Benjamin Neff
d04a553ae2 Merge pull request #7380 from svbergerem/refactor-mentions-css
Refactor mentions-input-box css
2017-03-26 04:04:56 +02:00
Benjamin Neff
af0a5e32a1 Merge pull request #7369 from svbergerem/color-themes-i18n
i18n for color themes
2017-03-26 03:12:54 +02:00
Benjamin Neff
d0fcdc254e Only backport mention syntax when the author is local
We don't need to change new to old syntax when we receive a post from a
newer pod, since we can handle the new syntax. This is only needed when
sending it to older pods.

related to #7392
2017-03-25 23:42:19 +01:00
Benjamin Neff
06b61b6480 Merge branch 'next-minor' into develop 2017-03-25 20:38:00 +01:00
Steffen van Bergerem
57b7debdb6 Refactor location stream view, remove unused function
closes #7364
2017-03-25 20:37:37 +01:00
Steffen van Bergerem
05e9798027 Fix sharing indicator on profile page for blocked users
closes #7382
2017-03-25 20:35:45 +01:00
Steffen van Bergerem
d3de97b244 Disable autocomplete for the conversation form recipient input
closes #7375
2017-03-25 20:34:13 +01:00
Steffen van Bergerem
a639951b20 Remove unused jquery.infinitescroll
closes #7370
2017-03-25 20:32:33 +01:00
Steffen van Bergerem
f5c937b9cf Fix comment mentions spacing 2017-03-24 13:11:16 +01:00
Steffen van Bergerem
a1199ac219 Remove mentions-input-box 2017-03-24 01:14:01 +01:00
Steffen van Bergerem
d38eabf333 Refactor mentions-input-box css 2017-03-24 01:07:39 +01:00
Steffen van Bergerem
b0da14c383 Merge pull request #7386 from cmrd-senya/comment-mention-front-end
Comment mentions front-end
2017-03-24 00:20:37 +01:00
cmrd Senya
c2f352d837 Comment mentions front-end 2017-03-24 00:40:24 +02:00
Steffen van Bergerem
b076a1a1ff Merge branch 'next-minor' into develop 2017-03-23 13:55:23 +01:00
flaburgan
30c2d5d9ac Close popovers before submitting the publisher to avoid random failures
closes #7384
2017-03-23 13:55:14 +01:00
flaburgan
ce15f41a04 Check the publisher is closed when submitted, test it is expanded when filled 2017-03-23 13:55:08 +01:00
Benjamin Neff
8ccc39e296 Merge branch 'next-minor' into develop 2017-03-23 03:42:31 +01:00
Dennis Schubert
bfad786ef5 Add Discourse, remove Loomio, remove mailinglists [ci skip]
closes #7387
2017-03-23 03:42:23 +01:00
Steffen van Bergerem
55fee86a95 Merge branch 'next-minor' into develop 2017-03-21 16:29:25 +01:00
flaburgan
3ba84475f2 Check for modal invitation title
closes #7381
2017-03-21 16:29:19 +01:00
Steffen van Bergerem
a2ca68b523 Merge branch 'next-minor' into develop 2017-03-21 13:34:59 +01:00
flaburgan
ad7d4d777b Add links to liked and commented pages within My activity
closes #5502
2017-03-21 13:34:47 +01:00
Steffen van Bergerem
80b53adcf0 Merge branch 'next-minor' into develop 2017-03-21 13:08:52 +01:00
flaburgan
b3e3de08b8 Fix block user failing feature
closes #7379
2017-03-21 13:08:44 +01:00
Steffen van Bergerem
b2d0feb00d Merge pull request #7303 from cmrd-senya/jquery3
Use jQuery 3
2017-03-18 16:06:05 +01:00
cmrd Senya
71e0bdc411 app_spec fixes 2017-03-18 16:50:55 +02:00
cmrd Senya
c90cb3328e jQuery 3 integration 2017-03-18 16:50:52 +02:00
Steffen van Bergerem
ca6ce912d3 Merge branch 'next-minor' into develop 2017-03-17 11:34:56 +01:00
cmrd Senya
526ebcfa13 In jQuery 3 "#" is disallowed as a selector
here is a somewhat hacky way to force use an empty selector where "#"
was used as a selector before

closes #7372
2017-03-17 11:34:45 +01:00
Steffen van Bergerem
7eb3dabb44 i18n for color themes 2017-03-16 12:25:41 +01:00
goobertron
6657fd51fa Capitalisation of colour themes 2017-03-16 12:03:53 +01:00
Benjamin Neff
78359d69d8 Merge branch 'next-minor' into develop 2017-03-12 04:32:47 +01:00
Benjamin Neff
3a6e5d5446 Merge branch 'master' into next-minor 2017-03-12 04:32:06 +01:00
Steffen van Bergerem
1b9ab16039 Merge branch 'next-minor' into develop 2017-03-06 21:11:54 +01:00
cmrd Senya
2739259fb6 some more replacements for deprecated jquery methods
closes #7356
2017-03-06 21:11:47 +01:00
cmrd Senya
f36a4cd1f5 don't use the deprecated ".selector" method 2017-03-06 21:11:13 +01:00
cmrd Senya
a479db1c96 a missing spy 2017-03-06 21:11:12 +01:00
Steffen van Bergerem
0aefc76aaa Merge branch 'next-minor' into develop 2017-03-06 21:10:31 +01:00
Senya
0e28cfadb2 remove unused setPreload function
closes #7354
2017-03-06 21:10:25 +01:00
Steffen van Bergerem
6fce2810e5 Merge pull request #7331 from SuperTux88/fix-mentioned-in-comments-notifications
Fix mentioned in comments notifications
2017-03-05 20:07:25 +01:00
Benjamin Neff
509f429cc8 Move 'distinct' to 'allowed_to_be_mentioned_in_a_comment_to' 2017-03-05 17:59:28 +01:00
Benjamin Neff
ce739ef5ad Merge branch 'next-minor' into develop 2017-03-05 16:29:35 +01:00
Steffen van Bergerem
e82005c517 Disable Rails/HttpPositionalArguments cop
See http://rubocop.readthedocs.io/en/latest/cops_rails/#railshttppositionalarguments.

It only applies to Rails >= 5

closes #7353
2017-03-05 16:27:48 +01:00
Benjamin Neff
351b4d28bf Merge branch 'next-minor' into develop 2017-03-05 01:58:24 +01:00
Benjamin Neff
13698bece5 Start 0.6.5.0 cycle 2017-03-05 01:56:50 +01:00
Benjamin Neff
ae687cf1d5 Merge branch 'next-minor' into develop 2017-03-05 00:01:11 +01:00
Benjamin Neff
e82ac2199f Merge branch 'next-minor' into develop 2017-03-04 22:11:22 +01:00
Benjamin Neff
e1bf447aad Merge branch 'next-minor' into develop 2017-03-04 21:08:18 +01:00
Steffen van Bergerem
1a14061e38 Merge branch 'next-minor' into develop 2017-03-02 12:48:53 +01:00
Benjamin Neff
f96edaa029 Merge branch 'next-minor' into develop 2017-03-02 01:27:06 +01:00
Benjamin Neff
0488902b66 Merge branch 'next-minor' into develop 2017-02-19 21:56:19 +01:00
Benjamin Neff
fa85b17890 Merge branch 'next-minor' into develop 2017-02-19 03:20:39 +01:00
Benjamin Neff
ec2c4a8564 Merge branch 'next-minor' into develop 2017-02-18 23:00:59 +01:00
Benjamin Neff
f9cf844602 Merge pull request #7280 from svbergerem/remove-chartbeat-and-mixpanel
Remove chartbeat and mixpanel support
2017-02-17 22:22:30 +01:00
Benjamin Neff
3d95642aca Fix receiving multiple mentioned-in-comment notifications
When somebody commented multiple times and is mentioned in another
comment afterwards, the person received multiple notifications.
2017-02-16 03:09:40 +01:00
Benjamin Neff
eac8c7572c Remove unused From headers
It is already added in the default_headers
2017-02-16 03:09:39 +01:00
Benjamin Neff
97c351c7b4 Add In-Reply-To and References header to mentioned in comment mail 2017-02-16 02:47:35 +01:00
Benjamin Neff
f1f1d09944 Merge pull request #7302 from svbergerem/simplify-mentions-publisher
Simplify mentions in the publisher
2017-02-15 03:15:01 +01:00
Steffen van Bergerem
810e43787c Merge branch 'next-minor' into develop 2017-02-14 10:37:05 +01:00
Steffen van Bergerem
c8ee03f639 Merge branch 'next-minor' into develop 2017-02-14 09:59:34 +01:00
Benjamin Neff
8a409c815c Merge branch 'next-minor' into develop 2017-02-14 00:30:53 +01:00
Benjamin Neff
d984178685 Merge pull request #7327 from svbergerem/display-mentions-in-comment
Render mentions as links in comments
2017-02-13 23:58:28 +01:00
Benjamin Neff
3ef98f50ee Merge pull request #7328 from svbergerem/use-new-mention-syntax-in-specs
Use new mention syntax in specs
2017-02-13 23:19:32 +01:00
Steffen van Bergerem
339c25f333 Merge pull request #7324 from SuperTux88/at-before-mention-links
Display @ before mentions
2017-02-13 22:06:50 +01:00
Steffen van Bergerem
ab0a4606e2 Use new mention syntax in specs 2017-02-13 21:56:05 +01:00
Steffen van Bergerem
ef3faff8f1 Render mentions as links in comments 2017-02-13 21:47:57 +01:00
Steffen van Bergerem
99351bd152 Merge branch 'next-minor' into develop 2017-02-13 14:21:29 +01:00
Benjamin Neff
2f9a032b38 Merge branch 'next-minor' into develop 2017-02-12 21:01:36 +01:00
Benjamin Neff
5c444e62be Add @ before mentions for mobile and notifications
fixes #7269
2017-02-12 20:10:36 +01:00
Benjamin Neff
c312ff00f3 Bump markdown-it-diaspora-mention 2017-02-12 19:30:43 +01:00
Steffen van Bergerem
a6e6e6de91 Refactor publisher mentions backbone view 2017-02-12 18:36:27 +01:00
Steffen van Bergerem
b23debf0b6 Refactor publisher backbone view 2017-02-12 18:36:27 +01:00
Steffen van Bergerem
9217df43cd Only update mentions in publisher before opening suggestions or preview 2017-02-12 18:36:27 +01:00
Steffen van Bergerem
90b379b110 Drop useless data attribute for message text in publisher 2017-02-12 18:36:26 +01:00
Steffen van Bergerem
c4b6b9534c No more fake text in the publisher 2017-02-12 18:36:26 +01:00
Steffen van Bergerem
a04f32adce Drop mentions box in the publisher 2017-02-12 18:31:37 +01:00
Steffen van Bergerem
b3c412d38f Display mention syntax in publisher instead of username 2017-02-12 18:31:36 +01:00
Steffen van Bergerem
408645cccc Use new mention syntax in the publisher 2017-02-12 18:31:36 +01:00
Benjamin Neff
cdb220be8d Merge branch 'next-minor' into develop 2017-02-11 19:37:30 +01:00
Steffen van Bergerem
f1510ba2d6 Merge branch 'next-minor' into develop 2017-02-08 12:58:27 +01:00
Dennis Schubert
63077bfeaf Merge branch 'next-minor' into develop 2017-02-05 10:34:48 +01:00
Dennis Schubert
37cdc7c10e Merge branch 'next-minor' into develop 2017-02-05 10:32:18 +01:00
Dennis Schubert
fda2d846e8 Merge branch 'next-minor' into develop 2017-02-05 10:31:34 +01:00
Dennis Schubert
29e712dfc8 Merge pull request #7305 from SuperTux88/improve-mention-syntax
Improve mention syntax
2017-02-05 10:30:06 +01:00
Benjamin Neff
2d8d0255dd Improve handling with new mention syntax without name
* fallback to diaspora ID when person is not found
* fix filter_people when the person is not found
* write some more tests
2017-01-31 20:56:22 +01:00
Benjamin Neff
84e2a131cf Remove { and } from the name when backporting mentions
Because } is not compatible with the regex.
2017-01-31 20:56:21 +01:00
Benjamin Neff
19e122264b Merge branch 'next-minor' into develop 2017-01-31 01:52:46 +01:00
Benjamin Neff
e10771c707 Merge pull request #7300 from SuperTux88/new-mention-syntax
New mention syntax - backend changes
2017-01-29 07:02:35 +01:00
Benjamin Neff
0e89d60117 Use name of mentioned person in plain text 2017-01-29 03:06:26 +01:00
Benjamin Neff
322f92110a Backport new mention syntax to old syntax for backward compatibility
See #7276
2017-01-29 03:06:26 +01:00
Benjamin Neff
a0d200d209 Update regex for new mention syntax
See #7276
2017-01-29 03:06:26 +01:00
Steffen van Bergerem
2aa91e0b62 Merge branch 'next-minor' into develop 2017-01-28 18:04:21 +01:00
Benjamin Neff
a025a23c71 Merge branch 'next-minor' into develop 2017-01-23 02:43:12 +01:00
Benjamin Neff
af00d7c5c0 Merge branch 'next-minor' into develop 2017-01-22 23:30:42 +01:00
Benjamin Neff
0e09c27a86 Merge branch 'next-minor' into develop 2017-01-19 00:20:53 +01:00
Benjamin Neff
8d84865e82 Merge branch 'next-minor' into develop 2017-01-18 23:52:17 +01:00
Benjamin Neff
a0bfe6ffbe Merge branch 'next-minor' into develop 2017-01-16 01:17:35 +01:00
Benjamin Neff
7b7fbeffdc Merge branch 'next-minor' into develop 2017-01-15 23:45:56 +01:00
Steffen van Bergerem
bd0210a181 Remove chartbeat and mixpanel support 2017-01-15 13:30:54 +01:00
Benjamin Neff
5d52c298ad Merge branch 'next-minor' into develop 2017-01-15 05:07:07 +01:00
Steffen van Bergerem
eb8d9809ff Merge branch 'next-minor' into develop 2017-01-15 04:04:31 +01:00
Benjamin Neff
03f9147589 Merge branch 'next-minor' into develop 2017-01-15 02:19:10 +01:00
Dennis Schubert
96b7c6b429 Merge branch 'next-minor' into develop 2017-01-15 00:13:17 +01:00
Dennis Schubert
00193a8866 Merge branch 'next-minor' into develop 2017-01-15 00:11:18 +01:00
Benjamin Neff
66e3cdb07e Merge branch 'next-minor' into develop 2017-01-14 03:22:36 +01:00
Benjamin Neff
c2a66966f2 Merge branch 'next-minor' into develop 2017-01-14 02:09:09 +01:00
Benjamin Neff
2bcca54330 Merge pull request #7242 from cmrd-senya/mentionable-route
new PostController#mentionable_in_comment action
2017-01-13 04:13:01 +01:00
cmrd Senya
1fb6040344 new PostController#mentionable_in_comment action 2017-01-13 04:47:50 +02:00
Benjamin Neff
479328d0e3 Merge branch 'next-minor' into develop 2017-01-13 02:49:18 +01:00
Benjamin Neff
ac136030c6 Merge branch 'next-minor' into develop 2017-01-11 02:43:41 +01:00
Benjamin Neff
f01480a14c Merge branch 'next-minor' into develop 2017-01-10 23:45:08 +01:00
Steffen van Bergerem
c164dac7a4 Merge branch 'next-minor' into develop 2017-01-07 18:32:15 +01:00
Steffen van Bergerem
a11747a579 Merge branch 'next-minor' into develop 2017-01-07 03:05:13 +01:00
Benjamin Neff
b632155772 Merge branch 'next-minor' into develop 2017-01-04 02:33:00 +01:00
Benjamin Neff
03ae48c820 Merge branch 'next-minor' into develop 2017-01-03 03:31:56 +01:00
Dennis Schubert
6a1386094a Merge branch 'next-minor' into develop 2016-12-14 00:11:41 +01:00
Dennis Schubert
f79a54fc6c Merge branch 'next-minor' into develop 2016-12-13 18:51:47 +01:00
Dennis Schubert
52b7d6ed9e updated 121 locale files [ci skip] 2016-12-13 18:49:44 +01:00
Benjamin Neff
fca13efdf2 Merge branch 'next-minor' into develop 2016-12-08 03:19:45 +01:00
Dennis Schubert
d74c182e6f Merge branch 'next-minor' into develop 2016-12-04 20:14:16 +01:00
Dennis Schubert
2c68c1f142 Merge branch 'next-minor' into develop 2016-12-04 20:10:17 +01:00
Benjamin Neff
da52627ab2 Merge branch 'next-minor' into develop 2016-12-02 03:31:45 +01:00
Dennis Schubert
af1c992e01 Merge branch 'next-minor' into develop 2016-12-01 03:17:21 +01:00
Benjamin Neff
bab503d960 Merge branch 'next-minor' into develop 2016-12-01 02:29:00 +01:00
Benjamin Neff
7bcd7cfd35 Merge pull request #7232 from svbergerem/fix-mentions-in-comments-migration
Fix mentions in comments migration on PostgreSQL
2016-11-30 00:07:14 +01:00
Steffen van Bergerem
154ea6515a Fix mentions in comments migration on PostgreSQL 2016-11-29 23:36:42 +01:00
Benjamin Neff
3b0c1020c0 Merge pull request #6818 from cmrd-senya/1851-mentions-in-comments.new
Mentions in comments backend changes
2016-11-29 19:31:43 +01:00
Benjamin Neff
4fb9d6ed11 Merge branch 'next-minor' into develop 2016-11-29 17:46:47 +01:00
cmrd Senya
33ad411bbd Mentions in comments backend changes 2016-11-28 15:56:56 +02:00
cmrd Senya
ef5751b808 Refactor mail workers to use common base
Introduce Workers::Mail::NotifierBase to be a base for all appropriate
mail workers to reduce code duplication
2016-11-28 15:35:46 +02:00
cmrd Senya
0ee34f8590 Remove the photo comment spec
This functionality is not something we support and it doesn't look
it will be reintroduced soon.

see discussion https://github.com/diaspora/diaspora/pull/6818#discussion_r70227392
2016-11-28 15:35:36 +02:00
Benjamin Neff
c1e583cffd Merge branch 'next-minor' into develop 2016-11-28 02:55:14 +01:00
Benjamin Neff
855b148ba5 Merge branch 'next-minor' into develop 2016-11-27 21:36:41 +01:00
Benjamin Neff
5c5ef38908 Merge branch 'next-minor' into develop 2016-11-26 02:38:55 +01:00
Benjamin Neff
34787043bb Merge branch 'next-minor' into develop 2016-11-25 22:37:21 +01:00
Steffen van Bergerem
443d738aee Merge branch 'next-minor' into develop 2016-11-25 15:56:39 +01:00
Steffen van Bergerem
365441ede2 Merge branch 'next-minor' into develop 2016-11-25 14:11:05 +01:00
Benjamin Neff
b6847f76b5 Merge branch 'next-minor' into develop 2016-11-24 23:30:24 +01:00
Benjamin Neff
edd3ddef52 Merge branch 'next-minor' into develop 2016-11-23 01:53:12 +01:00
Benjamin Neff
99b7229d5a Merge branch 'next-minor' into develop 2016-11-22 03:55:12 +01:00
Benjamin Neff
12a2e312d9 Merge branch 'next-minor' into develop 2016-11-19 03:40:57 +01:00
Steffen van Bergerem
9ecbac3ee0 Merge branch 'next-minor' into develop 2016-11-18 16:40:46 +01:00
Steffen van Bergerem
8cd26054c8 Merge branch 'next-minor' into develop 2016-11-18 15:29:00 +01:00
Benjamin Neff
73d352920f Merge branch 'next-minor' into develop 2016-11-18 02:14:51 +01:00
Steffen van Bergerem
f27769bcd2 Merge branch 'next-minor' into develop 2016-11-17 22:52:35 +01:00
Steffen van Bergerem
9b4f73dc77 Merge branch 'next-minor' into develop 2016-11-17 22:35:01 +01:00
Benjamin Neff
b319e0caa2 Merge branch 'next-minor' into develop 2016-11-15 22:56:06 +01:00
Benjamin Neff
6562397f64 Merge branch 'next-minor' into develop 2016-11-14 03:28:09 +01:00
Benjamin Neff
13869aa75c Merge branch 'next-minor' into develop 2016-11-13 20:11:38 +01:00
Steffen van Bergerem
766470dcd0 Merge branch 'next-minor' into develop 2016-11-12 21:39:17 +01:00
Dennis Schubert
2a927e66dc Merge branch 'next-minor' into develop 2016-11-06 03:07:00 +01:00
Dennis Schubert
b04ce82c49 Merge branch 'next-minor' into develop 2016-11-06 02:44:00 +01:00
Dennis Schubert
8fb17f8e2c Merge branch 'next-minor' into develop 2016-11-06 02:41:46 +01:00
Dennis Schubert
48cb2aca1d Merge branch 'next-minor' into develop 2016-11-06 02:41:12 +01:00
Dennis Schubert
ead2ba8edf Merge branch 'next-minor' into develop 2016-11-06 02:40:11 +01:00
Dennis Schubert
0c78fcaae7 Merge branch 'next-minor' into develop 2016-11-06 02:34:16 +01:00
Benjamin Neff
0b3f10aef2 Merge branch 'next-minor' into develop 2016-11-03 22:50:08 +01:00
Benjamin Neff
694d4cbc0f Merge branch 'next-minor' into develop 2016-11-02 23:03:36 +01:00
Dennis Schubert
bf3461ee3a Merge branch 'next-minor' into develop 2016-11-02 22:54:08 +01:00
Dennis Schubert
ad1b2793eb Merge branch 'next-minor' into develop 2016-10-30 00:15:20 +02:00
Dennis Schubert
69ec1d6fe8 Merge branch 'next-minor' into develop 2016-10-28 00:36:22 +02:00
Dennis Schubert
305958ff85 Merge branch 'next-minor' into develop 2016-10-27 02:30:37 +02:00
Dennis Schubert
402d87729c Merge branch 'next-minor' into develop 2016-10-27 02:26:57 +02:00
Dennis Schubert
75aaf869c5 Merge branch 'next-minor' into develop 2016-10-27 02:26:15 +02:00
Dennis Schubert
1e6e20bbfe Merge branch 'next-minor' into develop 2016-10-27 02:25:03 +02:00
Dennis Schubert
7cf63282af Merge branch 'next-minor' into develop 2016-10-27 02:23:40 +02:00
Dennis Schubert
3025b028e7 Merge branch 'next-minor' into develop 2016-10-27 02:22:33 +02:00
Benjamin Neff
2c0a2db848 Merge branch 'next-minor' into develop 2016-10-26 02:50:00 +02:00
Benjamin Neff
126d5f8f02 Merge branch 'next-minor' into develop 2016-10-26 00:52:02 +02:00
Steffen van Bergerem
9a09515955 Merge branch 'next-minor' into develop 2016-10-24 00:25:35 +02:00
Steffen van Bergerem
0b4215e961 Merge branch 'next-minor' into develop 2016-10-23 23:03:38 +02:00
Benjamin Neff
7e3a8b8c91 Merge branch 'next-minor' into develop 2016-10-18 23:30:42 +02:00
Steffen van Bergerem
892d2542e6 Merge branch 'next-minor' into develop 2016-10-18 15:37:37 +02:00
Steffen van Bergerem
7618b33528 Merge branch 'next-minor' into develop 2016-10-18 15:05:37 +02:00
Steffen van Bergerem
b40108e0c2 Merge branch 'next-minor' into develop 2016-10-17 22:48:01 +02:00
Dennis Schubert
563e62cbcb Merge branch 'next-minor' into develop 2016-10-01 10:24:22 +02:00
Steffen van Bergerem
fa4f7ff2d8 Merge branch 'next-minor' into develop 2016-10-01 02:37:02 +02:00
Benjamin Neff
fc3627d567 Merge branch 'next-minor' into develop 2016-10-01 02:29:11 +02:00
Dennis Schubert
c41fd52f1d Merge branch 'next-minor' into develop 2016-09-30 02:11:36 +02:00
Dennis Schubert
55b8c92809 Merge branch 'next-minor' into develop 2016-09-30 01:44:28 +02:00
Dennis Schubert
bb7928af55 Merge branch 'next-minor' into develop 2016-09-30 01:43:30 +02:00
Steffen van Bergerem
e08b775507 Merge branch 'next-minor' into develop 2016-09-30 00:33:16 +02:00
Steffen van Bergerem
3437c4d5cb Merge branch 'next-minor' into develop 2016-09-28 22:00:10 +02:00
Dennis Schubert
795283b581 Merge branch 'next-minor' into develop 2016-09-25 23:07:57 +02:00
Benjamin Neff
aa70b2f6c9 Merge branch 'next-minor' into develop 2016-09-25 20:15:34 +02:00
Dennis Schubert
3186855ffa Merge branch 'next-minor' into develop 2016-09-25 07:28:32 +02:00
Dennis Schubert
89bf1aeb4b Merge branch 'next-minor' into develop 2016-09-25 03:26:26 +02:00
Dennis Schubert
67328b9533 Merge branch 'next-minor' into develop 2016-09-25 03:20:48 +02:00
Dennis Schubert
20f93323fa Merge branch 'next-minor' into develop 2016-09-25 03:12:35 +02:00
Dennis Schubert
cff9669a03 Merge branch 'next-minor' into develop 2016-09-25 03:07:08 +02:00
Dennis Schubert
5437af74a3 Merge branch 'next-minor' into develop 2016-09-25 02:59:00 +02:00
Dennis Schubert
8a3fd1f3e7 Merge branch 'next-minor' into develop 2016-09-20 10:21:53 +02:00
Dennis Schubert
f34bf255d1 Merge branch 'next-minor' into develop 2016-09-20 04:29:47 +02:00
Dennis Schubert
d1ce590269 Merge branch 'next-minor' into develop 2016-09-20 04:25:10 +02:00
Dennis Schubert
b1eda420a3 Merge branch 'next-minor' into develop 2016-09-20 02:06:05 +02:00
Dennis Schubert
c3c5583d3e Merge branch 'next-minor' into develop 2016-09-20 01:47:32 +02:00
Benjamin Neff
9daee43aa8 Merge branch 'next-minor' into develop 2016-09-18 22:48:10 +02:00
Benjamin Neff
e88fdf8d60 Merge branch 'next-minor' into develop 2016-09-18 22:44:53 +02:00
Benjamin Neff
95167528a2 Merge branch 'next-minor' into develop 2016-09-18 22:31:18 +02:00
Steffen van Bergerem
b629f5fe32 Merge branch 'next-minor' into develop 2016-09-18 13:44:44 +02:00
Steffen van Bergerem
73d12bf344 Merge branch 'next-minor' into develop 2016-09-18 13:41:53 +02:00
Steffen van Bergerem
07883a73ba Merge branch 'next-minor' into develop 2016-09-18 13:35:53 +02:00
Benjamin Neff
1fdc17d96c Merge branch 'next-minor' into develop 2016-09-13 01:02:57 +02:00
Benjamin Neff
58642de8cb Merge branch 'next-minor' into develop 2016-09-13 01:01:12 +02:00
Benjamin Neff
36b2dff164 Merge branch 'next-minor' into develop 2016-09-13 01:00:13 +02:00
1263 changed files with 21792 additions and 13924 deletions

23
.gitignore vendored
View File

@@ -10,27 +10,15 @@ app/assets/images/custom/
# Configuration files
config/diaspora.yml
config/heroku.yml
config/initializers/secret_token.rb
config/redis.conf
config/deploy_config.yml
config/schedule.rb
.bundle
vendor/bundle/
vendor/cache/
config/database.yml
.rvmrc_custom
.rvmrc.local
config/oidc_key.pem
# Mailing list stuff
config/email_offset
config/mailing_list.csv
# Generated files
log/
public/stylesheets/*.css
public/diaspora
spec/fixtures/*.y*ml
spec/fixtures/*.fixture.*
coverage/
@@ -39,6 +27,12 @@ public/404.html
public/422.html
public/500.html
# the db/schema.rb. Although this is contrary to rails best-practises, we
# cannot provide a schema.rb that works for both MySQL and PostgreSQL, so we
# have no choice. Our migrations are maintained, so it should always be
# possible to get back to a "clean" database schema anyway.
db/schema.rb
# Sprites
app/assets/images/branding-*.png
app/assets/images/branding/logos-*.png
@@ -53,17 +47,13 @@ doc/
public/uploads/
public/assets/
public/source.tar*
public/.well-known
tmp/**/
tmp/
*.sqlite3
# Temporary files of every sort
.sass-cache/
.DS_Store
.idea
.redcar
.rvmrc
.stgit*
*.swap
*.swo
@@ -76,7 +66,6 @@ tmp/
nbproject
patches-*
capybara-*.html
dump.rdb
# Rubinius's JIT
*.rbc

View File

@@ -1,4 +1,5 @@
AllCops:
TargetRubyVersion: 2.3
Exclude:
- "bin/**/*"
- "db/schema.rb"
@@ -6,6 +7,10 @@ AllCops:
Rails:
Enabled: true
# Disable for rails 4
Rails/HttpPositionalArguments:
Enabled: false
# Commonly used screens these days easily fit more than 80 characters.
Metrics/LineLength:
Max: 120
@@ -36,7 +41,7 @@ Metrics/BlockLength:
# No space makes the method definition shorter and differentiates
# from a regular assignment.
Style/SpaceAroundEqualsInParameterDefault:
Layout/SpaceAroundEqualsInParameterDefault:
EnforcedStyle: no_space
# Single quotes being faster is hardly measurable and only affects parse time.
@@ -51,7 +56,7 @@ Style/SymbolArray:
Enabled: true
# Most readable form.
Style/AlignHash:
Layout/AlignHash:
EnforcedHashRocketStyle: table
EnforcedColonStyle: table
@@ -88,7 +93,7 @@ Style/RaiseArgs:
# Indenting the chained dots beneath each other is not supported by this cop,
# see https://github.com/bbatsov/rubocop/issues/1633
Style/MultilineOperationIndentation:
Layout/MultilineOperationIndentation:
Enabled: false
# Fail is an alias of raise. Avoid aliases, it's more cognitive load for no gain.
@@ -103,7 +108,7 @@ Style/SignalException:
Lint/HandleExceptions:
Enabled: false
Style/SpaceInsideBlockBraces:
Layout/SpaceInsideBlockBraces:
# The space here provides no real gain in readability while consuming
# horizontal space that could be used for a better parameter name.
# Also {| differentiates better from a hash than { | does.
@@ -111,7 +116,7 @@ Style/SpaceInsideBlockBraces:
# No trailing space differentiates better from the block:
# foo} means hash, foo } means block.
Style/SpaceInsideHashLiteralBraces:
Layout/SpaceInsideHashLiteralBraces:
EnforcedStyle: no_space
# { ... } for multi-line blocks is okay, follow Weirichs rule instead:
@@ -148,7 +153,7 @@ Style/Documentation:
Enabled: false
# This is just silly. Calling the argument `other` in all cases makes no sense.
Style/OpMethod:
Naming/BinaryOperatorParameterName:
Enabled: false
# There are valid cases, for example debugging Cucumber steps,
@@ -161,15 +166,5 @@ Style/NumericPredicate:
EnforcedStyle: comparison
# Reset some HoundCI changes back to Rubocop defaults
Style/DotPosition:
Layout/DotPosition:
EnforcedStyle: leading
### backward compatibility
# only with ruby >= 2.3
Style/FrozenStringLiteralComment:
Enabled: false
# only with ruby >= 2.4
Performance/RegexpMatch:
Enabled: false

View File

@@ -1 +1 @@
2.3
2.4

View File

@@ -1,8 +1,8 @@
language: ruby
rvm:
- 2.3.1
- 2.1
- 2.4.2
- 2.3.5
env:
- DB=postgresql BUILD_TYPE=cucumber
@@ -15,6 +15,7 @@ cache:
bundler: true
directories:
- app/assets/images
- tmp/cache/assets
branches:
only:
@@ -23,15 +24,13 @@ branches:
- 'develop'
before_install:
- gem install bundler
- 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
bundler_args: "--deployment --without development production --with mysql postgresql --jobs 3 --retry 3"
script: "./script/ci/build.sh"
script: "bin/rake --trace ci:travis:${BUILD_TYPE}"
notifications:
irc:

42
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,42 @@
# Contributing to diaspora\*
First of all: thank you very much for helping us out!
## Things you need to know before contributing
If you want to get in touch with other diaspora\* developers, [check our wiki][how-we-communicate] for information on how we communicate. Feel free to ask if you have any questions!
Everyone interacting with our code, issue trackers, chat rooms, mailing lists, the wiki, and the discourse forum is expected to follow the [diaspora\* code of conduct][code-of-conduct].
## Report a security issue
Found a security issue? Please disclose it responsibly. We have a team of developers listening to [security@diasporafoundation.org][sec-mail]. The PGP fingerprint is [AB0D AB02 0FC5 D398 03AB 3CE1 6F70 243F 27AD 886A][pgp].
## Contributing to translations
We use [WebTranslateIt][webtranslateit] to manage translations of the app interface. Please read [our wiki page][translation-wiki] to find out more about this. If your language is featured on WebTranslateIt, please do **not** open a pull request to update translations. If it is not already featured on WebTranslateIt, please read the wiki article above to find out how to proceed.
## Contributing to the code
**Before opening a pull request** please read [how to contribute][contribute]. Doing things the right way from the start will save us time and mean that your contribution can be integrated quicker!
- Follow our [git workflow][git-workflow] method. In particular, *do not* open a pull request from the `master` or the `develop` branch.
- Follow our [styleguide][styleguide] and run pronto, our syntax analyzer, **locally before opening a pull request**. See [our wiki][pronto] for information on how to do this.
- [Write tests][testing-workflow].
- Use meaningful commit-messages and split larger tasks, e.g. refactoring, into separate commits. This makes the review process much easier.
## Other ways to contribute
You dont know code? No worries, there are plenty other ways to help the diaspora* project! Please find out how you can help [on our wiki][other-ways].
[code-of-conduct]: https://github.com/diaspora/diaspora/blob/develop/CODE_OF_CONDUCT.md
[how-we-communicate]: https://wiki.diasporafoundation.org/How_we_communicate
[pgp]: https://pgp.mit.edu/pks/lookup?op=get&search=0x6F70243F27AD886A
[sec-mail]: mailto:security@diasporafoundation.org
[webtranslateit]: https://webtranslateit.com/en/projects/3020-Diaspora
[translation-wiki]: https://wiki.diasporafoundation.org/Contribute_translations
[contribute]: https://wiki.diasporafoundation.org/Getting_started_with_contributing
[git-workflow]: https://wiki.diasporafoundation.org/Git_Workflow
[styleguide]: https://wiki.diasporafoundation.org/Styleguide
[pronto]: https://wiki.diasporafoundation.org/Styleguide#Automatic_local_review
[testing-workflow]: https://wiki.diasporafoundation.org/Testing_Workflow
[other-ways]: https://wiki.diasporafoundation.org/Other_ways_to_contribute

View File

@@ -1,3 +1,231 @@
# 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
* Work on the data downloads: Fixed general layout of buttons, added a timestamp and implemented auto-deletion of old exports [#7684](https://github.com/diaspora/diaspora/pull/7684)
* Increase Twitter character limit to 280 [#7694](https://github.com/diaspora/diaspora/pull/7694)
* Improve password autocomplete with password managers [#7642](https://github.com/diaspora/diaspora/pull/7642)
* Remove the limit of participants in private conversations [#7705](https://github.com/diaspora/diaspora/pull/7705)
* Send blocks to the blocked persons pod for better UX [#7705](https://github.com/diaspora/diaspora/pull/7705)
* Send a dummy participation on all incoming public posts to increase interaction consistency [#7708](https://github.com/diaspora/diaspora/pull/7708)
## Bug fixes
* Fix invite link on the contacts page when the user has no contacts [#7690](https://github.com/diaspora/diaspora/pull/7690)
* Fix the mobile bookmarklet when called without parameters [#7698](https://github.com/diaspora/diaspora/pull/7698)
* Properly build the #newhere message for people who got invited [#7702](https://github.com/diaspora/diaspora/pull/7702)
* Fix the admin report view for posts without text [#7706](https://github.com/diaspora/diaspora/pull/7706)
* Upgrade Nokogiri to fix [a disclosed vulnerability in libxml2](https://github.com/sparklemotion/nokogiri/issues/1714)
## Features
* Check if redis is running in script/server [#7685](https://github.com/diaspora/diaspora/pull/7685)
# 0.7.2.1
Fixes notifications when people remove their birthday date [#7691](https://github.com/diaspora/diaspora/pull/7691)
# 0.7.2.0
## Bug fixes
* Ignore invalid `diaspora://` links [#7652](https://github.com/diaspora/diaspora/pull/7652)
* Fix deformed avatar in hovercards [#7656](https://github.com/diaspora/diaspora/pull/7656)
* Fix default aspects on profile page and bookmarklet publisher [#7679](https://github.com/diaspora/diaspora/issues/7679)
## Features
* Add birthday notifications [#7624](https://github.com/diaspora/diaspora/pull/7624)
# 0.7.1.1
Fixes an issue with installing and running diaspora\* with today released bundler v1.16.0.
# 0.7.1.0
## Ensure account deletions are run
There were some issues causing accounts deletions to not properly perform in some cases, see
[#7631](https://github.com/diaspora/diaspora/issues/7631) and [#7639](https://github.com/diaspora/diaspora/pull/7639).
To ensure these are reexecuted properly, please run `RAILS_ENV=production bin/rake migrations:run_account_deletions`
after you've upgraded.
## Refactor
* Remove title from profile photo upload button [#7551](https://github.com/diaspora/diaspora/pull/7551)
* Remove Internet Explorer workarounds [#7557](https://github.com/diaspora/diaspora/pull/7557)
* Sort notifications by last interaction [#7568](https://github.com/diaspora/diaspora/pull/7568) [#7648](https://github.com/diaspora/diaspora/pull/7648)
* Remove tiff support from photos [#7576](https://github.com/diaspora/diaspora/pull/7576)
* Remove reference from reshares when original post is deleted [#7578](https://github.com/diaspora/diaspora/pull/7578)
* Merge migrations from before 0.6.0.0 to CreateSchema [#7580](https://github.com/diaspora/diaspora/pull/7580)
* Remove auto detection of languages with highlightjs [#7591](https://github.com/diaspora/diaspora/pull/7591)
* Move enable/disable notification icon [#7592](https://github.com/diaspora/diaspora/pull/7592)
* Use Bootstrap 3 progress-bar for polls [#7600](https://github.com/diaspora/diaspora/pull/7600)
* Enable frozen string literals [#7595](https://github.com/diaspora/diaspora/pull/7595)
* Remove `rails_admin_histories` table [#7597](https://github.com/diaspora/diaspora/pull/7597)
* Optimize memory usage on profile export [#7627](https://github.com/diaspora/diaspora/pull/7627)
* Limit the number of parallel exports [#7629](https://github.com/diaspora/diaspora/pull/7629)
* Reduce memory usage for account deletion [#7639](https://github.com/diaspora/diaspora/pull/7639)
## Bug fixes
* Fix displaying polls with long answers [#7579](https://github.com/diaspora/diaspora/pull/7579)
* Fix S3 support [#7566](https://github.com/diaspora/diaspora/pull/7566)
* Fix mixed username and timestamp with LTR/RTL scripts [#7575](https://github.com/diaspora/diaspora/pull/7575)
* Prevent users from zooming in IE Mobile [#7589](https://github.com/diaspora/diaspora/pull/7589)
* Fix recipient prefill on contacts and profile page [#7599](https://github.com/diaspora/diaspora/pull/7599)
* Display likes and reshares without login [#7583](https://github.com/diaspora/diaspora/pull/7583)
* Fix invalid data in the database for user data export [#7614](https://github.com/diaspora/diaspora/pull/7614)
* Fix local migration run without old private key [#7558](https://github.com/diaspora/diaspora/pull/7558)
* Fix export not downloadable because the filename was resetted on access [#7622](https://github.com/diaspora/diaspora/pull/7622)
* Delete invalid oEmbed caches with binary titles [#7620](https://github.com/diaspora/diaspora/pull/7620)
* Delete invalid diaspora IDs from friendica [#7630](https://github.com/diaspora/diaspora/pull/7630)
* Cleanup relayables where the signature is missing [#7637](https://github.com/diaspora/diaspora/pull/7637)
* Avoid page to jump to top after a post deletion [#7638](https://github.com/diaspora/diaspora/pull/7638)
* Handle duplicate account deletions [#7639](https://github.com/diaspora/diaspora/pull/7639)
* Handle duplicate account migrations [#7641](https://github.com/diaspora/diaspora/pull/7641)
* Handle bugs related to missing users [#7632](https://github.com/diaspora/diaspora/pull/7632)
* Cleanup empty signatures [#7644](https://github.com/diaspora/diaspora/pull/7644)
## Features
* Ask for confirmation when leaving a submittable comment field [#7530](https://github.com/diaspora/diaspora/pull/7530)
* Show users vote in polls [#7550](https://github.com/diaspora/diaspora/pull/7550)
* Add explanation of ignore function to in-app help section [#7585](https://github.com/diaspora/diaspora/pull/7585)
* Add camo information to NodeInfo [#7617](https://github.com/diaspora/diaspora/pull/7617)
* Add support for `diaspora://` links [#7625](https://github.com/diaspora/diaspora/pull/7625)
* Add support to relay likes for comments [#7625](https://github.com/diaspora/diaspora/pull/7625)
* Implement RFC 7033 WebFinger [#7625](https://github.com/diaspora/diaspora/pull/7625)
# 0.7.0.1
Update nokogiri to fix [multiple libxml2 vulnerabilities](https://usn.ubuntu.com/usn/usn-3424-1/).
# 0.7.0.0
## Supported Ruby versions
This release recommends using Ruby 2.4, while retaining Ruby 2.3 as an officially supported version.
Ruby 2.1 is no longer officially supported.
## Delete public/.well-known/
Before upgrading, please check if your `public/` folder contains a hidden `.well-known/` folder.
If so, please delete it since it will prevent the federation from working properly.
## Refactor
* Make the mention syntax more flexible [#7305](https://github.com/diaspora/diaspora/pull/7305)
* Display @ before mentions [#7324](https://github.com/diaspora/diaspora/pull/7324)
* Simplify mentions in the publisher [#7302](https://github.com/diaspora/diaspora/pull/7302)
* Remove chartbeat and mixpanel support [#7280](https://github.com/diaspora/diaspora/pull/7280)
* Upgrade to jQuery 3 [#7303](https://github.com/diaspora/diaspora/pull/7303)
* Add i18n for color themes [#7369](https://github.com/diaspora/diaspora/pull/7369)
* Remove deprecated statistics.json [#7399](https://github.com/diaspora/diaspora/pull/7399)
* Always link comment count text on mobile [#7483](https://github.com/diaspora/diaspora/pull/7483)
* Switch to new federation protocol [#7436](https://github.com/diaspora/diaspora/pull/7436)
* Send public profiles publicly [#7501](https://github.com/diaspora/diaspora/pull/7501)
* Change sender for mails [#7495](https://github.com/diaspora/diaspora/pull/7495)
* Move back to top to the right to avoid misclicks [#7516](https://github.com/diaspora/diaspora/pull/7516)
* Include count in mobile post action link [#7520](https://github.com/diaspora/diaspora/pull/7520)
* Update the user data export archive format [#6726](https://github.com/diaspora/diaspora/pull/6726)
* Use id as fallback when sorting posts [#7523](https://github.com/diaspora/diaspora/pull/7523)
* Remove no-posts-info when adding posts to the stream [#7523](https://github.com/diaspora/diaspora/pull/7523)
* Upgrade to rails 5.1 [#7514](https://github.com/diaspora/diaspora/pull/7514)
* Refactoring single post view interactions [#7182](https://github.com/diaspora/diaspora/pull/7182)
* Update help pages [#7528](https://github.com/diaspora/diaspora/pull/7528)
* Disable rendering logging in production [#7529](https://github.com/diaspora/diaspora/pull/7529)
* Add some missing indexes and cleanup the database if needed [#7533](https://github.com/diaspora/diaspora/pull/7533)
* Remove avatar, name, timestamp and interactions from publisher preview [#7536](https://github.com/diaspora/diaspora/pull/7536)
## Bug fixes
* Fix height too high on mobile SPV [#7480](https://github.com/diaspora/diaspora/pull/7480)
* Improve stream when ignoring a person who posts a lot of tagged posts [#7503](https://github.com/diaspora/diaspora/pull/7503)
* Fix order of comments across pods [#7436](https://github.com/diaspora/diaspora/pull/7436)
* Prevent publisher from closing in preview mode [#7518](https://github.com/diaspora/diaspora/pull/7518)
* Increase reshare counter after reshare on mobile [#7520](https://github.com/diaspora/diaspora/pull/7520)
* Reset stuck exports and handle errors [#7535](https://github.com/diaspora/diaspora/pull/7535)
## Features
* Add support for mentions in comments to the backend [#6818](https://github.com/diaspora/diaspora/pull/6818)
* Add support for new mention syntax [#7300](https://github.com/diaspora/diaspora/pull/7300) [#7394](https://github.com/diaspora/diaspora/pull/7394)
* Render mentions as links in comments [#7327](https://github.com/diaspora/diaspora/pull/7327)
* Add support for mentions in comments to the front-end [#7386](https://github.com/diaspora/diaspora/pull/7386)
* Support direct links to comments on mobile [#7508](https://github.com/diaspora/diaspora/pull/7508)
* Add inviter first and last name in the invitation e-mail [#7484](https://github.com/diaspora/diaspora/pull/7484)
* Add markdown editor for comments and conversations [#7482](https://github.com/diaspora/diaspora/pull/7482)
* Improve responsive header in desktop version [#7509](https://github.com/diaspora/diaspora/pull/7509)
* Support cmd+enter to submit posts, comments and conversations [#7524](https://github.com/diaspora/diaspora/pull/7524)
* Add markdown editor for posts, comments and conversations on mobile [#7235](https://github.com/diaspora/diaspora/pull/7235)
* Mark as "Mobile Web App Capable" on Android [#7534](https://github.com/diaspora/diaspora/pull/7534)
* Add support for receiving account migrations [#6750](https://github.com/diaspora/diaspora/pull/6750)
# 0.6.7.0
## Refactor
* Cleanup some translations [#7465](https://github.com/diaspora/diaspora/pull/7465)
## Features
* Change email without confirmation when mail is disabled [#7455](https://github.com/diaspora/diaspora/pull/7455)
* Warn users if they leave the profile editing page with unsaved changes [#7473](https://github.com/diaspora/diaspora/pull/7473)
* Add admin pages to the mobile interface [#7295](https://github.com/diaspora/diaspora/pull/7295)
* Add links to discourse to footer and sidebar [#7446](https://github.com/diaspora/diaspora/pull/7446)
# 0.6.6.0
## Refactor
* Remove rails\_admin [#7440](https://github.com/diaspora/diaspora/pull/7440)
* Use guid instead of id at permalink and in SPV [#7453](https://github.com/diaspora/diaspora/pull/7453)
## Bug fixes
* Make photo upload button hover text translatable [#7429](https://github.com/diaspora/diaspora/pull/7429)
* Fix first comment in mobile view with french locale [#7441](https://github.com/diaspora/diaspora/pull/7441)
* Use post page title and post author in atom feed [#7420](https://github.com/diaspora/diaspora/pull/7420)
* Handle broken public keys when receiving posts [#7448](https://github.com/diaspora/diaspora/pull/7448)
* Fix welcome message when podmin is set to an invalid username [#7452](https://github.com/diaspora/diaspora/pull/7452)
## Features
* Add support for Nodeinfo 2.0 [#7447](https://github.com/diaspora/diaspora/pull/7447)
# 0.6.5.0
## Refactor
* Remove unused setPreload function [#7354](https://github.com/diaspora/diaspora/pull/7354)
* Remove jQuery deprecations [#7356](https://github.com/diaspora/diaspora/pull/7356)
* Use empty selector where "#" was used as a selector before (prepare jQuery 3 upgrade) [#7372](https://github.com/diaspora/diaspora/pull/7372)
* Increase maximal height of large thumbnail on mobile [#7383](https://github.com/diaspora/diaspora/pull/7383)
* Reduce conversation recipient size [#7376](https://github.com/diaspora/diaspora/pull/7376)
* Cleanup rtl css [#7374](https://github.com/diaspora/diaspora/pull/7374)
* Increase visual spacing between list items [#7401](https://github.com/diaspora/diaspora/pull/7401)
* Remove unused gem and cucumber step [#7410](https://github.com/diaspora/diaspora/pull/7410)
* Disable CSP header when `report_only` and no `report_uri` is set [#7367](https://github.com/diaspora/diaspora/pull/7367)
## Bug fixes
* Don't hide posts when blocking someone from the profile [#7379](https://github.com/diaspora/diaspora/pull/7379)
* Disable autocomplete for the conversation form recipient input [#7375](https://github.com/diaspora/diaspora/pull/7375)
* Fix sharing indicator on profile page for blocked users [#7382](https://github.com/diaspora/diaspora/pull/7382)
* Remove post only after a successful deletion on the server [#7385](https://github.com/diaspora/diaspora/pull/7385)
* Fix an issue where pod admins could get logged out when using sidekiq-web [#7395](https://github.com/diaspora/diaspora/pull/7395)
* Add avatar fallback for typeahead and conversations [#7414](https://github.com/diaspora/diaspora/pull/7414)
## Features
* Add links to liked and commented pages [#5502](https://github.com/diaspora/diaspora/pull/5502)
# 0.6.4.1
Fixes a possible Remote Code Execution ([CVE-2016-4658](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4658)) and a possible DoS ([CVE-2016-5131](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5131)) by updating Nokogiri, which in turn updates libxml2.

177
Gemfile
View File

@@ -1,29 +1,32 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "rails", "4.2.8"
gem "rails", "5.1.4"
# Legacy Rails features, remove me!
# responders (class level)
gem "responders", "2.3.0"
gem "responders", "2.4.0"
# Appserver
gem "unicorn", "5.2.0", require: false
gem "unicorn", "5.3.0", require: false
gem "unicorn-worker-killer", "0.4.4"
# Federation
gem "diaspora_federation-rails", "0.1.8"
gem "diaspora_federation-json_schema", "0.2.4"
gem "diaspora_federation-rails", "0.2.4"
# API and JSON
gem "acts_as_api", "1.0.0"
gem "json", "1.8.6"
gem "acts_as_api", "1.0.1"
gem "json", "2.1.0"
gem "json-schema", "2.8.0"
# Authentication
gem "devise", "4.2.0"
gem "devise", "4.4.1"
gem "devise_lastseenable", "0.0.6"
# Captcha
@@ -32,15 +35,15 @@ gem "simple_captcha2", "0.4.3", require: "simple_captcha"
# Background processing
gem "sidekiq", "4.2.9"
gem "sidekiq", "5.0.4"
# Scheduled processing
gem "sidekiq-cron", "0.4.5"
gem "sidekiq-cron", "0.6.3"
# Compression
gem "uglifier", "3.1.2"
gem "uglifier", "3.2.0"
# Configuration
@@ -48,33 +51,34 @@ gem "configurate", "0.3.1"
# Cross-origin resource sharing
gem "rack-cors", "0.4.1", require: "rack/cors"
gem "rack-cors", "1.0.1", require: "rack/cors"
# CSS
gem "autoprefixer-rails", "6.7.6"
gem "autoprefixer-rails", "7.1.4.1"
gem "bootstrap-sass", "3.3.7"
gem "bootstrap-switch-rails", "3.3.3"
gem "compass-rails", "2.0.5"
gem "compass-rails", "3.0.2"
gem "sass-rails", "5.0.6"
gem "sprockets-rails", "3.2.1"
# Database
group :mysql, optional: true do
gem "mysql2", "0.4.5"
gem "mysql2", "0.4.9"
end
group :postgresql, optional: true do
gem "pg", "0.19.0"
gem "pg", "0.21.0"
end
gem "activerecord-import", "0.17.1"
gem "activerecord-import", "0.20.1"
# File uploading
gem "fog-aws", "1.2.1"
gem "carrierwave", "0.11.2"
gem "mini_magick", "4.6.1"
gem "carrierwave", "1.1.0"
gem "fog-aws", "1.4.1"
gem "mini_magick", "4.8.0"
# GUID generation
gem "uuid", "2.3.8"
@@ -85,19 +89,19 @@ gem "entypo-rails", "3.0.0"
# JavaScript
gem "handlebars_assets", "0.23.1"
gem "jquery-rails", "4.2.1"
gem "jquery-ui-rails", "5.0.5"
gem "js-routes", "1.3.3"
gem "js_image_paths", "0.1.0"
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", "2.2.4" # Should be kept in sync with jquery-rails
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.9.0"
gem "rails-assets-markdown-it", "8.3.0"
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.1.1"
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"
@@ -110,33 +114,36 @@ source "https://rails-assets.org" do
# jQuery plugins
gem "rails-assets-autosize", "3.0.20"
gem "rails-assets-blueimp-gallery", "2.25.0"
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 "markdown-it-html5-embed", "1.0.0"
# Localization
gem "http_accept_language", "2.1.0"
gem "http_accept_language", "2.1.1"
gem "i18n-inflector-rails", "1.0.7"
gem "rails-i18n", "4.0.8"
gem "rails-i18n", "5.1.1"
# Mail
gem "markerb", "1.1.0"
# Map
gem "leaflet-rails", "0.7.7"
gem "leaflet-rails", "1.2.0"
# Parsing
gem "nokogiri", "1.7.1"
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.10.1"
gem "twitter-text", "1.14.5"
gem "ruby-oembed", "0.12.0"
gem "twitter-text", "1.14.7"
# RTL support
@@ -144,11 +151,11 @@ gem "string-direction", "1.2.0"
# Security Headers
gem "secure_headers", "3.6.1"
gem "secure_headers", "3.7.1"
# Services
gem "omniauth", "1.4.2"
gem "omniauth", "1.6.1"
gem "omniauth-facebook", "4.0.0"
gem "omniauth-tumblr", "1.2"
gem "omniauth-twitter", "1.4.0"
@@ -156,11 +163,11 @@ gem "twitter", "6.1.0"
gem "omniauth-wordpress", "0.2.2"
# OpenID Connect
gem "openid_connect", "0.12.0"
gem "openid_connect", "1.1.3"
# Serializers
gem "active_model_serializers", "0.9.5"
gem "active_model_serializers", "0.9.7"
# XMPP chat dependencies
gem "diaspora-prosody-config", "0.0.7"
@@ -168,27 +175,27 @@ gem "rails-assets-diaspora_jsxc", "0.1.5.develop.7", source: "https://rails-asse
# Tags
gem "acts-as-taggable-on", "3.5.0"
gem "acts-as-taggable-on", "5.0.0"
# URIs and HTTP
gem "addressable", "2.5.0", require: "addressable/uri"
gem "addressable", "2.5.2", require: "addressable/uri"
gem "faraday", "0.11.0" # also update User-Agent in OpenID specs
gem "faraday_middleware", "0.11.0.1"
gem "faraday_middleware", "0.12.2"
gem "faraday-cookie_jar", "0.0.6"
gem "typhoeus", "1.1.2"
gem "typhoeus", "1.3.0"
# Views
gem "gon", "6.1.0"
gem "hamlit", "2.8.0"
gem "mobile-fu", "1.3.1"
gem "will_paginate", "3.1.5"
gem "rails-timeago", "2.11.0"
gem "hamlit", "2.8.6"
gem "mobile-fu", "1.4.0"
gem "rails-timeago", "2.16.0"
gem "will_paginate", "3.1.6"
# Logging
gem "logging-rails", "0.5.0", require: "logging/rails"
gem "logging-rails", "0.6.0", require: "logging/rails"
# Reading and writing zip files
@@ -201,13 +208,7 @@ gem "rubyzip", "1.2.1", require: "zip"
# https://github.com/discourse/discourse/pull/238
gem "minitest"
gem "versionist", "1.5.0"
# Prevent accidental upgrades of thor
# TODO: remove this when either all gems depending on thor have fixed the warnings
# or thor released a version where they are clearly marked as warnings
# see: https://github.com/erikhuda/thor/issues/538
gem "thor", "0.19.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".
@@ -217,10 +218,6 @@ gem "thor", "0.19.1"
# gem "therubyracer", :platform => :ruby
group :production do # we don"t install these on travis to speed up test runs
# Administration
gem "rails_admin", "0.8.1"
# Analytics
gem "rack-google-analytics", "1.2.0"
@@ -228,7 +225,7 @@ group :production do # we don"t install these on travis to speed up test runs
# Process management
gem "eye", "0.9.1"
gem "eye", "0.9.2"
# Redirects
@@ -237,7 +234,7 @@ group :production do # we don"t install these on travis to speed up test runs
# Third party asset hosting
gem "asset_sync", "2.0.0", require: false
gem "asset_sync", "2.2.0", require: false
end
group :development do
@@ -245,22 +242,22 @@ group :development do
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.2.0", require: false
gem "rb-fsevent", "0.9.8", require: false
gem "rb-inotify", "0.9.8", 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.21.0"
gem "pronto", "0.8.2"
gem "pronto-eslint", "0.8.0"
gem "pronto-haml", "0.8.0"
gem "pronto-rubocop", "0.8.0"
gem "pronto-scss", "0.8.0", require: false
gem "rubocop", "0.47.1"
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
# Preloading environment
gem "spring", "2.0.1"
gem "spring", "2.0.2"
gem "spring-commands-rspec", "1.0.4"
gem "spring-commands-cucumber", "1.0.1"
@@ -269,7 +266,7 @@ group :development do
gem "pry-byebug"
# test coverage
gem "simplecov", "0.12.0", require: false
gem "simplecov", "0.14.1", require: false
gem "turbo_dev_assets", "0.0.2"
end
@@ -277,45 +274,45 @@ end
group :test do
# RSpec (unit tests, some integration tests)
gem "fixture_builder", "0.4.1"
gem "fixture_builder", "0.5.0"
gem "fuubar", "2.2.0"
gem "test_after_commit", "1.1.0"
gem "json-schema-rspec", "0.0.4"
gem "rspec-json_expectations", "~> 2.1"
# Cucumber (integration tests)
gem "capybara", "2.12.1"
gem "database_cleaner", "1.5.3"
gem "poltergeist", "1.13.0"
gem "capybara", "2.15.1"
gem "database_cleaner", "1.6.1"
gem "poltergeist", "1.16.0"
gem "cucumber-api-steps", "0.13", require: false
gem "json_spec", "1.1.4"
# General helpers
gem "factory_girl_rails", "4.8.0"
gem "timecop", "0.8.1"
gem "webmock", "2.3.2", require: false
gem "shoulda-matchers", "3.1.1"
gem "shoulda-matchers", "3.1.2"
gem "timecop", "0.9.1"
gem "webmock", "3.0.1", require: false
gem "diaspora_federation-test", "0.1.8"
gem "diaspora_federation-test", "0.2.4"
# Coverage
gem 'coveralls', require: false
gem "coveralls", "0.8.21", require: false
end
group :development, :test do
# RSpec (unit tests, some integration tests)
gem "rspec-rails", "3.5.2"
gem "rspec-rails", "3.6.1"
# Cucumber (integration tests)
gem "cucumber-rails", "1.4.5", require: false
gem "cucumber-rails", "1.5.0", require: false
# Jasmine (client side application tests (JS))
gem "jasmine", "2.5.2"
gem "jasmine", "2.8.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"
# silence assets
gem "quiet_assets", "1.1.0"
# For `assigns` in controller specs
gem "rails-controller-testing", "1.0.2"
end

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,5 @@
# 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" }

View File

@@ -12,8 +12,7 @@
[Project site](https://diasporafoundation.org) |
[Wiki](https://wiki.diasporafoundation.org) |
[Bugtracker](https://github.com/diaspora/diaspora/issues) |
[Discussions](https://www.loomio.org/groups/194) |
[Mailing lists](https://wiki.diasporafoundation.org/How_We_Communicate#Mailing_Lists) |
[Discussions and Support](https://discourse.diasporafoundation.org/) |
[License](/COPYRIGHT) |
[Authors](https://github.com/diaspora/diaspora/contributors)
@@ -31,9 +30,9 @@ Still haven't found an answer? Talk to us! Read [how we communicate](https://wik
## Contribute
To keep diaspora* growing and improving we need all help we can get. Whether you can contribute [code](https://wiki.diasporafoundation.org/Getting_started_with_contributing), [ideas](https://wiki.diasporafoundation.org/How_we_communicate#Loomio), [translations](https://wiki.diasporafoundation.org/Contribute_translations), [bug reports](https://wiki.diasporafoundation.org/How_to_report_a_bug) or simply extend the community as a [helpful user](https://wiki.diasporafoundation.org/Welcoming_committee) or [pod administrator](https://wiki.diasporafoundation.org/Installation), your help is welcome!
To keep diaspora\* growing and improving we need all help we can get. Whether you can contribute [code](https://wiki.diasporafoundation.org/Getting_started_with_contributing), [ideas](https://wiki.diasporafoundation.org/How_we_communicate#Discourse), [translations](https://wiki.diasporafoundation.org/Contribute_translations), [bug reports](https://wiki.diasporafoundation.org/How_to_report_a_bug) or simply extend the community as a [helpful user](https://wiki.diasporafoundation.org/Welcoming_committee) or [pod administrator](https://wiki.diasporafoundation.org/Installation), your help is welcome!
Everyone interacting in diasporas codebases, issue trackers, chat rooms, mailing lists, the wiki, and the Loomio group is expected to follow the diaspora\* [code of conduct](/CODE_OF_CONDUCT.md).
Everyone interacting in diasporas codebases, issue trackers, chat rooms, the wiki, and the Discourse is expected to follow the diaspora\* [code of conduct](/CODE_OF_CONDUCT.md).
## Security

View File

@@ -1,3 +1,5 @@
# frozen_string_literal: true
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.

View File

@@ -0,0 +1,12 @@
//= 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 rtl.css

View File

@@ -1,5 +1,5 @@
$(document).ready(function() {
$("#js-app-logo").error(function () {
$("#js-app-logo").on("error", function() {
$(this).attr("src", ImagePaths.get("user/default.png"));
});
});

View File

@@ -60,11 +60,6 @@ var app = {
return !!(window.gon.preloads && window.gon.preloads[prop]); //returning boolean variable so that parsePreloads, which cleans up properly is used instead
},
setPreload : function(prop, val) {
window.gon.preloads = window.gon.preloads || {};
window.gon.preloads[prop] = val;
},
parsePreload : function(prop) {
if(!app.hasPreload(prop)) { return; }
@@ -126,12 +121,6 @@ var app = {
app.flashMessages = new app.views.FlashMessages({el: $("#flash-container")});
},
/* mixpanel wrapper function */
instrument : function(type, name, object, callback) {
if(!window.mixpanel) { return; }
window.mixpanel[type](name, object, callback);
},
setupDisabledLinks: function() {
$("a.disabled").click(function(event) {
event.preventDefault();

View File

@@ -116,7 +116,7 @@ Handlebars.registerHelper("isCurrentProfilePage", function(id, diasporaHandle, o
});
Handlebars.registerHelper('aspectMembershipIndicator', function(contact,in_aspect) {
if(!app.aspect || !app.aspect.get('id')) return '<div class="aspect_membership_dropdown placeholder"></div>';
if(!app.aspect || !app.aspect.get('id')) return '<div class="aspect-membership-dropdown placeholder"></div>';
var html = "<i class=\"entypo-";
if( in_aspect === 'in_aspect' ) {

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 : [];
@@ -8,8 +13,7 @@
breaks: true,
html: true,
linkify: true,
typographer: true,
langPrefix: ""
typographer: true
});
var inlinePlugin = window.markdownitForInline;
@@ -45,7 +49,7 @@
"_" +
"\\-" +
"]+|<3",
// compare tag_strings in lib/diaspora/taggabe.rb
// compare tag_strings in lib/diaspora/taggable.rb
preceding: "^|\\s"
});
@@ -72,10 +76,6 @@
} catch (__) {}
}
try {
return hljs.highlightAuto(str).value;
} catch (__) {}
return "";
}
});
@@ -88,6 +88,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

@@ -30,7 +30,7 @@ app.models.Person = Backbone.Model.extend({
},
isBlocked: function() {
return (this.get('relationship') === 'blocked');
return (this.get("block") !== false);
},
block: function() {

View File

@@ -48,12 +48,6 @@ app.models.Post = Backbone.Model.extend(_.extend({}, app.models.formatDateMixin,
var body = this.get("text").trim()
, newlineIdx = body.indexOf("\n");
return (newlineIdx > 0 ) ? body.substr(newlineIdx+1, body.length) : "";
},
//returns a promise
preloadOrFetch : function(){
var action = app.hasPreload("post") ? this.set(app.parsePreload("post")) : this.fetch();
return $.when(action);
}
}));
// @license-end

View File

@@ -3,10 +3,6 @@
//require ../post
app.models.Post.Interactions = Backbone.Model.extend({
url : function(){
return this.post.url() + "/interactions";
},
initialize : function(options){
this.post = options.post;
this.comments = new app.collections.Comments(this.get("comments"), {post : this.post});
@@ -14,33 +10,16 @@ app.models.Post.Interactions = Backbone.Model.extend({
this.reshares = new app.collections.Reshares(this.get("reshares"), {post : this.post});
},
parse : function(resp){
this.comments.reset(resp.comments);
this.likes.reset(resp.likes);
this.reshares.reset(resp.reshares);
var comments = this.comments
, likes = this.likes
, reshares = this.reshares;
return {
comments : comments,
likes : likes,
reshares : reshares,
fetched : true
};
},
likesCount : function(){
return this.get("fetched") ? this.likes.models.length : this.get("likes_count");
return this.get("likes_count");
},
resharesCount : function(){
return this.get("fetched") ? this.reshares.models.length : this.get("reshares_count");
return this.get("reshares_count");
},
commentsCount : function(){
return this.get("fetched") ? this.comments.models.length : this.get("comments_count");
return this.get("comments_count");
},
userLike : function(){
@@ -76,8 +55,6 @@ app.models.Post.Interactions = Backbone.Model.extend({
app.flashMessages.handleAjaxError(response);
}
});
app.instrument("track", "Like");
},
unlike : function() {
@@ -87,8 +64,6 @@ app.models.Post.Interactions = Backbone.Model.extend({
self.set({"likes_count" : self.get("likes_count") - 1});
self.likes.trigger("change");
}});
app.instrument("track", "Unlike");
},
comment: function(text, options) {
@@ -104,8 +79,6 @@ app.models.Post.Interactions = Backbone.Model.extend({
self.trigger('change'); //updates after sync
if (options.success) { options.success(); }
});
app.instrument("track", "Comment");
},
reshare : function(){
@@ -126,8 +99,6 @@ app.models.Post.Interactions = Backbone.Model.extend({
.fail(function(response) {
app.flashMessages.handleAjaxError(response);
});
app.instrument("track", "Reshare");
},
userCanReshare : function(){

View File

@@ -13,8 +13,16 @@ app.models.Stream = Backbone.Collection.extend({
},
collectionOptions :function(){
var order = this.sortOrder();
return { comparator : function(item) { return -item[order](); } };
var order = this.sortOrder();
return {
comparator: function(item1, item2) {
if (item1[order]() < item2[order]()) { return 1; }
if (item1[order]() > item2[order]()) { return -1; }
if (item1.id < item2.id) { return 1; }
if (item1.id > item2.id) { return -1; }
return 0;
}
};
},
url : function(){

View File

@@ -9,7 +9,7 @@ app.pages.Contacts = Backbone.View.extend({
"click #chat_privilege_toggle" : "toggleChatPrivilege",
"click #change_aspect_name" : "showAspectNameForm",
"click .conversation_button": "showMessageModal",
"click #invitations-button": "showInvitationsModal"
"click .invitations-button": "showInvitationsModal"
},
initialize: function(opts) {
@@ -17,7 +17,7 @@ app.pages.Contacts = Backbone.View.extend({
this.chatToggle = $("#chat_privilege_toggle i");
this.stream = opts.stream;
this.stream.render();
$("#people_stream.contacts .header i").tooltip({"placement": "bottom"});
$("#people-stream.contacts .header i").tooltip({"placement": "bottom"});
$(document).on("ajax:success", "form.edit_aspect", this.updateAspectName);
app.events.on("aspect:create", function(){ window.location.reload() });
app.events.on("aspect_membership:create", this.addAspectMembership, this);
@@ -80,7 +80,10 @@ app.pages.Contacts = Backbone.View.extend({
showMessageModal: function(){
$("#conversationModal").on("modal:loaded", function() {
new app.views.ConversationsForm({prefill: gon.conversationPrefill});
var people = _.pluck(app.contacts.filter(function(contact) {
return contact.inAspect(app.aspect.get("id"));
}), "person");
new app.views.ConversationsForm({prefill: people});
});
app.helpers.showModal("#conversationModal");
},

View File

@@ -5,7 +5,7 @@ app.pages.GettingStarted = app.views.Base.extend({
templateName: false,
subviews: {
".aspect_membership_dropdown": "aspectMembershipView"
".aspect-membership-dropdown": "aspectMembershipView"
},
initialize: function(opts) {

View File

@@ -11,7 +11,7 @@ app.pages.Profile = app.views.Base.extend({
subviews: {
"#profile": "sidebarView",
".profile_header": "headerView",
"#main_stream": "streamView"
"#main-stream": "streamView"
},
tooltipSelector: ".profile_button .profile-header-icon, .sharing_message_container",

View File

@@ -11,9 +11,10 @@ app.pages.Settings = Backbone.View.extend({
new Diaspora.ProfilePhotoUploader();
this.viewAspectSelector = new app.views.PublisherAspectSelector({
el: $(".aspect_dropdown"),
el: $(".aspect-dropdown"),
form: $("#post-default-aspects")
});
$("#update_profile_form").areYouSure();
}
});
// @license-end

View File

@@ -3,24 +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() {
this.model = new app.models.Post({ id : gon.post.id });
this.model.preloadOrFetch().done(_.bind(this.initViews, this));
this.model.interactions.fetch(); //async, yo, might want to throttle this later.
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

@@ -9,7 +9,7 @@ app.Router = Backbone.Router.extend({
"commented(/)": "stream",
"community_spotlight(/)": "spotlight",
"contacts(/)": "contacts",
"conversations(/)(:id)(/)": "conversations",
"conversations(/)(:id)(?conversation_id=:conversation_id)(/)": "conversations",
"followed_tags(/)": "followed_tags",
"getting_started(/)": "gettingStarted",
"help(/)": "help",
@@ -93,8 +93,8 @@ app.Router = Backbone.Router.extend({
app.page = new app.pages.Contacts({stream: stream});
},
conversations: function(id) {
app.conversations = app.conversations || new app.views.ConversationsInbox();
conversations: function(id, conversationId) {
app.conversations = app.conversations || new app.views.ConversationsInbox(conversationId);
if (parseInt("" + id, 10)) {
app.conversations.renderConversation(id);
}
@@ -182,11 +182,11 @@ app.Router = Backbone.Router.extend({
},
singlePost: function(id) {
this.renderPage(function() { return new app.pages.SinglePostViewer({id: id}); });
this.renderPage(function() { return new app.pages.SinglePostViewer({id: id, el: $("#container")}); });
},
spotlight: function() {
$("#invitations-button").click(function() {
$(".invitations-button").click(function() {
app.helpers.showModal("#invitationsModal");
});
},
@@ -217,9 +217,10 @@ app.Router = Backbone.Router.extend({
app.shortcuts = app.shortcuts || new app.views.StreamShortcuts({el: $(document)});
if ($("#publisher").length !== 0) {
app.publisher = app.publisher || new app.views.Publisher({collection: app.stream.items});
app.page.setupAvatarFallback($(".main-stream-publisher"));
}
$("#main_stream").html(app.page.render().el);
$("#main-stream").html(app.page.render().el);
this._hideInactiveStreamLists();
},
@@ -228,7 +229,7 @@ app.Router = Backbone.Router.extend({
},
renderAspectMembershipDropdowns: function($context) {
$context.find(".aspect_membership_dropdown.placeholder").each(function() {
$context.find(".aspect-membership-dropdown.placeholder").each(function() {
var personId = $(this).data("personId");
var view = new app.views.AspectMembership({person: app.contacts.findWhere({"person_id": personId}).person});
$(this).html(view.render().$el);

View File

@@ -55,8 +55,7 @@ app.views.Base = Backbone.View.extend({
.html(this.template(presenter))
.attr("data-template", _.last(this.templateName.split("/")));
// add avatar fallback if it can't be loaded
this.$el.find(this.avatars.selector).error(this.avatars.fallback);
this.setupAvatarFallback(this.$el);
// add placeholder support for old browsers
this.$("input, textarea").placeholder();
@@ -132,19 +131,20 @@ app.views.Base = Backbone.View.extend({
destroyModel: function(evt) {
evt && evt.preventDefault();
var self = this;
var url = this.model.urlRoot + "/" + this.model.id;
if( confirm(_.result(this, "destroyConfirmMsg")) ) {
this.$el.addClass("deleting");
this.model.destroy({ url: url })
.done(function() {
self.remove();
})
.fail(function() {
self.$el.removeClass("deleting");
this.model.destroy({
url: url,
success: function() {
this.remove();
}.bind(this),
error: function() {
this.$el.removeClass("deleting");
app.flashMessages.error(Diaspora.I18n.t("failed_to_remove"));
});
}.bind(this)
});
}
},
@@ -153,6 +153,10 @@ app.views.Base = Backbone.View.extend({
$(this).attr("src", ImagePaths.get("user/default.png"));
},
selector: "img.avatar"
},
setupAvatarFallback: function(el) {
el.find(this.avatars.selector).on("error", this.avatars.fallback);
}
});

View File

@@ -9,7 +9,7 @@
*/
app.views.AspectMembership = app.views.Base.extend({
templateName: "aspect_membership_dropdown",
className: "btn-group aspect_dropdown aspect_membership_dropdown",
className: "btn-group aspect-dropdown aspect-membership-dropdown",
subviews: {
".newAspectContainer": "aspectCreateView"
@@ -124,7 +124,7 @@ app.views.AspectMembership = app.views.Base.extend({
// show an error flash msg
_displayError: function(model, resp) {
this._done();
this.dropdown.closest(".aspect_membership_dropdown").removeClass("open"); // close the dropdown
this.dropdown.closest(".aspect-membership-dropdown").removeClass("open"); // close the dropdown
app.flashMessages.handleAjaxError(resp);
},
@@ -144,7 +144,7 @@ app.views.AspectMembership = app.views.Base.extend({
this.render();
// we just removed the last aspect, inform the user with a flash message
// that he is no longer sharing with that person
// that they are no longer sharing with that person
if (this.$el.find("li.selected").length === 0) {
var msg = Diaspora.I18n.t("aspect_dropdown.stopped_sharing_with", { "name": this._name() });
stopSharing = true;

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

@@ -0,0 +1,10 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
//= require ./publisher/mention_view
app.views.CommentMention = app.views.PublisherMention.extend({
initialize: function(opts) {
opts.url = Routes.mentionablePost(opts.postId);
app.views.PublisherMention.prototype.initialize.call(this, opts);
}
});
// @license-end

View File

@@ -7,10 +7,10 @@ app.views.CommentStream = app.views.Base.extend({
className : "comment_stream",
events: {
"keydown .comment_box": "keyDownOnCommentBox",
"keydown .comment-box": "keyDownOnCommentBox",
"submit form": "createComment",
"focus .comment_box": "commentTextareaFocused",
"click .toggle_post_comments": "expandComments"
"click .toggle_post_comments": "expandComments",
"click form": "openForm"
},
initialize: function() {
@@ -21,12 +21,24 @@ app.views.CommentStream = app.views.Base.extend({
setupBindings: function() {
this.model.comments.bind("add", this.appendComment, this);
this.model.comments.bind("remove", this.removeComment, this);
$(document.body).click(this.onFormBlur.bind(this));
},
postRenderTemplate : function() {
this.model.comments.each(this.appendComment, this);
this.commentBox = this.$(".comment_box");
this.commentBox = this.$(".comment-box");
this.commentSubmitButton = this.$("input[name='commit']");
this.mentions = new app.views.CommentMention({el: this.$el, postId: this.model.get("id")});
this.mdEditor = new Diaspora.MarkdownEditor(this.$(".comment-box"), {
onPreview: function($mdInstance) {
var renderedText = app.helpers.textFormatter($mdInstance.getContent(), this.mentions.getMentionedPeople());
return "<div class='preview-content'>" + renderedText + "</div>";
}.bind(this),
onFocus: this.openForm.bind(this)
});
this.$("form").areYouSure();
},
presenter: function(){
@@ -52,11 +64,14 @@ app.views.CommentStream = app.views.Base.extend({
success: function() {
this.commentBox.val("");
this.enableCommentBox();
this.mdEditor.hidePreview();
this.closeForm();
autosize.update(this.commentBox);
}.bind(this),
error: function() {
this.enableCommentBox();
this.commentBox.focus();
this.mdEditor.hidePreview();
this.openForm();
}.bind(this)
});
},
@@ -72,7 +87,7 @@ app.views.CommentStream = app.views.Base.extend({
},
keyDownOnCommentBox: function(evt) {
if(evt.which === Keycodes.ENTER && evt.ctrlKey) {
if (evt.which === Keycodes.ENTER && (evt.metaKey || evt.ctrlKey)) {
this.$("form").submit();
return false;
}
@@ -105,7 +120,8 @@ app.views.CommentStream = app.views.Base.extend({
// on post ownership in the Comment view.
comment.set({parent : this.model.toJSON()});
var commentHtml = new this.CommentView({model: comment}).render().el;
var commentView = new this.CommentView({model: comment});
var commentHtml = commentView.render().el;
var commentBlocks = this.$(".comments div.comment.media");
this._moveInsertPoint(comment.get("created_at"), commentBlocks);
if (this._insertPoint >= commentBlocks.length) {
@@ -115,16 +131,13 @@ app.views.CommentStream = app.views.Base.extend({
} else {
commentBlocks.eq(this._insertPoint).before(commentHtml);
}
commentView.renderPluginWidgets();
},
removeComment: function(comment) {
this.$("#" + comment.get("guid")).closest(".comment.media").remove();
},
commentTextareaFocused: function(){
this.$("form").removeClass('hidden').addClass("open");
},
expandComments: function(evt){
this.$(".loading-comments").removeClass("hidden");
if(evt){ evt.preventDefault(); }
@@ -134,6 +147,37 @@ app.views.CommentStream = app.views.Base.extend({
this.$(".loading-comments").addClass("hidden");
}.bind(this)
});
},
openForm: function() {
this.$("form").addClass("open");
this.$(".md-editor").addClass("active");
},
closeForm: function() {
this.$("form").removeClass("open");
this.$(".md-editor").removeClass("active");
this.commentBox.blur();
autosize.update(this.commentBox);
},
isCloseAllowed: function() {
if (this.mdEditor === undefined) {
return true;
}
return !this.mdEditor.isPreviewMode() && this.mdEditor.userInputEmpty();
},
onFormBlur: function(evt) {
if (!this.isCloseAllowed()) {
return;
}
var $target = $(evt.target);
var isForm = $target.hasClass("new-comment") || $target.parents(".new-comment").length !== 0;
if (!isForm && !$target.hasClass("focus_comment_textarea")) {
this.closeForm();
}
}
});
// @license-end

View File

@@ -4,6 +4,7 @@
app.views.Comment = app.views.Content.extend({
templateName: "comment",
className : "comment media",
tooltipSelector: "time",
events : function() {
return _.extend({}, app.views.Content.prototype.events, {
@@ -20,7 +21,7 @@ app.views.Comment = app.views.Content.extend({
presenter : function() {
return _.extend(this.defaultPresenter(), {
canRemove: this.canRemove(),
text : app.helpers.textFormatter(this.model.get("text"))
text: app.helpers.textFormatter(this.model.get("text"), this.model.get("mentioned_people"))
});
},
@@ -39,6 +40,7 @@ app.views.Comment = app.views.Content.extend({
app.views.ExpandedComment = app.views.Comment.extend({
postRenderTemplate : function(){
this.bindMediaEmbedThumbClickEvent();
}
});
// @license-end

View File

@@ -18,7 +18,7 @@ app.views.ContactStream = Backbone.View.extend({
$("#paginate .loader").removeClass("hidden");
$.ajax(this._fetchUrl(), {
context: this
}).success(function(response) {
}).done(function(response) {
if (response.length === 0) {
this.onEmptyResponse();
} else {

View File

@@ -4,7 +4,7 @@ app.views.Contact = app.views.Base.extend({
templateName: 'contact',
subviews: {
".aspect_membership_dropdown": "AspectMembershipView"
".aspect-membership-dropdown": "AspectMembershipView"
},
events: {

View File

@@ -10,7 +10,6 @@ app.views.Content = app.views.Base.extend({
text : app.helpers.textFormatter(this.model.get("text"), this.model.get("mentioned_people")),
largePhoto : this.largePhoto(),
smallPhotos : this.smallPhotos(),
location: this.location(),
isReshare : this.model.get("post_type") === "Reshare"
});
},
@@ -18,15 +17,14 @@ app.views.Content = app.views.Base.extend({
largePhoto : function() {
var photos = this.model.get("photos");
if(!photos || photos.length === 0) { return }
if (!photos || photos.length === 0) { return false; }
return photos[0];
},
smallPhotos : function() {
var photos = this.model.get("photos");
if(!photos || photos.length < 2) { return }
photos.splice(0, 1); // remove first photo as it is already shown as largePhoto
return photos;
if (!photos || photos.length < 2) { return false; }
return photos.slice(1); // remove first photo as it is already shown as largePhoto
},
expandPost: function(evt) {
@@ -38,11 +36,6 @@ app.views.Content = app.views.Base.extend({
$(evt.currentTarget).hide();
},
location: function(){
var location = this.model.get("location")? this.model.get("location") : "";
return location;
},
collapseOversized : function() {
var collHeight = 200
, elem = this.$(".collapsible")
@@ -70,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
@@ -87,7 +102,7 @@ app.views.Content = app.views.Base.extend({
});
});
var photoAttachments = this.$(".photo_attachments");
var photoAttachments = this.$(".photo-attachments");
if(photoAttachments.length > 0) {
new app.views.Gallery({ el: photoAttachments });
}
@@ -100,7 +115,9 @@ app.views.StatusMessage = app.views.Content.extend({
app.views.ExpandedStatusMessage = app.views.StatusMessage.extend({
postRenderTemplate : function(){
var photoAttachments = this.$(".photo_attachments");
this.bindMediaEmbedThumbClickEvent();
var photoAttachments = this.$(".photo-attachments");
if(photoAttachments.length > 0) {
new app.views.Gallery({ el: photoAttachments });
}

View File

@@ -1,6 +1,6 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
app.views.ConversationsForm = Backbone.View.extend({
app.views.ConversationsForm = app.views.Base.extend({
el: ".conversations-form-container",
events: {
@@ -24,6 +24,8 @@ app.views.ConversationsForm = Backbone.View.extend({
remoteRoute: {url: "/contacts", extraParameters: "mutual=true"}
});
this.newConversationMdEditor = this.renderMarkdownEditor("#new-message-text");
this.bindTypeaheadEvents();
this.tagListElement.empty();
@@ -31,20 +33,32 @@ app.views.ConversationsForm = Backbone.View.extend({
this.prefill(opts.prefill);
}
this.$("form#new-conversation").on("ajax:success", this.conversationCreateSuccess);
this.$("form#new-conversation").on("ajax:success", this.conversationCreateSuccess.bind(this));
this.$("form#new-conversation").on("ajax:error", this.conversationCreateError);
},
renderMarkdownEditor: function(element) {
return new Diaspora.MarkdownEditor($(element), {
onPreview: Diaspora.MarkdownEditor.simplePreview
});
},
addRecipient: function(person) {
this.conversationRecipients.push(person);
this.updateContactIdsListInput();
/* eslint-disable camelcase */
this.tagListElement.append(HandlebarsTemplates.conversation_recipient_tag_tpl(person));
var personEl = $(HandlebarsTemplates.conversation_recipient_tag_tpl(person)).appendTo(this.tagListElement);
/* eslint-enable camelcase */
this.setupAvatarFallback(personEl);
},
prefill: function(handles) {
handles.forEach(this.addRecipient.bind(this));
prefill: function(people) {
people.forEach(function(person) {
this.addRecipient(_.extend({
avatar: person.get("profile").avatar.small,
handle: person.get("diaspora_id")
}, person.attributes));
}, this);
},
updateContactIdsListInput: function() {
@@ -65,7 +79,7 @@ app.views.ConversationsForm = Backbone.View.extend({
},
keyDown: function(evt) {
if (evt.which === Keycodes.ENTER && evt.ctrlKey) {
if (evt.which === Keycodes.ENTER && (evt.metaKey || evt.ctrlKey)) {
$(evt.target).parents("form").submit();
}
},
@@ -83,6 +97,7 @@ app.views.ConversationsForm = Backbone.View.extend({
},
conversationCreateSuccess: function(evt, data) {
this.newConversationMdEditor.hidePreview();
app._changeLocation(Routes.conversation(data.id));
},

View File

@@ -1,6 +1,6 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
app.views.ConversationsInbox = Backbone.View.extend({
app.views.ConversationsInbox = app.views.Base.extend({
el: "#conversations-container",
events: {
@@ -8,11 +8,21 @@ app.views.ConversationsInbox = Backbone.View.extend({
"click .new-conversation-btn": "displayNewConversation"
},
initialize: function() {
new app.views.ConversationsForm();
initialize: function(conversationId) {
this.conversationForm = new app.views.ConversationsForm();
// Creates markdown editor in case of displaying preloaded conversation
if (conversationId != null) {
this.renderMarkdownEditor();
}
this.setupConversation();
},
renderMarkdownEditor: function() {
this.conversationForm.renderMarkdownEditor("#conversation-show .conversation-message-text");
},
renderConversation: function(conversationId) {
var self = this;
$.ajax({
@@ -23,6 +33,8 @@ app.views.ConversationsInbox = Backbone.View.extend({
self.$el.find("#conversation-show").removeClass("hidden").html(data);
self.selectConversation(conversationId);
self.setupConversation();
self.renderMarkdownEditor();
autosize(self.$("#conversation-show textarea"));
}
});
},
@@ -46,6 +58,7 @@ app.views.ConversationsInbox = Backbone.View.extend({
setupConversation: function() {
app.helpers.timeago($(this.el));
$(".control-icons a").tooltip({placement: "bottom"});
this.setupAvatarFallback(this.$el);
var conv = $(".conversation-wrapper .stream-element.selected"),
cBadge = $("#conversations-link .badge");

View File

@@ -4,27 +4,29 @@ app.views.Help = app.views.StaticContentView.extend({
templateName : "help",
events : {
"click .faq-link" : "sectionClicked",
"click .faq-link-getting-help" : "gettingHelp",
"click .faq-link-sharing" : "sharing",
"click .faq-link-posts-and-posting" : "postsAndPosting",
"click .faq-link": "sectionClicked",
"click .faq-link-getting-help": "gettingHelp",
"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",
"click .faq-link-chat": "chat"
},
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' )) },
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' ))},
get_support_a_irc: { irc: this.linkHtml("https://wiki.diasporafoundation.org/How_We_Communicate#IRC", Diaspora.I18n.t( 'irc' ))},
get_support_a_faq: { faq: this.linkHtml("https://wiki.diasporafoundation.org/FAQ_for_users", Diaspora.I18n.t( 'faq' ))},
get_support_a_hashtag: { question: this.linkHtml("/tags/question", "#question")}
getting_started_a: {tutorial_series: this.linkHtml("http://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"))},
get_support_a_irc: {irc: this.linkHtml("https://wiki.diasporafoundation.org/How_We_Communicate#IRC", Diaspora.I18n.t("irc"))},
get_support_a_faq: {faq: this.linkHtml("https://wiki.diasporafoundation.org/FAQ_for_users", Diaspora.I18n.t("faq"))},
get_support_a_hashtag: {question: this.linkHtml("/tags/question", "#question")},
get_support_a_discourse: {discourse: this.linkHtml("https://discourse.diasporafoundation.org/c/support", "discussions & support")}
};
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' ))
@@ -53,10 +55,9 @@ app.views.Help = app.views.StaticContentView.extend({
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_private_profiles: Diaspora.I18n.t( 'private_profiles.title' ),
title_public_posts: Diaspora.I18n.t( 'public_posts.title' ),
title_public_profiles: Diaspora.I18n.t( 'public_profiles.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' ),

View File

@@ -51,6 +51,12 @@ app.views.InfScroll = app.views.Base.extend({
}
},
postRenderTemplate: function() {
if (this.postViews.length > 0) {
this.$(".no-posts-info").closest(".stream-element").remove();
}
},
showNoPostsInfo: function() {
if (this.postViews.length === 0) {
var noPostsInfo = new app.views.NoPostsInfo();

View File

@@ -1,6 +1,6 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
app.views.LocationStream = app.views.Content.extend({
app.views.LocationStream = app.views.Base.extend({
events: {
"click .near-from": "toggleMap"
},

View File

@@ -26,7 +26,6 @@ app.views.NotificationDropdown = app.views.Base.extend({
toggleDropdown: function(evt){
evt.stopPropagation();
if (!$("#notifications-link .entypo-bell:visible").length) { return true; }
evt.preventDefault();
if(this.dropdownShowing()){ this.hideDropdown(evt); }
else{ this.showDropdown(); }
@@ -96,7 +95,7 @@ app.views.NotificationDropdown = app.views.Base.extend({
afterNotificationChanges: function(node) {
node.find(".unread-toggle .entypo-eye").tooltip("destroy").tooltip();
node.find(this.avatars.selector).error(this.avatars.fallback);
this.setupAvatarFallback(node);
},
finishLoading: function() {

View File

@@ -15,7 +15,7 @@ app.views.Photos = app.views.InfScroll.extend({
},
postRenderTemplate: function(){
var photoAttachments = $("#main_stream > div");
var photoAttachments = $("#main-stream > div");
if(photoAttachments.length > 0) {
new app.views.Gallery({ el: photoAttachments });
}

View File

@@ -5,7 +5,7 @@ app.views.Poll = app.views.Base.extend({
events: {
"click .submit" : "clickSubmit",
"click .toggle_result" : "toggleResult"
"click .toggle-result": "toggleResult"
},
initialize: function() {
@@ -17,15 +17,22 @@ app.views.Poll = app.views.Base.extend({
var isReshare = (this.model.get('post_type') === 'Reshare');
var showForm = defaultPresenter.loggedIn &&
!isReshare &&
!this.model.get('already_participated_in_poll');
!this.model.get("poll_participation_answer_id");
var originalPostLink = isReshare && this.model.get('root') ?
'<a href="/posts/' + this.model.get('root').id + '" class="root_post_link">' + Diaspora.I18n.t('poll.original_post') + '</a>' :
'';
var answerGiven = this.model.get("poll_participation_answer_id");
if (defaultPresenter.poll && defaultPresenter.poll.poll_answers) {
defaultPresenter.poll.poll_answers.forEach(function(answer) {
_.extend(answer, {isCurrentUserVote: answerGiven ? answer.id === answerGiven : false});
});
}
return _.extend(defaultPresenter, {
show_form: showForm,
is_reshare: isReshare,
original_post_link: originalPostLink
originalPostLink: originalPostLink
});
},
@@ -48,7 +55,7 @@ app.views.Poll = app.views.Base.extend({
percent = Math.round(answer.vote_count / participation_count * 100);
}
var progressBar = _this.$(".poll_progress_bar[data-answerid="+answer.id+"]");
var progressBar = _this.$(".progress-bar[data-answerid=" + answer.id + "]");
_this.setProgressBarData(progressBar, percent);
});
@@ -61,8 +68,8 @@ app.views.Poll = app.views.Base.extend({
pollButtons: function() {
if(!this.poll || !this.poll.post_id) {
this.$('.submit').attr('disabled', true);
this.$('.toggle_result').attr('disabled', true);
this.$(".submit").attr("disabled", true);
this.$(".toggle-result").attr("disabled", true);
}
},
@@ -76,14 +83,14 @@ app.views.Poll = app.views.Base.extend({
}
this.toggleElements();
var toggle_result = this.$('.toggle_result');
var toggleResult = this.$(".toggle-result");
if(!this.toggleMode) {
toggle_result.html(Diaspora.I18n.t("poll.close_result"));
toggleResult.html(Diaspora.I18n.t("poll.close_result"));
this.toggleMode = 1;
}
else {
toggle_result.html(Diaspora.I18n.t("poll.show_result"));
toggleResult.html(Diaspora.I18n.t("poll.show_result"));
this.toggleMode = 0;
}
},

View File

@@ -76,6 +76,11 @@ app.views.PostControls = app.views.Base.extend({
$.post(Routes.postParticipation(this.model.get("id")), {_method: "delete"}, function() {
this.model.set({participation: false});
}.bind(this));
},
destroyModel: function(evt) {
if (evt) { evt.preventDefault(); }
this.post.destroyModel();
}
});
// @license-end

View File

@@ -5,7 +5,6 @@ app.views.PreviewPost = app.views.Post.extend({
className: "stream-element loaded",
subviews: {
".feedback": "feedbackView",
".post-content": "postContentView",
".oembed": "oEmbedView",
".opengraph": "openGraphView",
@@ -13,12 +12,6 @@ app.views.PreviewPost = app.views.Post.extend({
".status-message-location": "postLocationStreamView"
},
tooltipSelector: [
".timeago",
".delete",
".permalink"
].join(", "),
initialize: function() {
this.model.set("preview", true);
this.oEmbedView = new app.views.OEmbed({model: this.model});
@@ -26,10 +19,6 @@ app.views.PreviewPost = app.views.Post.extend({
this.pollView = new app.views.Poll({model: this.model});
},
feedbackView: function() {
return new app.views.Feedback({model: this.model});
},
postContentView: function() {
return new app.views.StatusMessage({model: this.model});
},

View File

@@ -4,7 +4,7 @@ app.views.ProfileHeader = app.views.Base.extend({
templateName: 'profile_header',
subviews: {
".aspect_membership_dropdown": "aspectMembershipView"
".aspect-membership-dropdown": "aspectMembershipView"
},
events: {
@@ -69,8 +69,8 @@ app.views.ProfileHeader = app.views.Base.extend({
$("#mentionModal").modal("hide");
app.publisher.clear();
app.publisher.remove();
location.reload();
});
app.flashMessages.success(Diaspora.I18n.t("publisher.mention_success", {names: this.model.get("name")}));
}.bind(this));
},
mentionModalHidden: function() {
@@ -81,8 +81,8 @@ app.views.ProfileHeader = app.views.Base.extend({
showMessageModal: function(){
$("#conversationModal").on("modal:loaded", function() {
new app.views.ConversationsForm({prefill: gon.conversationPrefill});
});
new app.views.ConversationsForm({prefill: [this.model]});
}.bind(this));
app.helpers.showModal("#conversationModal");
}
});

View File

@@ -2,29 +2,20 @@
app.views.PublisherMention = app.views.SearchBase.extend({
triggerChar: "@",
invisibleChar: "\u200B", // zero width space
mentionRegex: /@([^@\s]+)$/,
templates: {
mentionItemSyntax: _.template("@{<%= name %> ; <%= handle %>}"),
mentionItemHighlight: _.template("<strong><span><%= name %></span></strong>")
},
mentionSyntaxTemplate: function(person) { return "@{" + person.handle + "}"; },
events: {
"keydown #status_message_fake_text": "onInputBoxKeyDown",
"input #status_message_fake_text": "onInputBoxInput",
"click #status_message_fake_text": "onInputBoxClick",
"blur #status_message_fake_text": "onInputBoxBlur"
"keydown .mention-textarea": "onInputBoxKeyDown",
"input .mention-textarea": "updateTypeaheadInput",
"click .mention-textarea": "onInputBoxClick",
"blur .mention-textarea": "onInputBoxBlur"
},
initialize: function() {
initialize: function(opts) {
this.mentionedPeople = [];
// contains the 'fake text' displayed to the user
// also has a data-messageText attribute with the original text
this.inputBox = this.$("#status_message_fake_text");
// contains the mentions displayed to the user
this.mentionsBox = this.$(".mentions-box");
var url = (opts && opts.url) || "/contacts";
this.inputBox = this.$(".mention-textarea");
this.typeaheadInput = this.$(".typeahead-mention-box");
this.bindTypeaheadEvents();
@@ -32,7 +23,7 @@ app.views.PublisherMention = app.views.SearchBase.extend({
typeaheadInput: this.typeaheadInput,
customSearch: true,
autoselect: true,
remoteRoute: {url: "/contacts"}
remoteRoute: {url: url}
});
},
@@ -55,8 +46,8 @@ app.views.PublisherMention = app.views.SearchBase.extend({
cleanMentionedPeople: function() {
var inputText = this.inputBox.val();
this.mentionedPeople = this.mentionedPeople.filter(function(person) {
return person.name && inputText.indexOf(person.name) > -1;
});
return person.handle && inputText.indexOf(this.mentionSyntaxTemplate(person)) > -1;
}.bind(this));
this.ignoreDiasporaIds = this.mentionedPeople.map(function(person) { return person.handle; });
},
@@ -70,41 +61,16 @@ app.views.PublisherMention = app.views.SearchBase.extend({
this.addPersonToMentions(person);
this.closeSuggestions();
messageText = messageText.substring(0, triggerCharPosition) +
this.invisibleChar + person.name + messageText.substring(caretPosition);
var mentionText = this.mentionSyntaxTemplate(person);
messageText = messageText.substring(0, triggerCharPosition) + mentionText + messageText.substring(caretPosition);
this.inputBox.val(messageText);
this.updateMessageTexts();
this.inputBox.focus();
var newCaretPosition = triggerCharPosition + person.name.length + 1;
var newCaretPosition = triggerCharPosition + mentionText.length;
this.inputBox[0].setSelectionRange(newCaretPosition, newCaretPosition);
},
/**
* Replaces every combination of this.invisibleChar + mention.name by the
* correct syntax for both hidden text and visible one.
*
* For instance, the text "Hello \u200Buser1" will be tranformed to
* "Hello @{user1 ; user1@pod.tld}" in the hidden element and
* "Hello <strong><span>user1</span></strong>" in the element visible to the user.
*/
updateMessageTexts: function() {
var fakeMessageText = this.inputBox.val(),
mentionBoxText = _.escape(fakeMessageText),
messageText = fakeMessageText;
this.mentionedPeople.forEach(function(person) {
var mentionName = this.invisibleChar + person.name;
messageText = messageText.replace(mentionName, this.templates.mentionItemSyntax(person));
var textHighlight = this.templates.mentionItemHighlight({name: _.escape(person.name)});
mentionBoxText = mentionBoxText.replace(mentionName, textHighlight);
}, this);
this.inputBox.data("messageText", messageText);
this.mentionsBox.find(".mentions").html(mentionBoxText);
},
updateTypeaheadInput: function() {
var messageText = this.inputBox.val();
var caretPosition = this.inputBox[0].selectionStart;
@@ -115,6 +81,8 @@ app.views.PublisherMention = app.views.SearchBase.extend({
return;
}
this.cleanMentionedPeople();
// result[1] is the string between the last '@' and the current caret position
this.typeaheadInput.typeahead("val", result[1]);
this.typeaheadInput.typeahead("open");
@@ -128,12 +96,11 @@ app.views.PublisherMention = app.views.SearchBase.extend({
prefillMention: function(persons) {
persons.forEach(function(person) {
this.addPersonToMentions(person);
var text = this.invisibleChar + person.name;
var text = this.mentionSyntaxTemplate(person);
if(this.inputBox.val().length !== 0) {
text = this.inputBox.val() + " " + text;
}
this.inputBox.val(text);
this.updateMessageTexts();
}, this);
},
@@ -154,15 +121,6 @@ app.views.PublisherMention = app.views.SearchBase.extend({
this.typeaheadInput.trigger($.Event("keydown", {keyCode: e.keyCode, which: e.which}));
},
/**
* Listens for user input and opens results dropdown when input contains the trigger char
*/
onInputBoxInput: function() {
this.cleanMentionedPeople();
this.updateMessageTexts();
this.updateTypeaheadInput();
},
onInputBoxKeyDown: function(e) {
// This also matches HOME/END on OSX which is CMD+LEFT, CMD+RIGHT
if(e.which === Keycodes.LEFT || e.which === Keycodes.RIGHT ||
@@ -205,7 +163,7 @@ app.views.PublisherMention = app.views.SearchBase.extend({
reset: function() {
this.inputBox.val("");
this.onInputBoxInput();
this.updateTypeaheadInput();
},
closeSuggestions: function() {
@@ -217,7 +175,8 @@ app.views.PublisherMention = app.views.SearchBase.extend({
return this.$(".tt-menu").is(":visible");
},
getTextForSubmit: function() {
return this.mentionedPeople.length ? this.inputBox.data("messageText") : this.inputBox.val();
getMentionedPeople: function() {
this.cleanMentionedPeople();
return this.mentionedPeople;
}
});

View File

@@ -5,7 +5,7 @@
// progress. Attaches previews of finished uploads to the publisher.
app.views.PublisherUploader = Backbone.View.extend({
allowedExtensions: ["jpg", "jpeg", "png", "gif", "tif", "tiff"],
allowedExtensions: ["jpg", "jpeg", "png", "gif"],
sizeLimit: 4194304, // bytes
initialize: function(opts) {
@@ -14,6 +14,9 @@ app.views.PublisherUploader = Backbone.View.extend({
element: this.el,
button: this.el,
text: {
fileInputTitle: Diaspora.I18n.t("photo_uploader.upload_photos")
},
request: {
endpoint: Routes.photos(),
params: {
@@ -149,7 +152,7 @@ app.views.PublisherUploader = Backbone.View.extend({
dataType: "json",
type: "DELETE",
success: function() {
$.when(photo.fadeOut(400)).then(function(){
photo.fadeOut(400, function() {
photo.remove();
if( self.publisher.$(".publisher_photo").length === 0 ) {

View File

@@ -18,11 +18,11 @@ app.views.Publisher = Backbone.View.extend({
el : "#publisher",
events : {
"keydown #status_message_fake_text" : "keyDown",
"keydown #status_message_text": "keyDown",
"focus textarea" : "open",
"submit form" : "createStatusMessage",
"click #submit" : "createStatusMessage",
"textchange #status_message_fake_text": "handleTextchange",
"textchange #status_message_text": "checkSubmitAvailability",
"click #locator" : "showLocation",
"click #poll_creator" : "togglePollCreator",
"click #hide_location" : "destroyLocation",
@@ -35,24 +35,15 @@ app.views.Publisher = Backbone.View.extend({
this.disabled = false;
// init shortcut references to the various elements
this.inputEl = this.$("#status_message_fake_text");
this.hiddenInputEl = this.$("#status_message_text");
this.wrapperEl = this.$("#publisher_textarea_wrapper");
this.inputEl = this.$("#status_message_text");
this.wrapperEl = this.$("#publisher-textarea-wrapper");
this.submitEl = this.$("input[type=submit], button#submit");
this.photozoneEl = this.$("#photodropzone");
// if there is data in the publisher we ask for a confirmation
// before the user is able to leave the page
$(window).on("beforeunload", _.bind(this._beforeUnload, this));
$(window).unload(this.clear.bind(this));
// sync textarea content
if( this.hiddenInputEl.val() === "" ) {
this.hiddenInputEl.val( this.inputEl.val() );
}
if( this.inputEl.val() === "" ) {
this.inputEl.val( this.hiddenInputEl.val() );
}
$(window).on("unload", this.clear.bind(this));
// hide close and preview buttons and manage services link
// in case publisher is standalone
@@ -96,7 +87,7 @@ app.views.Publisher = Backbone.View.extend({
},
initSubviews: function() {
this.mention = new app.views.PublisherMention({ el: this.$("#publisher_textarea_wrapper") });
this.mention = new app.views.PublisherMention({ el: this.$("#publisher-textarea-wrapper") });
if(this.prefillMention) {
this.mention.prefillMention([this.prefillMention]);
}
@@ -110,14 +101,14 @@ app.views.Publisher = Backbone.View.extend({
});
this.viewAspectSelector = new app.views.PublisherAspectSelector({
el: this.$(".public_toggle .aspect_dropdown"),
el: this.$(".public_toggle .aspect-dropdown"),
form: form
});
this.viewGettingStarted = new app.views.PublisherGettingStarted({
firstMessageEl: this.inputEl,
visibilityEl: this.$(".public_toggle .aspect_dropdown > .dropdown-toggle"),
streamEl: $("#main_stream")
visibilityEl: this.$(".public_toggle .aspect-dropdown > .dropdown-toggle"),
streamEl: $("#main-stream")
});
this.viewUploader = new app.views.PublisherUploader({
@@ -138,7 +129,7 @@ app.views.Publisher = Backbone.View.extend({
},
onPostPreview: function() {
var photoAttachments = self.wrapperEl.find(".photo_attachments");
var photoAttachments = self.wrapperEl.find(".photo-attachments");
if (photoAttachments.length > 0) {
new app.views.Gallery({el: photoAttachments});
}
@@ -163,7 +154,7 @@ app.views.Publisher = Backbone.View.extend({
this.viewPollCreator.render();
if (this.prefillMention) {
this.handleTextchange();
this.checkSubmitAvailability();
}
},
@@ -175,12 +166,11 @@ app.views.Publisher = Backbone.View.extend({
// inject content into the publisher textarea
setText: function(txt) {
this.inputEl.val(txt);
this.hiddenInputEl.val(txt);
this.prefillText = txt;
this.inputEl.trigger("input");
autosize.update(this.inputEl);
this.handleTextchange();
this.checkSubmitAvailability();
},
// show the "getting started" popups around the publisher
@@ -188,6 +178,9 @@ app.views.Publisher = Backbone.View.extend({
if (gon.preloads.getting_started) {
this.open();
this.viewGettingStarted.show();
if (gon.preloads.mentioned_person) {
this.mention.addPersonToMentions(gon.preloads.mentioned_person);
}
}
},
@@ -202,9 +195,6 @@ app.views.Publisher = Backbone.View.extend({
// empty poll answer and failing validation.
this.viewPollCreator.removeLastAnswer();
//add missing mentions at end of post:
this.handleTextchange();
var serializedForm = $(evt.target).closest("form").serializeObject();
// disable input while posting, must be after the form is serialized
this.setInputEnabled(false);
@@ -255,7 +245,7 @@ app.views.Publisher = Backbone.View.extend({
self.setButtonsEnabled(true);
self.setInputEnabled(true);
self.wrapperEl.removeClass("submitting");
self.handleTextchange();
self.checkSubmitAvailability();
autosize.update(self.inputEl);
}
});
@@ -330,13 +320,8 @@ app.views.Publisher = Backbone.View.extend({
},
createPostPreview: function() {
//add missing mentions at end of post:
this.handleTextchange();
var serializedForm = $("#new_status_message").serializeObject();
var text = this.mention.getTextForSubmit();
var photos = this.getUploadedPhotos();
var mentionedPeople = this.mention.mentionedPeople;
var poll = this.getPollData(serializedForm);
var locationCoords = serializedForm["location[coords]"];
if(!locationCoords || locationCoords === "") {
@@ -352,12 +337,12 @@ app.views.Publisher = Backbone.View.extend({
var previewMessage = {
"id": 0,
"text": text,
"text": serializedForm["status_message[text]"],
"public": serializedForm["aspect_ids[]"] === "public",
"created_at": new Date().toISOString(),
"interacted_at": new Date().toISOString(),
"author": app.currentUser ? app.currentUser.attributes : {},
"mentioned_people": mentionedPeople,
"mentioned_people": this.mention.getMentionedPeople(),
"photos": photos,
"title": serializedForm["status_message[text]"],
"location": location,
@@ -370,7 +355,7 @@ app.views.Publisher = Backbone.View.extend({
},
keyDown : function(evt) {
if(evt.which === Keycodes.ENTER && evt.ctrlKey) {
if (evt.which === Keycodes.ENTER && (evt.metaKey || evt.ctrlKey)) {
this.$("form").submit();
this.open();
return false;
@@ -381,11 +366,10 @@ app.views.Publisher = Backbone.View.extend({
// remove mentions
this.mention.reset();
// clear text(s)
// clear text
this.inputEl.val("");
this.hiddenInputEl.val("");
this.inputEl.trigger("keyup")
.trigger("keydown");
.trigger("keydown");
autosize.update(this.inputEl);
// remove photos
@@ -421,14 +405,13 @@ app.views.Publisher = Backbone.View.extend({
// force textchange plugin to update lastValue
this.inputEl.data("lastValue", "");
this.hiddenInputEl.data("lastValue", "");
return this;
},
tryClose : function(){
// if it is not submittable, close it.
if( !this._submittable() ){
// if it is not submittable and not in preview mode, close it.
if (!this._submittable() && !this.markdownEditor.isPreviewMode()) {
this.close();
}
},
@@ -472,8 +455,7 @@ app.views.Publisher = Backbone.View.extend({
setEnabled: function(bool) {
this.setInputEnabled(bool);
this.disabled = !bool;
this.handleTextchange();
this.checkSubmitAvailability();
},
setButtonsEnabled: function(bool) {
@@ -487,10 +469,8 @@ app.views.Publisher = Backbone.View.extend({
setInputEnabled: function(bool) {
if (bool) {
this.inputEl.removeAttr("disabled");
this.hiddenInputEl.removeAttr("disabled");
} else {
this.inputEl.prop("disabled", true);
this.hiddenInputEl.prop("disabled", true);
}
},
@@ -503,11 +483,6 @@ app.views.Publisher = Backbone.View.extend({
return (!onlyWhitespaces || isPhotoAttached) && isValidPoll && !this.disabled;
},
handleTextchange: function() {
this.checkSubmitAvailability();
this.hiddenInputEl.val(this.mention.getTextForSubmit());
},
_beforeUnload: function(e) {
if(this._submittable() && this.inputEl.val() !== this.prefillText){
var confirmationMessage = Diaspora.I18n.t("confirm_unload");

View File

@@ -7,6 +7,7 @@ app.views.SearchBase = app.views.Base.extend({
if(options.customSearch) { this.setupCustomSearch(); }
this.setupTypeahead();
if(options.autoselect) { this.setupAutoselect(); }
this.setupTypeaheadAvatarFallback();
},
bloodhoundTokenizer: function(str) {
@@ -110,6 +111,12 @@ app.views.SearchBase = app.views.Base.extend({
});
},
setupTypeaheadAvatarFallback: function() {
this.typeaheadInput.on("typeahead:render", function() {
this.setupAvatarFallback(this.$el);
}.bind(this));
},
ignorePersonForSuggestions: function(person) {
if(person.handle) { this.ignoreDiasporaIds.push(person.handle); }
}

View File

@@ -26,8 +26,8 @@ app.views.SinglePostActions = app.views.Feedback.extend({
},
focusComment: function() {
$('.comment_stream .comment_box').focus();
$('html,body').animate({scrollTop: $('.comment_stream .comment_box').offset().top - ($('.comment_stream .comment_box').height() + 20)});
$('.comment_stream .comment-box').focus();
$('html,body').animate({scrollTop: $('.comment_stream .comment-box').offset().top - ($('.comment_stream .comment-box').height() + 20)});
return false;
},

View File

@@ -7,7 +7,9 @@ app.views.SinglePostCommentStream = app.views.CommentStream.extend({
this.CommentView = app.views.ExpandedComment;
$(window).on('hashchange',this.highlightPermalinkComment);
this.setupBindings();
this.model.comments.on("reset", this.render, this);
this.model.comments.fetch({success: function() {
setTimeout(this.highlightPermalinkComment, 0);
}.bind(this)});
},
highlightPermalinkComment: function() {
@@ -17,14 +19,13 @@ app.views.SinglePostCommentStream = app.views.CommentStream.extend({
$(".highlighted").removeClass("highlighted");
element.addClass("highlighted");
var pos = element.offset().top - headerSize;
window.scroll(0, pos);
$("html,body").animate({scrollTop: pos});
}
},
postRenderTemplate: function() {
app.views.CommentStream.prototype.postRenderTemplate.apply(this);
this.$(".new-comment-form-wrapper").removeClass("hidden");
_.defer(this.highlightPermalinkComment);
},
presenter: function(){

View File

@@ -4,8 +4,15 @@ app.views.SinglePostInteractionCounts = app.views.Base.extend({
templateName: "single-post-viewer/single-post-interaction-counts",
tooltipSelector: ".avatar.micro",
events: {
"click #show-all-likes": "showAllLikes",
"click #show-all-reshares": "showAllReshares"
},
initialize: function() {
this.model.interactions.on("change", this.render, this);
this.model.interactions.likes.on("change", this.render, this);
this.model.interactions.reshares.on("change", this.render, this);
},
presenter: function() {
@@ -15,8 +22,28 @@ app.views.SinglePostInteractionCounts = app.views.Base.extend({
reshares: interactions.reshares.toJSON(),
commentsCount: interactions.commentsCount(),
likesCount: interactions.likesCount(),
resharesCount: interactions.resharesCount()
resharesCount: interactions.resharesCount(),
showMoreLikes: interactions.likes.length < interactions.likesCount(),
showMoreReshares: interactions.reshares.length < interactions.resharesCount()
};
},
_showAll: function(interactionType, models) {
this.$("#show-all-" + interactionType).addClass("hidden");
this.$("#" + interactionType + " .loader").removeClass("hidden");
models.fetch({success: function() {
models.trigger("change");
}});
},
showAllLikes: function(evt) {
evt.preventDefault();
this._showAll("likes", this.model.interactions.likes);
},
showAllReshares: function(evt) {
evt.preventDefault();
this._showAll("reshares", this.model.interactions.reshares);
}
});
// @license-end

View File

@@ -28,10 +28,11 @@ app.views.StreamPost = app.views.Post.extend({
".permalink"].join(", "),
initialize : function(){
var personId = this.model.get("author").id;
app.events.on("person:block:"+personId, this.remove, this);
this.model.on("remove", this.remove, this);
// If we are on a user page, we don't want to remove posts on block
if (!app.page.model.has("profile")) {
var personId = this.model.get("author").id;
app.events.on("person:block:" + personId, this.remove, this);
}
//subviews
this.commentStreamView = new app.views.CommentStream({model : this.model});
this.oEmbedView = new app.views.OEmbed({model : this.model});
@@ -87,7 +88,7 @@ app.views.StreamPost = app.views.Post.extend({
focusCommentTextarea: function(evt){
evt.preventDefault();
this.$(".new-comment-form-wrapper").removeClass("hidden");
this.$(".comment_box").focus();
this.$(".comment-box").focus();
return this;
}

View File

@@ -28,6 +28,12 @@ app.views.Stream = app.views.InfScroll.extend({
var streamSelection = $("#stream_selection");
streamSelection.find("[data-stream]").removeClass("selected");
streamSelection.find("[data-stream='" + activeStream + "']").addClass("selected");
var activityContainer = streamSelection.find(".my-activity");
activityContainer.removeClass("activity-stream-selected");
if (activeStream === "activity" || activeStream === "liked" || activeStream === "commented") {
activityContainer.addClass("activity-stream-selected");
}
},
initInvitationModal : function() {

View File

@@ -1,12 +1,12 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
app.views.Tags = Backbone.View.extend({
app.views.Tags = app.views.Base.extend({
initialize: function(opts) {
if(app.publisher) {
app.publisher.setText("#"+ opts.hashtagName + " ");
}
// add avatar fallback if it can't be loaded
$(app.views.Base.prototype.avatars.selector).error(app.views.Base.prototype.avatars.fallback);
this.setupAvatarFallback($("#tags_show"));
}
});
// @license-end

View File

@@ -9,7 +9,7 @@ var List = {
},
handleSearchRefresh: function( data ) {
var streamEl = $("#people_stream.stream");
var streamEl = $("#people-stream.stream");
var string = data.search_html || $("<p>", {
text : Diaspora.I18n.t("people.not_found")
});
@@ -18,7 +18,7 @@ var List = {
if (data.contacts) {
var contacts = new app.collections.Contacts(data.contacts);
$(".aspect_membership_dropdown.placeholder").each(function() {
$(".aspect-membership-dropdown.placeholder").each(function() {
var personId = $(this).data("personId");
var view = new app.views.AspectMembership({person: contacts.findWhere({"person_id": personId}).person});
$(this).html(view.render().$el);

View File

@@ -9,7 +9,8 @@ Diaspora.MarkdownEditor.prototype = {
this.options = {
resize: "none",
onHidePreview: $.noop,
onPostPreview: $.noop
onPostPreview: $.noop,
onChange: function(e) { autosize.update(e.$textarea); }
};
$.extend(this.options, opts);
@@ -65,7 +66,7 @@ Diaspora.MarkdownEditor.prototype = {
var tabElement = $("<ul class='nav nav-tabs btn-group write-preview-tabs'></ul>");
var writeTab = $("<li class='active full-height' role='presentation'></li>");
this.writeLink = $("<a class='full-height md-write-tab' href='#'></a>")
this.writeLink = $("<a class='full-height md-write-tab' href='#' data-target=' '></a>")
.attr("title", Diaspora.I18n.t("publisher.markdown_editor.tooltips.write"));
this.writeLink.append($("<i class='visible-sm visible-xs visible-md diaspora-custom-compose'></i>"));
@@ -80,7 +81,7 @@ Diaspora.MarkdownEditor.prototype = {
writeTab.append(this.writeLink);
var previewTab = $("<li class='full-height' role='presentation'></li>");
this.previewLink = $("<a class='full-height md-preview-tab' href='#'></a>")
this.previewLink = $("<a class='full-height md-preview-tab' href='#' data-target=' '></a>")
.attr("title", Diaspora.I18n.t("publisher.markdown_editor.tooltips.preview"));
this.previewLink.append($("<i class='visible-sm visible-xs visible-md entypo-search'>"));
@@ -130,6 +131,14 @@ Diaspora.MarkdownEditor.prototype = {
}
},
isPreviewMode: function() {
return this.instance !== undefined && this.instance.$editor.find(".md-preview").length > 0;
},
userInputEmpty: function() {
return this.instance === undefined || this.instance.getContent().length === 0;
},
localize: function() {
var locale = Diaspora.I18n.language;
@@ -160,3 +169,7 @@ Diaspora.MarkdownEditor.prototype = {
return locale;
}
};
Diaspora.MarkdownEditor.simplePreview = function($mdInstance) {
return "<div class='preview-content'>" + app.helpers.textFormatter($mdInstance.getContent()) + "</div>";
};

View File

@@ -78,6 +78,10 @@ Diaspora.ProfilePhotoUploader.prototype = {
alert(errorReason);
}
}
},
text: {
fileInputTitle: ""
}
});
}

View File

@@ -1,6 +0,0 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
document.createElement('header');
document.createElement('footer');
// @license-end

View File

@@ -1,4 +1,4 @@
//= require jquery2
//= require jquery3
//= require handlebars.runtime
//= require templates
//= require main

View File

@@ -1,5 +1,5 @@
//= require emojione
//= require favico.js
//= require favico.js/favico
//= require jquery.ui/ui/resizable
//= require jquery.ui/ui/draggable

View File

@@ -9,13 +9,11 @@
//= require autosize
//= require charcount
//= require jquery-placeholder
//= require rails-timeago
//= require jquery.events.input
//= require jquery.infinitescroll-custom
//= require jquery-ui/core
//= require jquery-ui/widget
//= require jquery-ui/mouse
//= require jquery-ui/sortable
//= require jquery.timeago
//= require jquery.ui/ui/core
//= require jquery.ui/ui/widget
//= require jquery.ui/ui/mouse
//= require jquery.ui/ui/sortable
//= require keycodes
//= require jquery.autoSuggest.custom
//= require fine-uploader/fine-uploader.core
@@ -28,6 +26,7 @@
//= 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
@@ -43,5 +42,6 @@
//= require blueimp-gallery/blueimp-gallery-indicator
//= require leaflet
//= require api/authorization_page
// = require bootstrap-markdown/bootstrap-markdown
// = require helpers/markdown_editor
//= require bootstrap-markdown/bootstrap-markdown
//= require helpers/markdown_editor
//= require jquery.are-you-sure

View File

@@ -6,16 +6,21 @@ $(document).ready(function() {
return params.content;
}
var content = params.title + " - " + params.url;
if (params.notes.length > 0) {
content += " - " + params.notes;
var separator = "\n\n";
var contents = "### " + params.title + separator;
if (params.notes) {
var notes = params.notes.toString().replace(/(?:\r\n|\r|\n)/g, "\n> ");
contents += "> " + notes + separator;
}
return content;
contents += params.url;
return contents;
}
var content = publisherContent(gon.preloads.bookmarklet);
if (content.length > 0) {
$("#status_message_text").val(content);
var textarea = $("#status_message_text");
textarea.val(content);
autosize.update(textarea);
}
});
// @license-end

View File

@@ -1,9 +1,9 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
/* Copyright (c) 2010-2011, Diaspora Inc. This file is
* licensed under the Affero General Public License version 3 or later. See
* the COPYRIGHT file.
*/
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
//= require jquery-textchange
//= require charcount
//= require js-routes
@@ -11,13 +11,15 @@
//= require keycodes
//= require jquery.autoSuggest.custom
//= require fine-uploader/fine-uploader.core
//= require rails-timeago
//= require jquery.timeago
//= require underscore
//= require bootstrap
//= require diaspora
//= require helpers/i18n
//= require helpers/profile_photo_uploader
//= require helpers/tags_autocomplete
//= require bootstrap-markdown/bootstrap-markdown
//= require helpers/markdown_editor
//= require widgets/timeago
//= require mobile/mobile_application
//= require mobile/mobile_file_uploader

View File

@@ -11,6 +11,8 @@
initialize: function() {
var self = this;
new Diaspora.MarkdownEditor(".comment-box");
this.stream().on("tap click", "a.show-comments", function(evt){
evt.preventDefault();
self.toggleComments($(this));
@@ -35,13 +37,13 @@
self.scrollToOffset(commentContainer);
});
this.stream().on("submit", ".new_comment", this.submitComment);
this.stream().on("submit", ".new-comment", this.submitComment);
},
submitComment: function(evt){
evt.preventDefault();
var form = $(this);
var commentBox = form.find(".comment_box");
var commentBox = form.find(".comment-box");
var commentText = $.trim(commentBox.val());
if(!commentText){
commentBox.focus();
@@ -167,7 +169,7 @@
showCommentBox: function(link){
var bottomBar = link.closest(".bottom-bar").first();
var textArea = bottomBar.find("textarea.comment_box").first()[0];
var textArea = bottomBar.find("textarea.comment-box").first()[0];
bottomBar.find(".add-comment-switcher").removeClass("hidden");
autosize(textArea);
},
@@ -201,7 +203,7 @@
increaseReactionCount: function(bottomBar) {
var toggleReactionsLink = bottomBar.find(".show-comments").first();
var count = toggleReactionsLink.text().match(/.*(\d+).*/);
count = parseInt(count, 10);
count = parseInt(count, 10) || 0;
var text = Diaspora.I18n.t("stream.comments", {count: count + 1});
// No previous comment

View File

@@ -1,6 +1,7 @@
(function() {
Diaspora.Mobile.Conversations = {
initialize: function() {
new Diaspora.MarkdownEditor(".conversation-message-text");
if (Diaspora.Page !== "ConversationsNew") { return; }
$(document).on("ajax:success", "form#new-conversation", this.conversationCreateSuccess);
$(document).on("ajax:error", "form#new-conversation", this.conversationCreateError);

View File

@@ -1,17 +1,11 @@
(function(){
(function() {
Diaspora.Mobile.Drawer = {
initialize: function(){
$("#all_aspects").bind("tap click", function(evt){
evt.preventDefault();
$(this).find("+ li").toggleClass("hide");
});
$("#menu-badge").bind("tap click", function(evt){
initialize: function() {
$("#menu-badge").bind("tap click", function(evt) {
evt.preventDefault();
$("#app").toggleClass("draw");
});
$("#followed_tags").bind("tap click", function(evt){
$("#all_aspects, #followed_tags, #admin").bind("tap click", function(evt) {
evt.preventDefault();
$(this).find("+ li").toggleClass("hide");
});

View File

@@ -19,10 +19,13 @@ function createUploader(){
}
},
validation: {
allowedExtensions: ["jpg", "jpeg", "png", "gif", "tif", "tiff"],
allowedExtensions: ["jpg", "jpeg", "png", "gif"],
sizeLimit: 4194304
},
button: document.getElementById("file-upload-publisher"),
text: {
fileInputTitle: Diaspora.I18n.t("photo_uploader.upload_photos")
},
callbacks: {
onProgress: function(id, fileName, loaded, total) {
@@ -30,8 +33,7 @@ function createUploader(){
$("#fileInfo-publisher").text(fileName + " " + progress + "%");
},
onSubmit: function() {
$("#file-upload-publisher").addClass("loading");
$("#publisher_textarea_wrapper").addClass("with_attachments");
$("#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") + "' />" +
@@ -48,7 +50,7 @@ function createUploader(){
url = responseJSON.data.photo.unprocessed_image.url,
currentPlaceholder = $("li.loading").first();
$("#publisher_textarea_wrapper").addClass("with_attachments");
$("#publisher-textarea-wrapper").addClass("with_attachments");
$("#new_status_message").append("<input type='hidden' value='" + id + "' name='photos[]' />");
// replace image placeholders
@@ -74,7 +76,7 @@ function createUploader(){
photo.fadeOut(400, function() {
photo.remove();
if ($(".publisher_photo").length === 0) {
$("#publisher_textarea_wrapper").removeClass("with_attachments");
$("#publisher-textarea-wrapper").removeClass("with_attachments");
}
});
}

View File

@@ -75,7 +75,7 @@
onLike: function(evt){
evt.preventDefault();
var link = $(evt.target),
var link = $(evt.target).closest(".like-action"),
likeCounter = $(evt.target).closest(".stream-element").find(".like-count");
if(!link.hasClass("loading") && link.hasClass("inactive")) {
@@ -89,7 +89,7 @@
onReshare: function(evt) {
evt.preventDefault();
var link = $(this),
var link = $(this).closest(".reshare-action"),
href = link.attr("href"),
confirmText = link.attr("title");
@@ -103,6 +103,10 @@
},
success: function() {
Diaspora.Mobile.PostActions.toggleActive(link);
var reshareCounter = $(evt.target).closest(".stream-element").find(".reshare-count");
if (reshareCounter) {
reshareCounter.text(parseInt(reshareCounter.text(), 10) + 1);
}
},
error: function(response) {
Diaspora.Mobile.Alert.handleAjaxError(response);

View File

@@ -46,4 +46,6 @@ $(document).ready(function(){
evt.preventDefault();
$("#new_status_message").submit();
});
new Diaspora.MarkdownEditor("#status_message_text");
});

View File

@@ -5,12 +5,12 @@ OSM = {};
OSM.Locator = function(){
var geolocalize = function(callback){
navigator.geolocation.getCurrentPosition(function(position) {
navigator.geolocation.getCurrentPosition(function(position) {
var lat=position.coords.latitude,
lon=position.coords.longitude;
$.getJSON("https://nominatim.openstreetmap.org/reverse?format=json&lat="+lat+"&lon="+lon+"&addressdetails=3", function(data){
return callback(data.display_name, position.coords);
});
});
},errorGettingPosition);
};

View File

@@ -26,6 +26,12 @@
}
});
}
$.timeago.settings.autoDispose = false;
$(function() {
$("time[data-time-ago]").timeago();
});
});
};
})();

View File

@@ -9,7 +9,6 @@
@import 'media-box';
@import 'entypo';
@import 'icons';
@import 'mentions';
@import 'animations';
@import 'flash_messages';
@import 'sprites';
@@ -89,6 +88,7 @@
@import 'chat';
@import 'markdown-content';
@import 'oembed';
@import 'media-embed';
@import 'post-content';
// contacts

View File

@@ -2,9 +2,9 @@
@import 'bootstrap-variables';
@import 'animations';
/** ADMIN STYlES **/
/** user search **/
// ADMIN STYlES
// user search
.users {
li.user {
border-bottom: 1px solid $light-grey;
@@ -16,15 +16,14 @@
.avatar {
width: 50px;
height: 50px;
max-width: none;
}
.actions{ width: 150px; }
.pull-right .label{ display: inline-block; }
}
}
/** Invites panel **/
// Invites panel
.more_invites{
#add-invites-section{
line-height: 34px;
@@ -32,12 +31,49 @@
}
}
/** reported posts **/
.invite-emails {
margin-bottom: 10px;
}
@import 'report';
// Weekly stats
.week-selector {
margin-top: 10px;
}
/** pod list **/
// Pod stats
.segment-selection {
select,
[type=submit] {
margin-top: 10px;
}
}
.percent-change {
&.increase {
color: $increase;
}
&.decrease {
color: $decrease;
}
}
// reported posts
.reports {
.reason-label {
font-weight: bold;
}
.content {
padding-bottom: 20px;
}
.panel-body .btn-info {
margin-right: 5px;
}
}
// pod list
#pod-list {
.pod-title {
max-width: 200px;

View File

@@ -1,4 +1,4 @@
.aspect_dropdown {
.aspect-dropdown {
li {
@include selectable-list;

View File

@@ -70,20 +70,29 @@ pre { word-wrap: break-word; }
height: 50px;
line-height: 50px;
opacity: 0;
pointer-events: none;
position: fixed;
right: 54px;
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,7 +1,7 @@
// Calling this file bootstrap would cause an infinite recursion during asset compilation.
@import "bootstrap-sprockets";
@import "bootstrap-variables"; //our overwrites of bootstrap variables
@import "bootstrap";
@import "_bootstrap";
// Plugins

View File

@@ -32,3 +32,6 @@ $left-navbar-drawer-background: darken($white, 6%) !default;
$hovercard-background: $white !default;
$card-shadow: 0 1px 2px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12) !default;
$increase: #008000;
$decrease: #fe0000;

View File

@@ -1,12 +1,10 @@
/* Raw CSS */
body {
#publisher_textarea_wrapper > #button_container > span.markdownIndications > a {
#publisher-textarea-wrapper > #button_container > span.markdownIndications > a {
color: fade-out($link-color, 0.4);
}
.left-navbar .hoverable:hover { background-color: $main-color-essence; }
.poll_form .progress .bar { background-color: $main-color-dark; }
.badge { background-color: $brand-primary; }
}

View File

@@ -1,31 +1,28 @@
// Only overriding existing selectors here, so disable some lint rules
// scss-lint:disable IdSelector, SelectorFormat, NestingDepth, SelectorDepth, QualifyingElement
body {
.navbar.navbar-fixed-top #user_menu .dropdown-menu > li > a {
color: $text-color;
&:hover { color: $white; }
}
.publisher {
.mentions-input-box { background-color: $gray; }
form {
#publisher_textarea_wrapper { background-color: $gray; }
#publisher-textarea-wrapper { background-color: $gray; }
.btn.btn-link.question_mark:hover .entypo-cog { color: $gray-light; }
}
.write-preview-tabs > li.active * { color: $text-color; }
.md-preview { background-color: $gray; }
.md-cancel:hover .entypo-cross { color: $gray-light; }
.publisher-buttonbar .btn.btn-link:hover i { color: $gray-light; }
}
.aspect_dropdown li a .text { color: $dropdown-link-color; }
.write-preview-tabs > li.active * { color: $text-color; }
.md-cancel:hover .entypo-cross { color: $gray-light; }
.md-input,
.md-preview { background-color: $gray; }
.aspect-dropdown li a .text { color: $dropdown-link-color; }
.info .tag { background-color: $gray-light; }
.poll_form .progress {
.poll-form .progress {
background-color: $gray-dark;
.bar { background-color: $gray-light; }
.progress-bar { background-color: $gray-light; }
.users-vote { background-color: $brand-primary; }
}
.stream-element .collapsible {
@@ -64,7 +61,7 @@ body {
#invitationsModal #email_invitation { border-top: 1px dashed $gray-light; }
#contacts_container #people_stream.contacts .stream-element.in_aspect {
#contacts_container #people-stream.contacts .stream-element.in_aspect {
background-color: $state-success-bg;
border-left: 3px solid darken($state-success-bg, 10%);
}
@@ -96,6 +93,7 @@ body {
#welcome-to-diaspora { background: $orange; }
.md-editor,
.block-form fieldset .form-control:focus { border-color: $input-border; }
&.page-registrations.action-new,

View File

@@ -1,5 +1,5 @@
body {
#main_stream .stream-element {
#main-stream .stream-element {
border: 0;
border-bottom: 1px solid $border-grey;
margin-bottom: 10px;

View File

@@ -59,7 +59,8 @@ $dropdown-link-hover-color: $dropdown-link-color;
//== Navbar
$navbar-inverse-bg: $gray-darker;
$navbar-inverse-link-hover-color: $text-color;
$navbar-inverse-link-color: $gray-lighter;
$navbar-inverse-link-hover-color: $white;
$navbar-inverse-brand-hover-color: $navbar-inverse-link-hover-color;
//== Tabs

View File

@@ -46,22 +46,40 @@
.comment.new-comment-form-wrapper { padding-bottom: 0; }
.submit_button {
.submit-button {
margin-top: 10px;
input {
float: right;
}
padding-left: 12px;
display: none;
}
.comment_box {
.comment-box {
height: 35px;
resize: none;
}
textarea.comment_box:focus, textarea.comment_box:valid, textarea.comment_box:active {
textarea.comment-box:focus, textarea.comment-box:valid, textarea.comment-box:active {
border-color: $border-dark-grey;
& + .submit_button { display: block; }
min-height: 35px;
box-shadow: none;
}
.twitter-typeahead {
// typeahead sets this to `display: inline-block` which adds additional space between
// the comment textarea and the submit button.
// scss-lint:disable ImportantRule
display: block !important;
// scss-lint:enable ImportantRule
}
}
.new-comment {
&:not(.open) .submit-button,
&:not(.open) .md-header {
display: none;
}
// The rule for .md-preview is required until we switch to the newer release of bootstrap-markdown with
// the following commit in:
// https://github.com/toopay/bootstrap-markdown/commit/14a21c3837140144b27efc19c795d1a37fad70fb
.md-preview,
&.open .md-editor textarea { min-height: 70px; }
}

View File

@@ -21,7 +21,7 @@
}
#contacts_container {
#people_stream.contacts {
#people-stream.contacts {
.header {
#change_aspect_name { cursor: pointer; }
#aspect_name_form {

View File

@@ -65,7 +65,7 @@
&:hover:not(.selected), &.selected {
.subject,
.last_author,
.last-author,
.last_message {
color: $white;
}
@@ -86,14 +86,14 @@
&.unread { background-color: $background-grey; }
&.selected { background-color: $brand-primary; }
.last_author, .last_message {
.last-author, .last_message {
font-size: 12px;
line-height: 15px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.last_author { color: $text-dark-grey; }
.last-author { color: $text-dark-grey; }
.message-count, .unread-message-count {
margin-left: 3px;
@@ -148,7 +148,7 @@
}
}
.stream_container .conversation-participants {
.stream-container .conversation-participants {
margin-bottom: 20px;
.hide_conversation, .delete_conversation {
@@ -197,16 +197,14 @@
}
.recipients-tag-list {
margin: 0 -2px $form-group-margin-bottom;
.conversation-recipient-tag {
background-color: $brand-primary;
border-radius: $btn-border-radius-base;
display: inline-flex;
margin: 0 2px $form-group-margin-bottom;
padding: 8px;
&:first-child { margin-left: 0; }
&:last-child { margin-right: 0; }
margin: 0 2px;
padding: $btn-border-radius-base;
div {
align-self: center;
@@ -215,9 +213,9 @@
}
.avatar {
height: 40px;
height: 35px;
margin-right: 8px;
width: 40px;
width: 35px;
}
.name-and-handle {
@@ -240,3 +238,9 @@
}
.new-conversation.form-horizontal .form-group:last-of-type { margin-bottom: 0; }
// This rule is required until we switch to the newer release of bootstrap-markdown with
// the following commit in: https://github.com/toopay/bootstrap-markdown/commit/14a21c3837140144b27efc19c795d1a37fad70fb
.conversations-form-container .md-preview {
min-height: 105px;
}

View File

@@ -5,6 +5,11 @@ html {
body { margin-bottom: 150px; }
.powered-by-diaspora a {
color: $link-grey;
font-weight: bold;
}
footer.footer {
background-color: $background-grey;
border-top: 1px solid $border-grey;
@@ -15,11 +20,6 @@ footer.footer {
position: absolute;
width: 100%;
.powered-by-diaspora {
color: $link-grey;
font-weight: bold;
}
ul#footer_nav {
margin: 0;
padding: 0;

View File

@@ -1,68 +1,68 @@
.not-connected-menu {
.navbar-left {
float: left;
}
.navbar-right,
.navbar-right li {
float: right;
}
}
.navbar.navbar-fixed-top {
border-bottom: none;
box-shadow: 1px 0 2px $black;
a:focus {outline: 0 none; }
a:focus { outline: 0 none; }
.in {
overflow-y: visible; // Avoid search result dropdown to be hidden
}
.navbar-brand {
font-weight: bold;
font-size: $font-size-h3;
margin-left: -15px;
}
@media (max-width: $grid-float-breakpoint-max) {
.navbar-header > .nav li { display: inline-block !important; }
.nav-badge {
color: $navbar-inverse-link-color;
padding-left: 12px;
padding-right: 12px;
&:hover { color: $navbar-inverse-link-hover-color; }
&:hover,
&:focus {
background-color: transparent;
}
.header-title {
margin: (($navbar-height - 32px - 2 * $navbar-padding-vertical) / 2) 0;
img {
height: 32px;
opacity: .7;
}
#navbar-collapse {
.form-group, .twitter-typeahead {
display: block !important;
margin-bottom: 0;
&, & input { width: 100% }
}
img:hover {
opacity: 1;
}
}
@media (min-width: $grid-float-breakpoint) {
input[type="search"] {
@include transition(width);
margin-top: 2px;
width: 200px;
&:not(.active) {
background-color: $navbar-inverse-bg;
border-color: $gray-light;
width: 150px;
}
}
#user_menu {
&.open .dropdown-toggle { background-color: darken($navbar-inverse-bg, 7%); }
.dropdown-toggle {
margin: 0 1px;
min-width: 160px;
}
.dropdown-menu {
background-color: darken($navbar-inverse-bg, 7%);
border-top: none;
width: 100%;
& > li > a {
color: $gray-light;
padding-left: 55px;
&:hover {
background-color: $brand-primary;
color: $gray-lighter;
}
}
}
.navbar-header > ul,
.navbar-header > ul li {
float: left;
}
[class^="entypo-"],
[class*="entypo-"] {
color: inherit;
font-size: $font-size-h3;
vertical-align: middle;
}
.nav-badge {
padding: $navbar-padding-vertical 12px;
.badge {
position: absolute;
right: 10px;
top: 10px;
}
}
.navbar-nav:not(.nav-badges) > li > a { font-weight: bold; }
.nav-badges {
margin: 0;
li { height: $navbar-height; }
.dropdown-open {
background-color: $dropdown-bg;
@@ -94,7 +94,7 @@
margin-right: 10px;
opacity: 1;
}
& > .pull-right > .aspect_membership_dropdown { display: none; }
& > .pull-right > .aspect-membership-dropdown { display: none; }
}
.ajax-loader {
border-bottom: 1px solid $border-grey;
@@ -118,31 +118,141 @@
}
}
}
[class^="entypo-"], [class*="entypo-"] {
color: inherit;
font-size: $font-size-h3;
vertical-align: middle;
}
.nav-badge {
margin-bottom: -2px;
.badge {
position: absolute;
right: 10px;
top: 10px;
}
.user-menu-dropdown {
padding: 0;
}
#user_menu {
.user-avatar {
height: $navbar-height;
margin-bottom: -$navbar-padding-vertical;
margin-right: 10px;
margin-top: -$navbar-padding-vertical;
padding: ($navbar-height - 30px) / 2 0;
.avatar {
height: 30px;
width: 30px;
}
.user-avatar {
height: $navbar-height;
padding: ($navbar-height - 30px)/2 0;
margin-bottom: -$navbar-padding-vertical;
margin-top: -$navbar-padding-vertical;
margin-right: 10px;
}
.navbar-form .form-control { display: inline-block; }
@media (max-width: $grid-float-breakpoint-max) {
.navbar-nav.hidden-xs {
margin: 0;
a {
padding-bottom: $navbar-padding-vertical;
padding-top: $navbar-padding-vertical;
}
}
.nav-badge {
color: $navbar-inverse-link-color;
&:hover { color: $navbar-inverse-link-hover-color; }
&:hover,
&:focus {
background-color: transparent;
}
}
.form-group,
.twitter-typeahead {
margin-bottom: 0;
&,
input { width: 100%; }
}
.nav-badges .dropdown-menu {
width: 300px;
}
.navbar-collapse {
padding-top: $navbar-padding-vertical / 2;
.navbar-nav {
margin-bottom: 0;
margin-top: 0;
}
}
.user-menu-dropdown {
background-color: transparent;
border: 0;
box-shadow: none;
display: block;
padding: 0;
position: static;
width: 100%;
a {
color: $navbar-inverse-link-color;
font-weight: bold;
padding: $nav-link-padding;
&:hover {
background-color: $navbar-inverse-link-hover-bg;
color: $navbar-inverse-link-hover-color;
}
}
}
}
@media (min-width: $grid-float-breakpoint) {
.navbar-form { // set correct margin for small inputs
margin-bottom: ($navbar-height - $input-height-small) / 2;
margin-top: ($navbar-height - $input-height-small) / 2;
}
[type="search"] {
@include transition(width);
width: 200px;
&:not(.active) {
background-color: $navbar-inverse-bg;
border-color: $gray-light;
width: 150px;
}
}
.user-menu {
&.open .dropdown-toggle { background-color: darken($navbar-inverse-bg, 7%); }
.dropdown-toggle {
margin: 0 1px;
min-width: 160px;
}
}
.user-menu-dropdown {
background-color: darken($navbar-inverse-bg, 7%);
border-top: 0;
width: 100%;
a {
color: $navbar-inverse-link-color;
padding-left: 55px;
&:hover {
background-color: $list-group-hover-bg;
color: $list-group-link-hover-color;
}
}
li:last-child a {
padding-bottom: 6px;
}
}
}
@media (max-width: $screen-xs-max) {
.nav-badges .dropdown-menu {
position: fixed;
top: $navbar-height;
width: 100%;
}
}
}

View File

@@ -12,16 +12,10 @@
font-size: small;
.avatar {
position: relative;
float: left;
height: 70px !important;
width: 70px !important;
top: 0 !important;
margin: {
right: 10px;
left: 0;
}
height: 70px;
object-fit: cover;
width: 70px;
}
$image_width: 80px; /* including margin */
@@ -65,7 +59,7 @@
margin-bottom: 5px;
}
.btn-group.aspect_membership_dropdown { margin: 0 !important; }
.btn-group.aspect-membership-dropdown { margin: 0 !important; }
}
#hovercard_container {

View File

@@ -22,7 +22,7 @@
}
}
.stream_container,
.stream-container,
.single-post-interactions {
.control-icons {
float: right;

View File

@@ -3,8 +3,9 @@
p:last-child { margin-bottom: 0; }
ul, ol {
margin-top:0.8em;
margin-bottom:0.8em;
margin-bottom: .8em;
margin-top: .8em;
li { margin-bottom: .5em; }
&:first-child { margin-top: 0; }
&:last-child { margin-bottom: 0; }
}

View File

@@ -1,3 +1,18 @@
.md-editor {
border: 1px solid $border-grey;
border-radius: $border-radius-small;
overflow: hidden;
&.active { border: 1px solid $border-dark-grey; }
textarea,
textarea:focus {
border: 0;
box-shadow: none;
margin: 0;
}
}
.md-footer,
.md-header {
background: $white;
@@ -27,6 +42,7 @@
.btn-group {
margin-bottom: 8px;
&:first-child { margin-left: 0; }
[class^="entypo-"],
[class*="entypo-"] {
@@ -77,13 +93,11 @@
.md-preview {
background: $white;
color: $text-color;
// !important is needed to override the CSS rules dynamically added to the element
// scss-lint:disable ImportantRule
height: auto !important;
// scss-lint:enable ImportantRule
min-height: 90px;
overflow: auto;
position: relative;
// !important is needed to override the CSS rules dynamically added to the element
@@ -91,6 +105,8 @@
width: 100% !important;
// scss-lint:enable ImportantRule
z-index: 10;
.preview-content { padding: 10px; }
}
.md-controls {

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,91 +0,0 @@
.mentions-input-box {
border-radius: 3px;
background: #fff;
position: relative;
textarea {
display: block;
background: transparent;
border: 1px solid #dcdcdc;
border-radius: 3px;
outline: 0;
overflow: hidden;
position: relative;
resize: none;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.form-control[disabled] { background-color: transparent; }
.mentions-autocomplete-list {
background: white;
display: none;
left: 0;
margin-left: -1px;
position: absolute;
right: 0;
z-index: 10000;
ul {
border: 1px solid $border-dark-grey;
margin: 0;
padding: 0;
border-radius: 0px 0px 5px 5px;
li {
color: #444;
background: white;
border-bottom: 1px solid #ccc;
cursor: pointer;
font-size: 15px;
height: 26px;
line-height: 26px;
list-style: none;
margin: 0;
overflow: hidden;
padding: 5px;
white-space: nowrap;
&:hover, &.active { background: $background-grey; }
&:last-child { border-radius: 0px 0px 5px 5px; }
img, div.icon {
float: left;
height: 25px;
margin-right: 5px;
width: 25px;
}
}
}
}
.mentions-box {
position: absolute;
right: 0px;
bottom: 0px;
left: 0px;
top: 0px;
padding: $padding-base-vertical $padding-base-horizontal;
}
.mentions {
color: transparent;
font-size: $font-size-base;
font-family: Arial, Helvetica, sans-serif;
overflow: hidden;
width: 100%;
white-space: pre-wrap;
word-wrap: break-word;
> strong {
background: $background-blue;
font-weight: normal;
}
}
}

View File

@@ -43,16 +43,15 @@
display: flex;
.count {
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
line-height: 22px;
margin-left: 5px;
vertical-align: top;
z-index: 2;
}
.icon-count-group {
display: flex;
margin: 0 7px;
}
[class^="entypo"] {
color: $text-grey;
font-size: 24px;
@@ -73,6 +72,9 @@
}
.post-action {
display: flex;
margin: 0 7px;
.disabled { color: $medium-gray; }
}

View File

@@ -33,10 +33,15 @@ $mobile-navbar-height: 46px;
li { float: left; }
}
#header-title {
.header-title {
padding: 7px 15px;
margin: 0 0 0 -15px;
height: $mobile-navbar-height;
img {
height: 30px;
width: 30px;
}
}
#nav-badges {
@@ -87,12 +92,6 @@ $mobile-navbar-height: 46px;
background-color: $red;
}
}
#header-title{
img {
height: 30px;
width: 30px;
}
}
}
#drawer {

View File

@@ -0,0 +1,6 @@
.md-editor {
border: 1px solid $light-grey;
border-radius: $btn-border-radius-base;
&.active { border-color: $text-grey; }
}

View File

@@ -16,6 +16,8 @@
@import "mobile/stream_element";
@import "mobile/comments";
@import 'mobile/openid_connect_error_page';
@import 'markdown-editor';
@import 'mobile/markdown_editor';
@import 'typography';
@@ -42,8 +44,6 @@ h3 { margin-top: 0; }
.clear { clear: both; }
#main { padding: 56px 10px 0 10px; }
textarea { resize: vertical; }
.avatar {
border-radius: 4px;
}
@@ -55,7 +55,6 @@ textarea { resize: vertical; }
overflow: auto;
position: relative;
text-align: left;
min-height: 34px;
padding: 10px 0 0 0;
list-style: none;
@@ -84,7 +83,7 @@ textarea { resize: vertical; }
> .content, .reshare > .content { padding: 6px; }
.info{ margin-top: 0; }
.photo_attachments{ margin-top: 6px; }
.photo-attachments{ margin-top: 6px; }
.timeago{ font-weight: normal; }
}
@@ -173,7 +172,7 @@ footer {
padding: 0;
}
.photo_attachments {
.photo-attachments {
border-radius: 3px 3px 0 0;
border: {
@@ -195,7 +194,7 @@ footer {
}
}
.photo_attachments {
.photo-attachments {
position: relative;
left: 0;
top: 0;
@@ -207,7 +206,7 @@ footer {
padding: 0; } }
#main_stream {
#main-stream {
.from {
white-space: nowrap;
overflow: hidden;
@@ -404,11 +403,6 @@ footer {
.counter {
font-size: 14px;
}
textarea {
min-width: 100%;
max-width: 100%;
}
}
select {
@@ -492,7 +486,7 @@ select {
margin-bottom: 5px;
}
.last_author {
.last-author {
position: relative;
margin: 10px 10px 2px;
float: right;
@@ -539,13 +533,6 @@ form#new_conversation.new_conversation {
}
}
textarea#conversation_text {
font-size: larger;
width: 100%;
min-width: 100%;
max-width: 100%;
}
.registrations_error,
.registrations_notice {
color: #DF0101;
@@ -625,20 +612,6 @@ h1.session {
font-weight: 200;
}
form p.checkbox_select {
position: relative;
label {
left: 25px;
top: 4px;
position: absolute;
font-size: 1em;
}
img {
position: relative;
top: 6px;
}
}
#profile_photo_upload {
margin-top: 5px;
min-height: 100px;
@@ -721,40 +694,13 @@ select#aspect_ids_ {
.entypo-camera { margin-right: 0; }
}
#publisher_textarea_wrapper {
#publisher-textarea-wrapper {
border-radius: 2px;
margin: 12px 0px;
background: $framed-background;
position: relative;
padding-right: 10px;
#hide_publisher {
opacity: 0.3;
z-index: 5;
padding: 3px;
position: absolute;
right: 6px;
top: 0;
&:hover {
opacity: 1;
}
}
&.active {
border: 1px solid $border-dark-grey;
}
textarea {
z-index: 2;
border: none;
&:focus {
outline: 0;
background: transparent;
}
}
&.with_attachments {
padding-bottom: 55px;
border: 1px solid $border-medium-grey;
@@ -899,3 +845,9 @@ select#aspect_ids_ {
.form-control:active, .form-control:focus { border-color: #999999; }
.tag_following_action { margin: 5px 0 10px 0; }
// --- Admin pages ---
.pod-version {
// The fetching of the pod version is not done on mobile currently so we hide this alert.
display: none;
}

View File

@@ -30,16 +30,14 @@
}
}
.all-aspects .hoverable.selected,
.followed-tags-sidebar .hoverable.selected,
.nested-list .hoverable.selected,
.selected > .hoverable {
color: $white;
background: $gray;
border-color: $gray;
}
.all-aspects ul,
.followed-tags-sidebar ul {
.nested-list ul {
background: $left-navbar-drawer-background;
li { padding: 0; }
.entypo-check { visibility: hidden; }
@@ -59,6 +57,16 @@
.hoverable:hover > .action { visibility: visible; }
}
.my-activity {
ul {
display: none;
}
&.activity-stream-selected ul {
display: block;
}
}
#tags_list {
#new_tag_following {
padding: 10px 20px 10px 30px;
@@ -106,13 +114,15 @@
padding: 10px 20px 0;
.excellence-box,
.info-links {
.info-links,
.powered-box {
border-top: 1px solid $border-grey;
padding: 5px;
}
.excellence-box {
margin-top: 10px;
text-align: center;
.content {
font-size: $font-size-base;
@@ -167,7 +177,6 @@
ul {
list-style: none;
margin-bottom: 5px;
padding-left: 0;
}

View File

@@ -96,6 +96,6 @@
opacity: 0;
}
.btn-group.aspect_membership_dropdown { margin: 5px 0; }
.btn-group.aspect-membership-dropdown { margin: 5px 0; }
}
}

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