diff --git a/assets/javascripts/discourse-assign/initializers/extend-for-assigns.js.es6 b/assets/javascripts/discourse-assign/initializers/extend-for-assigns.js.es6 index 0db5e1c..b8a08f9 100644 --- a/assets/javascripts/discourse-assign/initializers/extend-for-assigns.js.es6 +++ b/assets/javascripts/discourse-assign/initializers/extend-for-assigns.js.es6 @@ -196,9 +196,9 @@ function initialize(api) { }); api.addPostSmallActionIcon("assigned", "user-plus"); - api.addPostSmallActionIcon("assigned_group", "user-plus"); + api.addPostSmallActionIcon("assigned_group", "group-plus"); api.addPostSmallActionIcon("unassigned", "user-times"); - api.addPostSmallActionIcon("unassigned_group", "user-times"); + api.addPostSmallActionIcon("unassigned_group", "group-times"); api.addPostTransformCallback((transformed) => { if ( @@ -221,7 +221,9 @@ function initialize(api) { ? topic.assignedToUserPath : topic.assignedToGroupPath; const tagName = params.tagName || "a"; - const icon = assignedToUser ? iconHTML("user-plus") : iconHTML("users"); + const icon = assignedToUser + ? iconHTML("user-plus") + : iconHTML("group-plus"); const href = tagName === "a" ? `href="${assignedPath}" data-auto-route="true"` : ""; return `<${tagName} class="assigned-to discourse-tag simple" ${href}> @@ -254,7 +256,7 @@ function initialize(api) { let { assignedToUser, assignedToGroup, href } = attrs; return h("p.assigned-to", [ - assignedToUser ? iconNode("user-plus") : iconNode("users"), + assignedToUser ? iconNode("user-plus") : iconNode("group-plus"), h("span.assign-text", I18n.t("discourse_assign.assigned_to")), h( "a", @@ -330,7 +332,7 @@ function initialize(api) { api.replaceIcon( "notification.discourse_assign.assign_group_notification", - "users" + "group-plus" ); api.modifyClass("controller:preferences/notifications", { diff --git a/assets/javascripts/discourse/components/assign-actions-dropdown.js.es6 b/assets/javascripts/discourse/components/assign-actions-dropdown.js.es6 index 8cc2326..a1c6544 100644 --- a/assets/javascripts/discourse/components/assign-actions-dropdown.js.es6 +++ b/assets/javascripts/discourse/components/assign-actions-dropdown.js.es6 @@ -13,7 +13,7 @@ export default DropdownSelectBoxComponent.extend({ return [ { id: "unassign", - icon: "user-times", + icon: this.group ? "group-times" : "user-times", name: I18n.t("discourse_assign.unassign.title"), description: I18n.t("discourse_assign.unassign.help", { username: this.assignee, diff --git a/assets/javascripts/discourse/templates/components/assigned-topic-list-item.hbs b/assets/javascripts/discourse/templates/components/assigned-topic-list-item.hbs index 89b1ecb..6cbbc3f 100644 --- a/assets/javascripts/discourse/templates/components/assigned-topic-list-item.hbs +++ b/assets/javascripts/discourse/templates/components/assigned-topic-list-item.hbs @@ -58,6 +58,7 @@ {{assign-actions-dropdown topic=topic assignee=topic.assigned_to_group.name + group=true unassign=unassign reassign=reassign }} diff --git a/assets/javascripts/discourse/widgets/quick-access-assignments.js.es6 b/assets/javascripts/discourse/widgets/quick-access-assignments.js.es6 index b1280f9..71f225d 100644 --- a/assets/javascripts/discourse/widgets/quick-access-assignments.js.es6 +++ b/assets/javascripts/discourse/widgets/quick-access-assignments.js.es6 @@ -11,7 +11,7 @@ import { h } from "virtual-dom"; import I18n from "I18n"; const ICON = "user-plus"; -const GROUP_ICON = "users"; +const GROUP_ICON = "group-plus"; createWidget("no-quick-access-assignments", { html() { diff --git a/jobs/regular/assign_notification.rb b/jobs/regular/assign_notification.rb index 91ff57b..36a4a78 100644 --- a/jobs/regular/assign_notification.rb +++ b/jobs/regular/assign_notification.rb @@ -12,7 +12,8 @@ module Jobs topic = Topic.find(args[:topic_id]) assigned_by = User.find(args[:assigned_by_id]) first_post = topic.posts.find_by(post_number: 1) - assigned_to_users = args[:assigned_to_type] == "User" ? [User.find(args[:assigned_to_id])] : Group.find(args[:assigned_to_id]).users + assigned_to = args[:assigned_to_type] == "User" ? User.find(args[:assigned_to_id]) : Group.find(args[:assigned_to_id]) + assigned_to_users = args[:assigned_to_type] == "User" ? [assigned_to] : assigned_to.users assigned_to_users.each do |user| TopicAssigner.publish_topic_tracking_state(topic, user.id) @@ -40,7 +41,7 @@ module Jobs high_priority: true, data: { message: args[:assigned_to_type] == "User" ? 'discourse_assign.assign_notification' : 'discourse_assign.assign_group_notification', - display_username: assigned_by.username, + display_username: args[:assigned_to_type] == "User" ? assigned_by.username : assigned_to.name, topic_title: topic.title }.to_json ) diff --git a/plugin.rb b/plugin.rb index 36df31c..3d0ff41 100644 --- a/plugin.rb +++ b/plugin.rb @@ -14,6 +14,8 @@ register_asset 'stylesheets/mobile/assigns.scss', :mobile register_svg_icon "user-plus" register_svg_icon "user-times" +%w[user-plus user-times group-plus group-times].each { |i| register_svg_icon(i) } + load File.expand_path('../lib/discourse_assign/engine.rb', __FILE__) load File.expand_path('../lib/discourse_assign/helpers.rb', __FILE__) diff --git a/spec/jobs/regular/assign_notification_spec.rb b/spec/jobs/regular/assign_notification_spec.rb index 91a6414..00a5b12 100644 --- a/spec/jobs/regular/assign_notification_spec.rb +++ b/spec/jobs/regular/assign_notification_spec.rb @@ -95,7 +95,7 @@ RSpec.describe Jobs::AssignNotification do high_priority: true, data: { message: 'discourse_assign.assign_group_notification', - display_username: user1.username, + display_username: group.name, topic_title: topic.title }.to_json ) @@ -107,7 +107,7 @@ RSpec.describe Jobs::AssignNotification do high_priority: true, data: { message: 'discourse_assign.assign_group_notification', - display_username: user1.username, + display_username: group.name, topic_title: topic.title }.to_json ) diff --git a/svg-icons/plugin-icons.svg b/svg-icons/plugin-icons.svg new file mode 100644 index 0000000..2c7f04a --- /dev/null +++ b/svg-icons/plugin-icons.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/test/javascripts/acceptance/assigned-topic-test.js.es6 b/test/javascripts/acceptance/assigned-topic-test.js.es6 index 6dfd3eb..6dcadcf 100644 --- a/test/javascripts/acceptance/assigned-topic-test.js.es6 +++ b/test/javascripts/acceptance/assigned-topic-test.js.es6 @@ -75,7 +75,7 @@ acceptance("Discourse Assign | Assigned topic", function (needs) { "Developers", "shows assignment in the first post" ); - assert.ok(exists("#post_1 .assigned-to svg.d-icon-users")); + assert.ok(exists("#post_1 .assigned-to svg.d-icon-group-plus")); assert.ok( exists("#topic-footer-button-assign .unassign-label"), "shows unassign button at the bottom of the topic"