From f7f5e39f75adb8f5336322aae007f70f5e683f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= <regis@hanol.fr> Date: Fri, 23 Jan 2015 20:31:48 +0100 Subject: [PATCH] FIX: Minor Admin bug with a setting when creating a new group --- app/assets/javascripts/admin/templates/group.hbs | 2 +- app/assets/javascripts/discourse/models/group.js | 7 ++++++- app/controllers/admin/groups_controller.rb | 5 +++-- app/serializers/basic_group_serializer.rb | 4 ---- spec/controllers/admin/groups_controller_spec.rb | 3 ++- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/admin/templates/group.hbs b/app/assets/javascripts/admin/templates/group.hbs index ac76d7056ad..2800ac2b9c1 100644 --- a/app/assets/javascripts/admin/templates/group.hbs +++ b/app/assets/javascripts/admin/templates/group.hbs @@ -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'}} diff --git a/app/assets/javascripts/discourse/models/group.js b/app/assets/javascripts/discourse/models/group.js index a598b9822b4..5d7ff91c2b3 100644 --- a/app/assets/javascripts/discourse/models/group.js +++ b/app/assets/javascripts/discourse/models/group.js @@ -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') }; }, diff --git a/app/controllers/admin/groups_controller.rb b/app/controllers/admin/groups_controller.rb index 65b737392ea..1b62db41e52 100644 --- a/app/controllers/admin/groups_controller.rb +++ b/app/controllers/admin/groups_controller.rb @@ -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) diff --git a/app/serializers/basic_group_serializer.rb b/app/serializers/basic_group_serializer.rb index 2bf2d111be6..0e22994212c 100644 --- a/app/serializers/basic_group_serializer.rb +++ b/app/serializers/basic_group_serializer.rb @@ -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 diff --git a/spec/controllers/admin/groups_controller_spec.rb b/spec/controllers/admin/groups_controller_spec.rb index 8efd09bd5ed..6e85473edd8 100644 --- a/spec/controllers/admin/groups_controller_spec.rb +++ b/spec/controllers/admin/groups_controller_spec.rb @@ -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