REFACTOR: removes display invitees option (#28)

This commit is contained in:
Joffrey JAFFEUX 2020-04-09 20:45:38 +02:00 committed by GitHub
parent 646201d75d
commit 31dfaf4557
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 16 additions and 119 deletions

View File

@ -104,7 +104,6 @@ module DiscoursePostEvent
:starts_at,
:ends_at,
:status,
:display_invitees,
raw_invitees: []
)
end

View File

@ -98,10 +98,6 @@ module DiscoursePostEvent
@statuses ||= Enum.new(standalone: 0, public: 1, private: 2)
end
def self.display_invitees_options
@display_invitees_options ||= Enum.new(everyone: 0, invitees_only: 1, none: 2)
end
def most_likely_going(current_user, limit = SiteSetting.displayed_invitees_limit)
most_likely = []
@ -175,21 +171,5 @@ module DiscoursePostEvent
def is_expired?
Time.now > (self.ends_at || self.starts_at || Time.now)
end
def display_invitees?(current_user)
!self.is_expired? &&
self.status != Event.statuses[:standalone] &&
(
self.display_invitees == Event.display_invitees_options[:everyone] ||
(
self.display_invitees == Event.display_invitees_options[:invitees_only] &&
self.invitees.exists?(user_id: current_user.id)
) ||
(
self.display_invitees == Event.display_invitees_options[:none] &&
self.post.user == current_user
)
)
end
end
end

View File

@ -11,9 +11,7 @@ module DiscoursePostEvent
attributes :stats
attributes :status
attributes :raw_invitees
attributes :display_invitees
attributes :post
attributes :should_display_invitees
attributes :name
attributes :can_act_on_event
attributes :can_update_attendance
@ -45,18 +43,10 @@ module DiscoursePostEvent
}
end
def should_display_invitees
object.display_invitees?(scope.current_user)
end
def can_update_attendance
object.can_user_update_attendance(scope.current_user)
end
def display_invitees
Event.display_invitees_options[object.display_invitees]
end
def creator
BasicUserSerializer.new(object.post.user, embed: :objects, root: false)
end
@ -97,10 +87,6 @@ module DiscoursePostEvent
end
end
def include_sample_invitees?
object.display_invitees?(scope.current_user)
end
def sample_invitees
invitees = object.most_likely_going(scope.current_user)
ActiveModel::ArraySerializer.new(invitees, each_serializer: InviteeSerializer)

View File

@ -36,37 +36,6 @@ export default Controller.extend(ModalFunctionality, {
publicEvent: equal("model.eventModel.status", "public"),
privateEvent: equal("model.eventModel.status", "private"),
inviteesOptions: computed("model.eventModel.status", function() {
const options = [];
if (!this.standaloneEvent) {
options.push({
label: I18n.t(
"discourse_post_event.models.event.display_invitees.everyone"
),
value: "everyone"
});
if (this.privateEvent) {
options.push({
label: I18n.t(
"discourse_post_event.models.event.display_invitees.invitees_only"
),
value: "invitees_only"
});
}
options.push({
label: I18n.t(
"discourse_post_event.models.event.display_invitees.none"
),
value: "none"
});
}
return options;
}),
@action
onChangeDates(changes) {
this.model.eventModel.setProperties({

View File

@ -6,11 +6,6 @@ const ATTRIBUTES = {
starts_at: {},
ends_at: {},
raw_invitees: {},
display_invitees: {
transform(value) {
return DISPLAY_INVITEES_OPTIONS[value];
}
},
status: {
transform(value) {
return STATUSES[value];
@ -18,12 +13,6 @@ const ATTRIBUTES = {
}
};
const DISPLAY_INVITEES_OPTIONS = {
everyone: 0,
invitees_only: 1,
none: 2
};
const STATUSES = {
standalone: 0,
public: 1,

View File

@ -74,24 +74,6 @@
excludeCurrentUser=true
}}
{{/event-field}}
{{#if inviteesOptions.length}}
{{#event-field label="discourse_post_event.builder_modal.display_invitees.label"}}
{{#each inviteesOptions as |option|}}
<label class="radio-label">
{{radio-button
name="display_invitees"
value=option.value
selection=model.eventModel.display_invitees
onChange=(action (mut model.eventModel.display_invitees))
}}
<span class="message">
{{option.label}}
</span>
</label>
{{/each}}
{{/event-field}}
{{/if}}
</form>
{{/conditional-loading-section}}
{{/d-modal-body}}

View File

@ -7,9 +7,7 @@ export default createWidget("discourse-post-event-invitees", {
transform(attrs) {
return {
isPrivateEvent: attrs.eventModel.status === "private",
showAll:
attrs.eventModel.should_display_invitees &&
attrs.eventModel.stats.invited > 10
showAll: attrs.eventModel.stats.invited > 10
};
},

View File

@ -194,12 +194,11 @@ export default createWidget("discourse-post-event", {
)
}}
{{#if state.eventModel.should_display_invitees}}
<hr />
{{attach widget="discourse-post-event-invitees"
attrs=(hash eventModel=state.eventModel)
}}
{{/if}}
<hr />
{{attach widget="discourse-post-event-invitees"
attrs=(hash eventModel=state.eventModel)
}}
<footer class="event-footer">
{{#unless state.eventModel.is_expired}}

View File

@ -18,8 +18,7 @@ function initializeEventBuilder(api) {
);
eventModel.setProperties({
id: postId,
status: "public",
display_invitees: "everyone"
status: "public"
});
resolve(eventModel);
});

View File

@ -20,10 +20,7 @@ function _attachWidget(api, cooked, eventModel) {
const existing = cooked.querySelector(".discourse-post-event");
if (eventModel) {
let widgetHeight = 175;
if (eventModel.should_display_invitees) {
widgetHeight += 125;
}
let widgetHeight = 300;
if (eventModel.can_update_attendance) {
widgetHeight += 65;

View File

@ -22,10 +22,6 @@ en:
interested: "Interested"
event:
expired: Expired
display_invitees:
everyone: "To everyone"
invitees_only: "To invited users only"
none: "Do not display invited users"
status:
standalone:
title: Standalone
@ -62,8 +58,6 @@ en:
label: Invited users/groups
status:
label: Status
display_invitees:
label: Display invited users
invite_user_or_group:
title: Invite user(s) or group(s)
invite: Invite

View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
class RemoveDisplayInvitees < ActiveRecord::Migration[6.0]
def up
remove_column :discourse_post_event_events, :display_invitees
end
end

View File

@ -54,8 +54,7 @@ module DiscoursePostEvent
id: post1.id,
raw_invitees: invitees,
starts_at: 2.days.from_now,
status: Event.statuses[:private],
display_invitees: Event.display_invitees_options[:everyone]
status: Event.statuses[:private]
}
}
@ -103,7 +102,6 @@ module DiscoursePostEvent
id: post1.id,
raw_invitees: [],
status: Event.statuses[:private],
display_invitees: Event.display_invitees_options[:everyone],
starts_at: 2.days.from_now,
}
}