Commit b7791e6c authored by hilkoc's avatar hilkoc Committed by Benjamin Neff
Browse files

Add user setting for default post visibility

fixes #4319

closes #7118
parent 74fff52e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ Note: Although this is a minor release, the configuration file changed because t
* Add optional `Content-Security-Policy` header [#7128](https://github.com/diaspora/diaspora/pull/7128)
* Add links to main stream and public stream to the mobile drawer [#7144](https://github.com/diaspora/diaspora/pull/7144)
* Allow opening search results from the dropdown in a new tab [#7021](https://github.com/diaspora/diaspora/issues/7021)
* Add user setting for default post visibility [#7118](https://github.com/diaspora/diaspora/issues/7118)

# 0.6.0.1

+5 −0
Original line number Diff line number Diff line
@@ -9,6 +9,11 @@ app.pages.Settings = Backbone.View.extend({
      preFill: gon.preloads.tagsArray
    });
    new Diaspora.ProfilePhotoUploader();

    this.viewAspectSelector = new app.views.PublisherAspectSelector({
      el: $(".aspect_dropdown"),
      form: $("#post-default-aspects")
    });
  }
});
// @license-end
+15 −0
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ class UsersController < ApplicationController
      :auto_follow_back,
      :auto_follow_back_aspect_id,
      :getting_started,
      :post_default_public,
      email_preferences: %i(
        someone_reported
        also_commented
@@ -167,6 +168,8 @@ class UsersController < ApplicationController
      change_email(user_data)
    elsif user_data[:auto_follow_back]
      change_settings(user_data, "users.update.follow_settings_changed", "users.update.follow_settings_not_changed")
    elsif user_data[:post_default_public]
      change_post_default(user_data)
    elsif user_data[:color_theme]
      change_settings(user_data, "users.update.color_theme_changed", "users.update.color_theme_not_changed")
    else
@@ -184,6 +187,18 @@ class UsersController < ApplicationController
    end
  end

  def change_post_default(user_data)
    # by default user_data[:post_default_public] is set to  false
    case params[:aspect_ids].try(:first)
    when "public"
      user_data[:post_default_public] = true
    when "all_aspects"
      params[:aspect_ids] = @user.aspects.map {|a| a.id.to_s }
    end
    @user.update_post_default_aspects params[:aspect_ids].to_a
    change_settings(user_data)
  end

  # change email notifications
  def change_email_preferences(user_data)
    @user.update_user_preferences(user_data[:email_preferences])
+13 −2
Original line number Diff line number Diff line
@@ -17,13 +17,24 @@ module AspectGlobalHelper
      aspect = stream.aspect
      aspect_ids = stream.aspect_ids
    elsif current_user
      aspects = current_user.aspects
      aspects = current_user.post_default_aspects
      aspect = aspects.first
      aspect_ids = current_user.aspect_ids
    else
      return {}
    end

    {selected_aspects: aspects, aspect: aspect, aspect_ids: aspect_ids}
  end

  def public_selected?(selected_aspects)
    "public" == selected_aspects.try(:first)
  end

  def all_aspects_selected?(aspects, selected_aspects)
    !aspects.empty? && aspects.size == selected_aspects.size && !public_selected?(selected_aspects)
  end

  def aspect_selected?(aspect, aspects, selected_aspects)
    selected_aspects.include?(aspect) && !all_aspects_selected?(aspects, selected_aspects)
  end
end
+0 −4
Original line number Diff line number Diff line
@@ -46,8 +46,4 @@ module InterimStreamHackinessHelper
  def publisher_open
    publisher_method(:open)
  end

  def publisher_public
    publisher_method(:public)
  end
end
Loading