mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	stream_privacy: Use new lock and hashtag icons.
This commit doesn't modify the lock and hashtag icon in settings.
This commit is contained in:
		@@ -3,14 +3,15 @@
 | 
			
		||||
Streams are similar to chat rooms, IRC channels, or email lists in that they
 | 
			
		||||
determine who receives a message. Zulip supports a few types of streams:
 | 
			
		||||
 | 
			
		||||
* **Public** (**#**): Members can join and view the complete message history.
 | 
			
		||||
* **Public** (<i class="zulip-icon zulip-icon-hashtag"></i>):
 | 
			
		||||
  Members can join and view the complete message history.
 | 
			
		||||
  Public streams are visible to guest users only if they are
 | 
			
		||||
  subscribed (exactly like private streams with shared history).
 | 
			
		||||
 | 
			
		||||
* **Private** (<i class="fa fa-lock"></i>): New subscribers must be
 | 
			
		||||
  added by an existing subscriber. Only subscribers and organization
 | 
			
		||||
  administrators can see the stream's name and description, and only
 | 
			
		||||
  subscribers can view topics and messages with the stream:
 | 
			
		||||
* **Private** (<i class="zulip-icon zulip-icon-lock"></i>):
 | 
			
		||||
  New subscribers must be added by an existing subscriber. Only subscribers
 | 
			
		||||
  and organization administrators can see the stream's name and description,
 | 
			
		||||
  and only subscribers can view topics and messages with the stream:
 | 
			
		||||
    * In **private streams with shared history**, new subscribers can
 | 
			
		||||
    access the stream's full message history.
 | 
			
		||||
    * In **private streams with protected history**, new subscribers
 | 
			
		||||
 
 | 
			
		||||
@@ -163,7 +163,7 @@ BAD_HTML7 = """
 | 
			
		||||
<div class="foobar">
 | 
			
		||||
<input type="foobar" name="temp" value="{{dyn_name}}"
 | 
			
		||||
       {{#unless invite_only}}checked="checked"{{/unless}} /> {{dyn_name}}
 | 
			
		||||
{{#if invite_only}}<i class="fa fa-lock"></i>{{/if}}
 | 
			
		||||
{{#if invite_only}}<i class="zulip-icon zulip-icon-lock"></i>{{/if}}
 | 
			
		||||
</div>
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
@@ -171,7 +171,7 @@ GOOD_HTML7 = """
 | 
			
		||||
<div class="foobar">
 | 
			
		||||
    <input type="foobar" name="temp" value="{{dyn_name}}"
 | 
			
		||||
      {{#unless invite_only}}checked="checked"{{/unless}} /> {{dyn_name}}
 | 
			
		||||
    {{#if invite_only}}<i class="fa fa-lock"></i>{{/if}}
 | 
			
		||||
    {{#if invite_only}}<i class="zulip-icon zulip-icon-lock"></i>{{/if}}
 | 
			
		||||
</div>
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								web/shared/icons/hashtag.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								web/shared/icons/hashtag.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
 | 
			
		||||
<title></title>
 | 
			
		||||
<g id="icomoon-ignore">
 | 
			
		||||
</g>
 | 
			
		||||
<path fill="#000" d="M365.714 0c40.395 0 73.143 32.747 73.143 73.143v219.429h146.286v-219.429c0-40.396 32.747-73.143 73.143-73.143s73.143 32.747 73.143 73.143v219.429h219.429c40.397 0 73.143 32.748 73.143 73.143s-32.746 73.143-73.143 73.143h-219.429v146.286h219.429c40.397 0 73.143 32.747 73.143 73.143s-32.746 73.143-73.143 73.143h-219.429v219.429c0 40.397-32.747 73.143-73.143 73.143s-73.143-32.746-73.143-73.143v-219.429h-146.286v219.429c0 40.397-32.748 73.143-73.143 73.143s-73.143-32.746-73.143-73.143v-219.429h-219.429c-40.396 0-73.143-32.747-73.143-73.143s32.747-73.143 73.143-73.143h219.429v-146.286h-219.429c-40.396 0-73.143-32.748-73.143-73.143s32.747-73.143 73.143-73.143h219.429v-219.429c0-40.396 32.748-73.143 73.143-73.143zM585.143 585.143v-146.286h-146.286v146.286z"></path>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 947 B  | 
							
								
								
									
										6
									
								
								web/shared/icons/lock.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								web/shared/icons/lock.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
 | 
			
		||||
<title></title>
 | 
			
		||||
<g id="icomoon-ignore">
 | 
			
		||||
</g>
 | 
			
		||||
<path fill="#000" d="M241.067 298.668c0-71.856 28.545-140.769 79.354-191.579s119.723-79.354 191.579-79.354c71.856 0 140.768 28.545 191.578 79.354s79.354 119.723 79.354 191.579v122.667h27.738c73.638 0 133.331 59.695 133.331 133.334v298.669c0 73.632-59.693 133.331-133.331 133.331h-597.336c-73.638 0-133.333-59.699-133.333-133.331v-298.669c0-73.638 59.695-133.334 133.333-133.334h27.734v-122.667zM512 142.934c-41.303 0-80.915 16.408-110.12 45.613s-45.613 68.817-45.613 110.12v122.667h311.464v-122.667c0-41.303-16.403-80.914-45.611-110.12-29.206-29.206-68.817-45.613-110.12-45.613zM544 794.541c37.286-13.184 64-48.742 64-90.541 0-53.018-42.98-95.999-96-95.999s-96 42.981-96 95.999c0 41.798 26.714 77.357 64 90.541v69.459h64v-69.459z"></path>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 896 B  | 
@@ -626,36 +626,47 @@ export class Filter {
 | 
			
		||||
        return "#"; // redirect to All
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    get_icon() {
 | 
			
		||||
    add_icon_data(context) {
 | 
			
		||||
        // We have special icons for the simple narrows available for the via sidebars.
 | 
			
		||||
        const term_types = this.sorted_term_types();
 | 
			
		||||
        switch (term_types[0]) {
 | 
			
		||||
            case "in-home":
 | 
			
		||||
            case "in-all":
 | 
			
		||||
                return "home";
 | 
			
		||||
                context.icon = "home";
 | 
			
		||||
                break;
 | 
			
		||||
            case "stream":
 | 
			
		||||
                if (!this._sub) {
 | 
			
		||||
                    return "question-circle-o";
 | 
			
		||||
                    context.icon = "question-circle-o";
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                if (this._sub.invite_only) {
 | 
			
		||||
                    return "lock";
 | 
			
		||||
                    context.zulip_icon = "lock";
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                if (this._sub.is_web_public) {
 | 
			
		||||
                    return "globe";
 | 
			
		||||
                    context.zulip_icon = "globe";
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                return "hashtag";
 | 
			
		||||
                context.zulip_icon = "hashtag";
 | 
			
		||||
                break;
 | 
			
		||||
            case "is-private":
 | 
			
		||||
                return "envelope";
 | 
			
		||||
                context.icon = "envelope";
 | 
			
		||||
                break;
 | 
			
		||||
            case "is-starred":
 | 
			
		||||
                return "star";
 | 
			
		||||
                context.icon = "star";
 | 
			
		||||
                break;
 | 
			
		||||
            case "is-mentioned":
 | 
			
		||||
                return "at";
 | 
			
		||||
                context.icon = "at";
 | 
			
		||||
                break;
 | 
			
		||||
            case "pm-with":
 | 
			
		||||
                return "envelope";
 | 
			
		||||
                context.icon = "envelope";
 | 
			
		||||
                break;
 | 
			
		||||
            case "is-resolved":
 | 
			
		||||
                return "check";
 | 
			
		||||
                context.icon = "check";
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                return undefined;
 | 
			
		||||
                context.icon = undefined;
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,13 +33,7 @@ function make_message_view_header(filter) {
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
    message_view_header.title = filter.get_title();
 | 
			
		||||
    message_view_header.icon = filter.get_icon();
 | 
			
		||||
    if (message_view_header.icon === "globe") {
 | 
			
		||||
        // This is a bit hacky, but it works as a way to communicate
 | 
			
		||||
        // to the HTML template that we need to use the different HTML
 | 
			
		||||
        // required for the globe icon.
 | 
			
		||||
        message_view_header.web_public_stream = true;
 | 
			
		||||
    }
 | 
			
		||||
    filter.add_icon_data(message_view_header);
 | 
			
		||||
    if (filter.has_operator("stream") && !filter._sub) {
 | 
			
		||||
        message_view_header.sub_count = "0";
 | 
			
		||||
        message_view_header.formatted_sub_count = "0";
 | 
			
		||||
 
 | 
			
		||||
@@ -37,16 +37,24 @@ $before_unread_count_padding: 3px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        top: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .zulip-icon.zulip-icon-hashtag {
 | 
			
		||||
        font-size: 13px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        top: 1.5px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .zulip-icon.zulip-icon-lock {
 | 
			
		||||
        font-size: 13px;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Ideally we'd handle hashtags using an <i> and just have a single rule here. */
 | 
			
		||||
.stream-privacy span.hashtag,
 | 
			
		||||
#left-sidebar .filter-icon i {
 | 
			
		||||
    padding-right: 3px;
 | 
			
		||||
 | 
			
		||||
    &.fa-lock {
 | 
			
		||||
    &.zulip-icon-lock {
 | 
			
		||||
        position: relative;
 | 
			
		||||
        top: 1px;
 | 
			
		||||
        top: 2px;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -66,10 +66,6 @@
 | 
			
		||||
            width: 10px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .fa-lock {
 | 
			
		||||
            padding-right: 3px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .fa-envelope {
 | 
			
		||||
            font-size: 0.7rem;
 | 
			
		||||
            margin-right: 2px;
 | 
			
		||||
@@ -458,8 +454,12 @@
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .stream-privacy .zulip-icon.zulip-icon-globe {
 | 
			
		||||
        left: -1px;
 | 
			
		||||
    .stream-privacy {
 | 
			
		||||
        .zulip-icon {
 | 
			
		||||
            position: relative;
 | 
			
		||||
            left: -1px;
 | 
			
		||||
            top: 1.5px;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -415,10 +415,12 @@ h4.user_group_setting_subsection_title {
 | 
			
		||||
 | 
			
		||||
                .large-icon {
 | 
			
		||||
                    display: inline-block;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                .fa-lock {
 | 
			
		||||
                    position: relative;
 | 
			
		||||
                    .zulip-icon {
 | 
			
		||||
                        font-size: 20px;
 | 
			
		||||
                        position: relative;
 | 
			
		||||
                        top: 3px;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                .zulip-icon-globe {
 | 
			
		||||
@@ -583,10 +585,6 @@ h4.user_group_setting_subsection_title {
 | 
			
		||||
            font-size: 1.1em;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .fa-lock {
 | 
			
		||||
            font-size: 1.4em;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .hashtag {
 | 
			
		||||
            font-size: 1.4em;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
@@ -828,9 +826,8 @@ h4.user_group_setting_subsection_title {
 | 
			
		||||
        .large-icon {
 | 
			
		||||
            display: inline-block;
 | 
			
		||||
            vertical-align: top;
 | 
			
		||||
            margin-right: 5px;
 | 
			
		||||
            margin-right: 8px;
 | 
			
		||||
            margin-top: -5px;
 | 
			
		||||
            font-size: 1.5em;
 | 
			
		||||
 | 
			
		||||
            &.hash::after {
 | 
			
		||||
                top: -1px;
 | 
			
		||||
@@ -838,8 +835,10 @@ h4.user_group_setting_subsection_title {
 | 
			
		||||
                font-weight: 800;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            .zulip-icon-globe {
 | 
			
		||||
                font-size: 15px;
 | 
			
		||||
            .zulip-icon {
 | 
			
		||||
                font-size: 18px;
 | 
			
		||||
                position: relative;
 | 
			
		||||
                top: 1px;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1168,6 +1168,15 @@ td.pointer {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .stream-privacy i {
 | 
			
		||||
            font-size: 15px;
 | 
			
		||||
 | 
			
		||||
            &.zulip-icon-globe,
 | 
			
		||||
            &.zulip-icon-hashtag {
 | 
			
		||||
                position: relative;
 | 
			
		||||
                top: -0.5px;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1241,7 +1250,19 @@ td.pointer {
 | 
			
		||||
        text-decoration: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .stream-privacy {
 | 
			
		||||
        min-width: unset;
 | 
			
		||||
        width: 16px;
 | 
			
		||||
        height: 16px;
 | 
			
		||||
 | 
			
		||||
        .hashtag {
 | 
			
		||||
            padding-right: 0;
 | 
			
		||||
 | 
			
		||||
            &::after {
 | 
			
		||||
                font-size: 16px;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.recipient_bar_controls {
 | 
			
		||||
@@ -1801,12 +1822,6 @@ div.focused_table {
 | 
			
		||||
        display: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .zulip-icon.zulip-icon-globe {
 | 
			
		||||
        font-size: 14px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        top: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .sub_count,
 | 
			
		||||
    .stream,
 | 
			
		||||
    & > span {
 | 
			
		||||
@@ -1832,11 +1847,6 @@ div.focused_table {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .fa {
 | 
			
		||||
            &.fa-lock {
 | 
			
		||||
                position: relative;
 | 
			
		||||
                top: 0.5px;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            .fa-envelope {
 | 
			
		||||
                font-size: 14px;
 | 
			
		||||
                margin: 0 5px;
 | 
			
		||||
@@ -1856,6 +1866,12 @@ div.focused_table {
 | 
			
		||||
        text-decoration: none;
 | 
			
		||||
        /* The first ~3px of padding here overlaps with the left padding from sub_count for some reason. */
 | 
			
		||||
        padding-right: calc(3px + 10px);
 | 
			
		||||
 | 
			
		||||
        .zulip-icon {
 | 
			
		||||
            font-size: 14px;
 | 
			
		||||
            position: relative;
 | 
			
		||||
            top: 1px;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .divider {
 | 
			
		||||
@@ -2410,7 +2426,6 @@ select.invite-as {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.date_row {
 | 
			
		||||
    padding-left: 2px;
 | 
			
		||||
    text-align: right;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
{{#if web_public_stream}}
 | 
			
		||||
<i class="zulip-icon zulip-icon-globe" aria-hidden="true"></i>
 | 
			
		||||
{{#if zulip_icon}}
 | 
			
		||||
<i class="zulip-icon zulip-icon-{{zulip_icon}}" aria-hidden="true"></i>
 | 
			
		||||
{{else if icon}}
 | 
			
		||||
<i class="fa fa-{{icon}}" aria-hidden="true"></i>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
{{! This controls whether the swatch next to streams in the left sidebar has a lock icon. }}
 | 
			
		||||
{{#if invite_only}}
 | 
			
		||||
<i class="fa fa-lock" aria-hidden="true"></i>
 | 
			
		||||
<i class="zulip-icon zulip-icon-lock" aria-hidden="true"></i>
 | 
			
		||||
{{else if is_web_public}}
 | 
			
		||||
<i class="zulip-icon zulip-icon-globe" aria-hidden="true"></i>
 | 
			
		||||
{{else}}
 | 
			
		||||
<span class="hashtag"></span>
 | 
			
		||||
<i class="zulip-icon zulip-icon-hashtag" aria-hidden="true"></i>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,14 @@
 | 
			
		||||
{{! This controls whether the swatch next to streams in the stream edit page has a lock icon. }}
 | 
			
		||||
{{#if invite_only}}
 | 
			
		||||
<div class="large-icon lock" style="color: {{color}}">
 | 
			
		||||
    <i class="fa fa-lock" aria-hidden="true"></i>
 | 
			
		||||
<div class="large-icon" style="color: {{color}}">
 | 
			
		||||
    <i class="zulip-icon zulip-icon-lock" aria-hidden="true"></i>
 | 
			
		||||
</div>
 | 
			
		||||
{{else if is_web_public}}
 | 
			
		||||
<div class="large-icon" style="color: {{color}}">
 | 
			
		||||
    <i class="zulip-icon zulip-icon-globe" aria-hidden="true"></i>
 | 
			
		||||
</div>
 | 
			
		||||
{{else}}
 | 
			
		||||
<div class="large-icon hash" style="color: {{color}}"></div>
 | 
			
		||||
<div class="large-icon" style="color: {{color}}">
 | 
			
		||||
    <i class="zulip-icon zulip-icon-hashtag" aria-hidden="true"></i>
 | 
			
		||||
</div>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
<div class="icon" style="background-color: {{color}}">
 | 
			
		||||
    <div class="flex">
 | 
			
		||||
        {{#if invite_only}}
 | 
			
		||||
        <i class="fa fa-lock" aria-hidden="true"></i>
 | 
			
		||||
        <i class="zulip-icon zulip-icon-lock" aria-hidden="true"></i>
 | 
			
		||||
        {{else if is_web_public}}
 | 
			
		||||
        <i class="zulip-icon zulip-icon-globe fa-lg" aria-hidden="true"></i>
 | 
			
		||||
        {{else}}
 | 
			
		||||
        <span class="hashtag">#</span>
 | 
			
		||||
        <span class="zulip-icon zulip-icon-hashtag"></span>
 | 
			
		||||
        {{/if}}
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -1437,9 +1437,12 @@ test("navbar_helpers", () => {
 | 
			
		||||
        assert.equal(filter.is_common_narrow(), test_case.is_common_narrow);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function test_get_icon(test_case) {
 | 
			
		||||
    function test_add_icon_data(test_case) {
 | 
			
		||||
        const filter = new Filter(test_case.operator);
 | 
			
		||||
        assert.equal(filter.get_icon(), test_case.icon);
 | 
			
		||||
        const context = {};
 | 
			
		||||
        filter.add_icon_data(context);
 | 
			
		||||
        assert.equal(context.icon, test_case.icon);
 | 
			
		||||
        assert.equal(context.zulip_icon, test_case.zulip_icon);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function test_get_title(test_case) {
 | 
			
		||||
@@ -1450,7 +1453,7 @@ test("navbar_helpers", () => {
 | 
			
		||||
    function test_helpers(test_case) {
 | 
			
		||||
        // debugging tip: add a `console.log(test_case)` here
 | 
			
		||||
        test_common_narrow(test_case);
 | 
			
		||||
        test_get_icon(test_case);
 | 
			
		||||
        test_add_icon_data(test_case);
 | 
			
		||||
        test_get_title(test_case);
 | 
			
		||||
        test_redirect_url_with_search(test_case);
 | 
			
		||||
    }
 | 
			
		||||
@@ -1541,7 +1544,7 @@ test("navbar_helpers", () => {
 | 
			
		||||
        {
 | 
			
		||||
            operator: stream_topic_operators,
 | 
			
		||||
            is_common_narrow: true,
 | 
			
		||||
            icon: "hashtag",
 | 
			
		||||
            zulip_icon: "hashtag",
 | 
			
		||||
            title: "Foo",
 | 
			
		||||
            redirect_url_with_search: "/#narrow/stream/43-Foo/topic/bar",
 | 
			
		||||
        },
 | 
			
		||||
@@ -1555,7 +1558,7 @@ test("navbar_helpers", () => {
 | 
			
		||||
        {
 | 
			
		||||
            operator: stream_operator,
 | 
			
		||||
            is_common_narrow: true,
 | 
			
		||||
            icon: "hashtag",
 | 
			
		||||
            zulip_icon: "hashtag",
 | 
			
		||||
            title: "Foo",
 | 
			
		||||
            redirect_url_with_search: "/#narrow/stream/43-Foo",
 | 
			
		||||
        },
 | 
			
		||||
@@ -1576,14 +1579,14 @@ test("navbar_helpers", () => {
 | 
			
		||||
        {
 | 
			
		||||
            operator: private_stream_operator,
 | 
			
		||||
            is_common_narrow: true,
 | 
			
		||||
            icon: "lock",
 | 
			
		||||
            zulip_icon: "lock",
 | 
			
		||||
            title: "psub",
 | 
			
		||||
            redirect_url_with_search: "/#narrow/stream/22-psub",
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            operator: web_public_stream_operator,
 | 
			
		||||
            is_common_narrow: true,
 | 
			
		||||
            icon: "globe",
 | 
			
		||||
            zulip_icon: "globe",
 | 
			
		||||
            title: "webPublicSub",
 | 
			
		||||
            redirect_url_with_search: "/#narrow/stream/12-webPublicSub",
 | 
			
		||||
        },
 | 
			
		||||
@@ -1631,7 +1634,7 @@ test("navbar_helpers", () => {
 | 
			
		||||
        {
 | 
			
		||||
            operator: stream_topic_near,
 | 
			
		||||
            is_common_narrow: false,
 | 
			
		||||
            icon: "hashtag",
 | 
			
		||||
            zulip_icon: "hashtag",
 | 
			
		||||
            title: "Foo",
 | 
			
		||||
            redirect_url_with_search: "#",
 | 
			
		||||
        },
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user