mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
settings: Show rendered markdown folder description.
This commit adds code to show markdown formatted description in "Channel folders" panel instead of raw text.
This commit is contained in:
@@ -11,7 +11,16 @@ export type ChannelFolder = z.infer<typeof channel_folder_schema>;
|
||||
let channel_folder_name_dict: FoldDict<ChannelFolder>;
|
||||
let channel_folder_by_id_dict: Map<number, ChannelFolder>;
|
||||
|
||||
export function clean_up_description(channel_folder: ChannelFolder): void {
|
||||
if (channel_folder.rendered_description !== undefined) {
|
||||
channel_folder.rendered_description = channel_folder.rendered_description
|
||||
.replace("<p>", "")
|
||||
.replace("</p>", "");
|
||||
}
|
||||
}
|
||||
|
||||
export function add(channel_folder: ChannelFolder): void {
|
||||
clean_up_description(channel_folder);
|
||||
channel_folder_name_dict.set(channel_folder.name, channel_folder);
|
||||
channel_folder_by_id_dict.set(channel_folder.id, channel_folder);
|
||||
}
|
||||
@@ -65,6 +74,7 @@ export function update(event: ChannelFolderUpdateEvent): void {
|
||||
channel_folder.description = event.data.description;
|
||||
assert(event.data.rendered_description !== undefined);
|
||||
channel_folder.rendered_description = event.data.rendered_description;
|
||||
clean_up_description(channel_folder);
|
||||
}
|
||||
|
||||
if (event.data.is_archived !== undefined) {
|
||||
|
@@ -7,6 +7,7 @@ import * as channel from "./channel.ts";
|
||||
import * as channel_folders from "./channel_folders.ts";
|
||||
import * as channel_folders_ui from "./channel_folders_ui.ts";
|
||||
import * as ListWidget from "./list_widget.ts";
|
||||
import {postprocess_content} from "./postprocess_content.ts";
|
||||
import type {ChannelFolderUpdateEvent} from "./server_event_types.ts";
|
||||
import * as settings_ui from "./settings_ui.ts";
|
||||
import {current_user} from "./state_data.ts";
|
||||
@@ -42,7 +43,7 @@ export function do_populate_channel_folders(): void {
|
||||
modifier_html(folder) {
|
||||
return render_admin_channel_folder_list_item({
|
||||
folder_name: folder.name,
|
||||
folder_description: folder.description,
|
||||
rendered_description: folder.rendered_description,
|
||||
id: folder.id,
|
||||
is_admin: current_user.is_admin,
|
||||
});
|
||||
@@ -118,7 +119,10 @@ export function update_folder_row(event: ChannelFolderUpdateEvent): void {
|
||||
}
|
||||
|
||||
if (event.data.description !== undefined) {
|
||||
$folder_row.find(".channel-folder-description").text(event.data.description);
|
||||
const folder = channel_folders.get_channel_folder_by_id(folder_id);
|
||||
$folder_row
|
||||
.find(".channel-folder-description")
|
||||
.html(postprocess_content(folder.rendered_description));
|
||||
}
|
||||
|
||||
if (event.data.is_archived) {
|
||||
|
@@ -9,7 +9,7 @@
|
||||
<span class="channel-folder-name">{{folder_name}}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="channel-folder-description">{{folder_description}}</span>
|
||||
<span class="channel-folder-description rendered-markdown">{{rendered_markdown rendered_description}}</span>
|
||||
</td>
|
||||
{{#if is_admin}}
|
||||
<td class="actions">
|
||||
|
@@ -578,7 +578,10 @@ run_test("channel_folders", ({override}) => {
|
||||
assert.equal(folders[0].id, event.channel_folder_id);
|
||||
assert.equal(folders[0].name, event.data.name);
|
||||
assert.equal(folders[0].description, event.data.description);
|
||||
assert.equal(folders[0].rendered_description, event.data.rendered_description);
|
||||
assert.equal(
|
||||
folders[0].rendered_description,
|
||||
event.data.rendered_description.replace("<p>", "").replace("</p>", ""),
|
||||
);
|
||||
assert.equal(folders[0].is_archived, event.data.is_archived);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user