FIX: Minor Admin bug with a setting when creating a new group

This commit is contained in:
Régis Hanol 2015-01-23 20:31:48 +01:00
parent 0500638900
commit f7f5e39f75
5 changed files with 12 additions and 9 deletions

View file

@ -46,7 +46,7 @@
{{#unless automatic}}
<div>
<label for="automatic_membership">{{i18n 'admin.groups.automatic_membership_email_domains'}}</label>
{{list-setting name="automatic_membership" settingValue=automatic_membership_email_domains}}
{{list-setting name="automatic_membership" settingValue=emailDomains}}
<label>
{{input type="checkbox" checked=automatic_membership_retroactive}}
{{i18n 'admin.groups.automatic_membership_retroactive'}}

View file

@ -11,6 +11,11 @@ Discourse.Group = Discourse.Model.extend({
offset: 0,
user_count: 0,
emailDomains: function() {
var value = this.get("automatic_membership_email_domains");
return Em.isEmpty(value) ? "" : value;
}.property("automatic_membership_email_domains"),
type: function() {
return this.get("automatic") ? "automatic" : "custom";
}.property("automatic"),
@ -69,7 +74,7 @@ Discourse.Group = Discourse.Model.extend({
name: this.get('name'),
alias_level: this.get('alias_level'),
visible: !!this.get('visible'),
automatic_membership_email_domains: this.get('automatic_membership_email_domains'),
automatic_membership_email_domains: this.get('emailDomains'),
automatic_membership_retroactive: !!this.get('automatic_membership_retroactive')
};
},

View file

@ -23,6 +23,7 @@ class Admin::GroupsController < Admin::AdminController
group = Group.new
group.name = (params[:name] || '').strip
group.alias_level = params[:alias_level].to_i if params[:alias_level].present?
group.visible = params[:visible] == "true"
group.automatic_membership_email_domains = params[:automatic_membership_email_domains]
group.automatic_membership_retroactive = params[:automatic_membership_retroactive] == "true"
@ -37,12 +38,12 @@ class Admin::GroupsController < Admin::AdminController
def update
group = Group.find(params[:id])
# group rename is ignored for automatic groups
group.name = params[:name] if params[:name] && !group.automatic
group.alias_level = params[:alias_level].to_i if params[:alias_level].present?
group.visible = params[:visible] == "true"
group.automatic_membership_email_domains = params[:automatic_membership_email_domains]
group.automatic_membership_retroactive = params[:automatic_membership_retroactive] == "true"
# group rename is ignored for automatic groups
group.name = params[:name] if params[:name] && !group.automatic
if group.save
render_serialized(group, BasicGroupSerializer)

View file

@ -7,8 +7,4 @@ class BasicGroupSerializer < ApplicationSerializer
:visible,
:automatic_membership_email_domains,
:automatic_membership_retroactive
def automatic_membership_email_domains
object.automatic_membership_email_domains.presence || ""
end
end

View file

@ -21,12 +21,13 @@ describe Admin::GroupsController do
expect(response.status).to eq(200)
expect(::JSON.parse(response.body).keep_if {|r| r["id"] == group.id }).to eq([{
"id"=>group.id,
"automatic"=>false,
"name"=>group.name,
"user_count"=>1,
"automatic"=>false,
"alias_level"=>0,
"visible"=>true,
"automatic_membership_email_domains"=>"",
"automatic_membership_email_domains"=>nil,
"automatic_membership_retroactive"=>false
}])
end