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
app
assets/javascripts
admin/templates
discourse/models
controllers/admin
serializers
spec/controllers/admin

View file

@ -46,7 +46,7 @@
{{#unless automatic}} {{#unless automatic}}
<div> <div>
<label for="automatic_membership">{{i18n 'admin.groups.automatic_membership_email_domains'}}</label> <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> <label>
{{input type="checkbox" checked=automatic_membership_retroactive}} {{input type="checkbox" checked=automatic_membership_retroactive}}
{{i18n 'admin.groups.automatic_membership_retroactive'}} {{i18n 'admin.groups.automatic_membership_retroactive'}}

View file

@ -11,6 +11,11 @@ Discourse.Group = Discourse.Model.extend({
offset: 0, offset: 0,
user_count: 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() { type: function() {
return this.get("automatic") ? "automatic" : "custom"; return this.get("automatic") ? "automatic" : "custom";
}.property("automatic"), }.property("automatic"),
@ -69,7 +74,7 @@ Discourse.Group = Discourse.Model.extend({
name: this.get('name'), name: this.get('name'),
alias_level: this.get('alias_level'), alias_level: this.get('alias_level'),
visible: !!this.get('visible'), 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') automatic_membership_retroactive: !!this.get('automatic_membership_retroactive')
}; };
}, },

View file

@ -23,6 +23,7 @@ class Admin::GroupsController < Admin::AdminController
group = Group.new group = Group.new
group.name = (params[:name] || '').strip group.name = (params[:name] || '').strip
group.alias_level = params[:alias_level].to_i if params[:alias_level].present?
group.visible = params[:visible] == "true" group.visible = params[:visible] == "true"
group.automatic_membership_email_domains = params[:automatic_membership_email_domains] group.automatic_membership_email_domains = params[:automatic_membership_email_domains]
group.automatic_membership_retroactive = params[:automatic_membership_retroactive] == "true" group.automatic_membership_retroactive = params[:automatic_membership_retroactive] == "true"
@ -37,12 +38,12 @@ class Admin::GroupsController < Admin::AdminController
def update def update
group = Group.find(params[:id]) 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.alias_level = params[:alias_level].to_i if params[:alias_level].present?
group.visible = params[:visible] == "true" group.visible = params[:visible] == "true"
group.automatic_membership_email_domains = params[:automatic_membership_email_domains] group.automatic_membership_email_domains = params[:automatic_membership_email_domains]
group.automatic_membership_retroactive = params[:automatic_membership_retroactive] == "true" 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 if group.save
render_serialized(group, BasicGroupSerializer) render_serialized(group, BasicGroupSerializer)

View file

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

View file

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