mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 08:09:33 +08:00
FIX: Minor bookmark issues (#25358)
* FIX: Minor bookmark issues * We were showing "missing %{name} value" when the name for the bookmark was undefined with title translations * There was no way to see the bookmark details on hover in chat for a message where the bookmark icon was in the left gutter. We can show the title on the bookmark button in the chat message actions instead. * Minor fix * DEV: Test fix
This commit is contained in:
parent
a03f87bdbd
commit
db70e7a842
|
@ -1,7 +1,6 @@
|
||||||
import Component from "@ember/component";
|
import Component from "@ember/component";
|
||||||
import { computed } from "@ember/object";
|
import { computed } from "@ember/object";
|
||||||
import { isEmpty } from "@ember/utils";
|
import { isEmpty } from "@ember/utils";
|
||||||
import { formattedReminderTime } from "discourse/lib/bookmark";
|
|
||||||
import {
|
import {
|
||||||
NO_REMINDER_ICON,
|
NO_REMINDER_ICON,
|
||||||
WITH_REMINDER_ICON,
|
WITH_REMINDER_ICON,
|
||||||
|
@ -32,25 +31,12 @@ export default class BookmarkIcon extends Component {
|
||||||
: "bookmark-icon";
|
: "bookmark-icon";
|
||||||
}
|
}
|
||||||
|
|
||||||
@computed("bookmark.name", "bookmark.reminder_at")
|
@computed("bookmark.title")
|
||||||
get title() {
|
get title() {
|
||||||
if (!this.bookmark) {
|
if (!this.bookmark) {
|
||||||
return I18n.t("bookmarks.create");
|
return I18n.t("bookmarks.create");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isEmpty(this.bookmark.reminder_at)) {
|
return this.bookmark.reminderTitle;
|
||||||
const formattedTime = formattedReminderTime(
|
|
||||||
this.bookmark.reminder_at,
|
|
||||||
this.currentUser.user_option.timezone
|
|
||||||
);
|
|
||||||
return I18n.t("bookmarks.created_with_reminder_generic", {
|
|
||||||
date: formattedTime,
|
|
||||||
name: this.bookmark.name,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return I18n.t("bookmarks.created_generic", {
|
|
||||||
name: this.bookmark.name,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { computed } from "@ember/object";
|
import { computed } from "@ember/object";
|
||||||
import { none } from "@ember/object/computed";
|
import { none } from "@ember/object/computed";
|
||||||
import { capitalize } from "@ember/string";
|
import { capitalize } from "@ember/string";
|
||||||
|
import { isEmpty } from "@ember/utils";
|
||||||
import { Promise } from "rsvp";
|
import { Promise } from "rsvp";
|
||||||
import { ajax } from "discourse/lib/ajax";
|
import { ajax } from "discourse/lib/ajax";
|
||||||
import { formattedReminderTime } from "discourse/lib/bookmark";
|
import { formattedReminderTime } from "discourse/lib/bookmark";
|
||||||
|
@ -102,6 +103,23 @@ const Bookmark = RestModel.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@discourseComputed("name", "reminder_at")
|
||||||
|
reminderTitle(name, reminderAt) {
|
||||||
|
if (!isEmpty(reminderAt)) {
|
||||||
|
return I18n.t("bookmarks.created_with_reminder_generic", {
|
||||||
|
date: formattedReminderTime(
|
||||||
|
reminderAt,
|
||||||
|
this.currentUser?.user_option?.timezone || moment.tz.guess()
|
||||||
|
),
|
||||||
|
name: name || "",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return I18n.t("bookmarks.created_generic", {
|
||||||
|
name: name || "",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
@discourseComputed("created_at")
|
@discourseComputed("created_at")
|
||||||
createdAt(created_at) {
|
createdAt(created_at) {
|
||||||
return new Date(created_at);
|
return new Date(created_at);
|
||||||
|
@ -135,7 +153,7 @@ const Bookmark = RestModel.extend({
|
||||||
return capitalize(
|
return capitalize(
|
||||||
formattedReminderTime(
|
formattedReminderTime(
|
||||||
bookmarkReminderAt,
|
bookmarkReminderAt,
|
||||||
currentUser.user_option.timezone
|
currentUser?.user_option?.timezone || moment.tz.guess()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -16,6 +16,7 @@ module("Integration | Component | bookmark-icon", function (hooks) {
|
||||||
bookmark: Bookmark.create({
|
bookmark: Bookmark.create({
|
||||||
reminder_at: tomorrow(this.currentUser.user_option.timezone),
|
reminder_at: tomorrow(this.currentUser.user_option.timezone),
|
||||||
name: "some name",
|
name: "some name",
|
||||||
|
currentUser: this.currentUser,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ module("Integration | Component | bookmark-icon", function (hooks) {
|
||||||
"bookmark",
|
"bookmark",
|
||||||
Bookmark.create({
|
Bookmark.create({
|
||||||
name: "some name",
|
name: "some name",
|
||||||
|
currentUser: this.currentUser,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,7 @@ export default class ChatMessageActionsDesktop extends Component {
|
||||||
<DButton
|
<DButton
|
||||||
@action={{this.messageInteractor.toggleBookmark}}
|
@action={{this.messageInteractor.toggleBookmark}}
|
||||||
class="btn-flat bookmark-btn"
|
class="btn-flat bookmark-btn"
|
||||||
|
@translatedTitle={{this.message.bookmark.reminderTitle}}
|
||||||
>
|
>
|
||||||
<BookmarkIcon @bookmark={{this.message.bookmark}} />
|
<BookmarkIcon @bookmark={{this.message.bookmark}} />
|
||||||
</DButton>
|
</DButton>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user