REFACTOR: removes display invitees option (#28)
This commit is contained in:
parent
646201d75d
commit
31dfaf4557
|
@ -104,7 +104,6 @@ module DiscoursePostEvent
|
|||
:starts_at,
|
||||
:ends_at,
|
||||
:status,
|
||||
:display_invitees,
|
||||
raw_invitees: []
|
||||
)
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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}}
|
||||
|
|
|
@ -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
|
||||
};
|
||||
},
|
||||
|
||||
|
|
|
@ -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}}
|
||||
|
|
|
@ -18,8 +18,7 @@ function initializeEventBuilder(api) {
|
|||
);
|
||||
eventModel.setProperties({
|
||||
id: postId,
|
||||
status: "public",
|
||||
display_invitees: "everyone"
|
||||
status: "public"
|
||||
});
|
||||
resolve(eventModel);
|
||||
});
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue