mirror of https://github.com/zulip/zulip.git
compose: Add new banner for success message scheduled.
This commit is contained in:
parent
fe4bfebbdc
commit
1885ed783a
|
@ -17,7 +17,7 @@ export const ERROR = "error";
|
||||||
const MESSAGE_SENT_CLASSNAMES = {
|
const MESSAGE_SENT_CLASSNAMES = {
|
||||||
sent_scroll_to_view: "sent_scroll_to_view",
|
sent_scroll_to_view: "sent_scroll_to_view",
|
||||||
narrow_to_recipient: "narrow_to_recipient",
|
narrow_to_recipient: "narrow_to_recipient",
|
||||||
scheduled_message_banner: "scheduled_message_banner",
|
message_scheduled_success_compose_banner: "message_scheduled_success_compose_banner",
|
||||||
};
|
};
|
||||||
// Technically, unmute_topic_notification is a message sent banner, but
|
// Technically, unmute_topic_notification is a message sent banner, but
|
||||||
// it has distinct behavior / look - it has an associated action button,
|
// it has distinct behavior / look - it has an associated action button,
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import $ from "jquery";
|
import $ from "jquery";
|
||||||
|
|
||||||
|
import render_success_message_scheduled_banner from "../templates/compose_banner/success_message_scheduled_banner.hbs";
|
||||||
|
|
||||||
import * as channel from "./channel";
|
import * as channel from "./channel";
|
||||||
import * as compose from "./compose";
|
import * as compose from "./compose";
|
||||||
import * as compose_actions from "./compose_actions";
|
import * as compose_actions from "./compose_actions";
|
||||||
import * as compose_banner from "./compose_banner";
|
import * as compose_banner from "./compose_banner";
|
||||||
import * as compose_ui from "./compose_ui";
|
import * as compose_ui from "./compose_ui";
|
||||||
import {$t} from "./i18n";
|
|
||||||
import * as narrow from "./narrow";
|
import * as narrow from "./narrow";
|
||||||
import * as notifications from "./notifications";
|
|
||||||
import {page_params} from "./page_params";
|
import {page_params} from "./page_params";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
import * as popover_menus from "./popover_menus";
|
import * as popover_menus from "./popover_menus";
|
||||||
|
@ -93,15 +93,14 @@ export function open_scheduled_message_in_compose(scheduled_msg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function send_request_to_schedule_message(scheduled_message_data, deliver_at) {
|
export function send_request_to_schedule_message(scheduled_message_data, deliver_at) {
|
||||||
const success = function () {
|
const success = function (data) {
|
||||||
compose.clear_compose_box();
|
compose.clear_compose_box();
|
||||||
notifications.notify_above_composebox(
|
const new_row = render_success_message_scheduled_banner({
|
||||||
$t({defaultMessage: `Your message has been scheduled for {deliver_at}.`}, {deliver_at}),
|
scheduled_message_id: data.scheduled_message_id,
|
||||||
"scheduled_message_banner",
|
deliver_at,
|
||||||
"/#scheduled",
|
});
|
||||||
"",
|
compose_banner.clear_message_sent_banners();
|
||||||
$t({defaultMessage: "View scheduled messages"}),
|
compose_banner.append_compose_banner_to_banner_list(new_row);
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const error = function (xhr) {
|
const error = function (xhr) {
|
||||||
|
@ -144,4 +143,16 @@ export function initialize() {
|
||||||
} else {
|
} else {
|
||||||
add_scheduled_messages(page_params.scheduled_messages);
|
add_scheduled_messages(page_params.scheduled_messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$("body").on("click", ".undo_scheduled_message", (e) => {
|
||||||
|
const scheduled_message_id = Number.parseInt(
|
||||||
|
$(e.target)
|
||||||
|
.parents(".message_scheduled_success_compose_banner")
|
||||||
|
.attr("data-scheduled-message-id"),
|
||||||
|
10,
|
||||||
|
);
|
||||||
|
edit_scheduled_message(scheduled_message_id);
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -325,6 +325,19 @@
|
||||||
color: hsl(147deg 57% 25% / 75%);
|
color: hsl(147deg 57% 25% / 75%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.compose_banner_action_button {
|
||||||
|
background-color: hsl(147deg 57% 25% / 10%);
|
||||||
|
color: inherit;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: hsl(147deg 57% 25% / 12%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: hsl(147deg 57% 25% / 15%);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* warning and warning-style classes have the same CSS; this is since
|
/* warning and warning-style classes have the same CSS; this is since
|
||||||
|
@ -413,6 +426,32 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.compose_banner.success.message_scheduled_success_compose_banner {
|
||||||
|
& a.open_scheduled_message_overlay {
|
||||||
|
line-height: normal;
|
||||||
|
display: inline-block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.undo_scheduled_message {
|
||||||
|
color: hsl(38deg 44% 27%);
|
||||||
|
background-color: hsl(46.29deg 46.67% 85.29%);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: hsl(47.65deg 41.46% 83.92%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: hsl(47.65deg 37.78% 82.35%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.upload_banner {
|
.upload_banner {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
|
|
@ -225,6 +225,19 @@
|
||||||
color: hsl(147deg 51% 55% / 75%);
|
color: hsl(147deg 51% 55% / 75%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.compose_banner_action_button {
|
||||||
|
background-color: hsl(147deg 51% 55% / 10%);
|
||||||
|
color: inherit;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: hsl(147deg 51% 55% / 15%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: hsl(147deg 51% 55% / 20%);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.warning,
|
&.warning,
|
||||||
|
@ -310,6 +323,21 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.compose_banner.success.message_scheduled_success_compose_banner {
|
||||||
|
.undo_scheduled_message {
|
||||||
|
color: hsl(50deg 45% 61%);
|
||||||
|
background-color: hsl(54deg 75% 15.69%);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: hsl(52.13deg 64.21% 18.63%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: hsl(51.29deg 57.41% 21.18%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.upload_banner {
|
.upload_banner {
|
||||||
.moving_bar {
|
.moving_bar {
|
||||||
background: hsl(204deg 63% 18%);
|
background: hsl(204deg 63% 18%);
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<div
|
||||||
|
class="compose_banner success message_scheduled_success_compose_banner"
|
||||||
|
data-scheduled-message-id="{{scheduled_message_id}}">
|
||||||
|
<p class="banner_content">{{t 'Your message has been scheduled for {deliver_at}.' }}</p>
|
||||||
|
<a href="#scheduled" class="compose_banner_action_button open_scheduled_message_overlay">{{t "View scheduled messages" }}</a>
|
||||||
|
<button class="compose_banner_action_button undo_scheduled_message" >{{t "Undo"}}</button>
|
||||||
|
<a role="button" class="zulip-icon zulip-icon-close compose_banner_close_button"></a>
|
||||||
|
</div>
|
Loading…
Reference in New Issue