diff --git a/.travis.yml b/.travis.yml index 5c042de70..6d57bbc8c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,6 @@ script: "./script/ci/build.sh" notifications: irc: channels: - - "irc.freenode.org:6667#diaspora-dev" + - secure: YvYkeTAw+5oOl/RaXVwu7JkKGNWPoFosNQRmLvJkBFbWzZ1s5LZD1u3+Qj819bT3lGzJu9pxmJg765IRYrGWmBi4mcAV3dpO6qowVdFTcorf0JsnLw3Kvkga9rrDunsRNr21KTAQqHOO5mKUzw9DtMzd52BiWuZwIj3xcl72gQI= template: - "%{repository_slug}#%{commit} (%{branch} - %{commit_subject}): %{message} %{build_url}" diff --git a/Changelog.md b/Changelog.md index d3e6a457f..fda559717 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,16 @@ +# 0.5.9.0 + +## Refactor +* Remove unused mentions regex [#6810](https://github.com/diaspora/diaspora/pull/6810) + +## Bug fixes +* Fix back to top button not appearing on Webkit browsers [#6782](https://github.com/diaspora/diaspora/pull/6782) +* Don't reset the notification timestamp when marking them as read [#6821](https://github.com/diaspora/diaspora/pull/6821) + +## Features + +* The sender's diaspora-ID is now shown in invitation mails [#6817](https://github.com/diaspora/diaspora/pull/6817) + # 0.5.8.0 ## Refactor diff --git a/app/assets/javascripts/app/views/back_to_top_view.js b/app/assets/javascripts/app/views/back_to_top_view.js index 66c516475..0289c8fb0 100644 --- a/app/assets/javascripts/app/views/back_to_top_view.js +++ b/app/assets/javascripts/app/views/back_to_top_view.js @@ -16,7 +16,7 @@ app.views.BackToTop = Backbone.View.extend({ }, toggleVisibility: function() { - if($("html, body").scrollTop() > 1000) { + if($(document).scrollTop() > 1000) { $("#back-to-top").addClass("visible"); } else { $("#back-to-top").removeClass("visible"); diff --git a/app/controllers/invitations_controller.rb b/app/controllers/invitations_controller.rb index 1801c39fe..6acf3602d 100644 --- a/app/controllers/invitations_controller.rb +++ b/app/controllers/invitations_controller.rb @@ -39,7 +39,7 @@ class InvitationsController < ApplicationController else params[:invitation_code] end - + @inviter = user || InvitationCode.where(id: params[:invitation_code]).first.try(:user) if @invitation_code.present? render 'notifier/invite', :layout => false else diff --git a/app/models/mention.rb b/app/models/mention.rb index 47c2f719a..caab2a8b2 100644 --- a/app/models/mention.rb +++ b/app/models/mention.rb @@ -3,8 +3,6 @@ # the COPYRIGHT file. class Mention < ActiveRecord::Base - REGEX = /@\{([^;]+); ([^\}]+)\}/ - belongs_to :post belongs_to :person validates :post, :presence => true diff --git a/app/models/notification.rb b/app/models/notification.rb index 4cec79128..91d697a47 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -9,7 +9,7 @@ class Notification < ActiveRecord::Base belongs_to :target, :polymorphic => true attr_accessor :note_html - + def self.for(recipient, opts={}) self.where(opts.merge!(:recipient_id => recipient.id)).order('updated_at desc') end @@ -29,7 +29,7 @@ class Notification < ActiveRecord::Base actor, note_type) end return_note.email_the_user(target, actor) if return_note - return_note + return_note end def as_json(opts={}) @@ -41,7 +41,7 @@ class Notification < ActiveRecord::Base end def set_read_state( read_state ) - self.update_attributes( :unread => !read_state ) + update_column(:unread, !read_state) end def mail_job diff --git a/app/views/notifier/invite.markerb b/app/views/notifier/invite.markerb index f5222067b..1e00c6c0a 100644 --- a/app/views/notifier/invite.markerb +++ b/app/views/notifier/invite.markerb @@ -1 +1 @@ -<%= t('.message', :invite_url => invite_code_url(@invitation_code), :diasporafoundation_url => 'https://diasporafoundation.org/') %> +<%= t('.message', :invite_url => invite_code_url(@invitation_code), :diasporafoundation_url => 'https://diasporafoundation.org/', :diaspora_id => @inviter.try(:diaspora_handle)) %> diff --git a/config/defaults.yml b/config/defaults.yml index 85c853cc6..d32ed1c3e 100644 --- a/config/defaults.yml +++ b/config/defaults.yml @@ -4,7 +4,7 @@ defaults: version: - number: "0.5.8.0" # Do not touch unless doing a release, do not backport the version number that's in master + number: "0.5.9.0" # Do not touch unless doing a release, do not backport the version number that's in master heroku: false environment: url: "http://localhost:3000/" diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index a74e956fb..36354accd 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -838,12 +838,14 @@ en: message: |- Hello! - You have been invited to join diaspora*! + You have been invited to join diaspora* by %{diaspora_id}! Click this link to get started [%{invite_url}][1] + Or you can add %{diaspora_id} to your contacts if you already have an account. + Love, diff --git a/spec/controllers/notifications_controller_spec.rb b/spec/controllers/notifications_controller_spec.rb index 2e79d431d..c8ef2dc22 100644 --- a/spec/controllers/notifications_controller_spec.rb +++ b/spec/controllers/notifications_controller_spec.rb @@ -31,6 +31,19 @@ describe NotificationsController, :type => :controller do get :update, "id" => note.id, :set_unread => "true", :format => :json end + it "marks a notification as unread without timestamping" do + note = Timecop.travel(1.hour.ago) do + FactoryGirl.create(:notification, recipient: alice, unread: false) + end + + get :update, "id" => note.id, :set_unread => "true", :format => :json + expect(response).to be_success + + updated_note = Notification.find(note.id) + expect(updated_note.unread).to eq(true) + expect(updated_note.updated_at.iso8601).to eq(note.updated_at.iso8601) + end + it 'only lets you read your own notifications' do user2 = bob diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb index b7bd65f71..34317494b 100644 --- a/spec/models/notification_spec.rb +++ b/spec/models/notification_spec.rb @@ -41,15 +41,17 @@ describe Notification, :type => :model do describe 'set_read_state method' do it "should set an unread notification to read" do @note.unread = true + @note.save @note.set_read_state( true ) expect(@note.unread).to eq(false) end + it "should set an read notification to unread" do @note.unread = false + @note.save @note.set_read_state( false ) expect(@note.unread).to eq(true) end - end