Commit Graph

216 Commits

Author SHA1 Message Date
Sahil Batra
c58414b0ca settings: Restructure HTML for stream and groups overlay.
This commit restructures the HTML for stream and group
settings overlay such that we first write all the HTML
for left side and then right side.

This change is important so that focus behavior during
keyboard navigation is correct in narrow screens and
does not move to the elements which are hidden after
we fix it in #26941.

This changes the focus behavior on keyboard navigation
in wide screens where first all of the left panel will
be covered from top to bottom and then the right panel,
but it is fine.
2025-11-02 11:39:57 -08:00
Shubham Padia
de2126d240 subscriptions: Use light-dark() instead of dark_theme.css for stream-row.
Fixes part of #35881.

We extract out relevant colors from dark_theme.css for .stream-row and
.group-row and place them in light-dark(). We also transform all these
colors for .group-row and .stream-row into variables.

We use the alpha value for hsl() colors as a stand-in for the opacity we
were defining in dark_theme.css.
2025-10-06 17:44:11 -07:00
Shubham Padia
567e8f369e css: Move out background-color hsl(0deg 0% 0% / 20%) out of dark_theme.
Fixes part of #35881.
2025-10-06 17:44:05 -07:00
Shubham Padia
c96caded1f subscriptions: Use existing variable for .subscriber-list-box.
Fixes part of #35881.

Instead of having all the rules in the dark_theme.css, we use the
existing variable which uses `light-dark()`.

We also create a new variable color-border-settings-radio-input-parent,
since the existing variable was not created for that radio input and
they should be allowed to change independently.
2025-10-06 17:44:00 -07:00
Evy Kassirer
9d532baa94 pill_input: Use flex-grow 1 on all input pills.
This extends existing styling for pills for search and org permissions,
to fix a bug in the invite users modal. Continues work in #34371, which
tested other input elements.

Fixes bug reported here:
https://chat.zulip.org/#narrow/channel/9-issues/topic/pasting.20invite.20email.20addresses
2025-10-06 17:32:58 -07:00
Shubham Padia
310a2323b6 subscriptions: Move raw svg for plus and check icons to zulip-icon.
Fixes #35899.

We don't make any visual changes to how the svgs/icons look, we just
move them to use the zulip-icon system.

We also replace use of the raw images of each in the help center and add
appropriate color for both in the help center.
2025-09-17 14:15:05 -07:00
Anders Kaseorg
72e762f075 stylelint: Fix property-no-deprecated.
Signed-off-by: Anders Kaseorg <[email protected]>
2025-08-14 21:37:50 -07:00
Sahil Batra
524442bf44 streams-ui: Add UI to update and archive channel folders.
This commit adds edit and delete buttons in the dropdown
list for folder.

Fixes #35498.
2025-08-04 13:22:11 -07:00
Sahil Batra
34cb0034e1 settings: Handle long names better in susbcribers and members list.
This commit updates the subscribers and group members table CSS to
use fixed layout. This helps in having user pill take the width if
available and we can show more characters.

Previously the width of name in user pill was set to have a max
width of 165px which meant the there was some empty unused space in
the rows especially on narrow screens when email column was hidden.

Fixes #35157.
2025-07-25 11:21:23 -07:00
apoorvapendse
3c26086c4b settings: Disable picking users/groups while request in process.
Related:
https://github.com/zulip/zulip/pull/34912/#pullrequestreview-2979808971
(Point 3)
Signed-off-by: apoorvapendse <[email protected]>
2025-07-18 18:07:38 -07:00
Apoorva Pendse
eb6676f9b5 settings: Show a tick inside of add button on click.
We want the input field to retain
the same width even when
Add button shrinks, when we
show a check icon.

This solution involves layering
of the check and `Add` button
and toggling visibility.

Karl's coment: https://chat.zulip.org/#narrow/channel/6-frontend/topic/.2334347.20rework.20subscribe.20users.20confirmations/near/2206344.

Related: https://github.com/zulip/zulip/pull/34912#issuecomment-3010269391.

Reference:
https://chat.zulip.org/#narrow/channel/6-frontend/topic/.2334347.20rework.20subscribe.20users.20confirmations/with/2193352.
Co-authored-by: Rajeev Tapadia <[email protected]>
Co-authored-by: Maneesh Shukla <[email protected]>
Co-authored-by: Karl Stolley <[email protected]>
Signed-off-by: apoorvapendse <[email protected]>
2025-07-18 18:04:57 -07:00
Apoorva Pendse
f75fbdda8b channel_settings: Improve clarity of subscription result message.
The result message shown when adding members to a stream
previously listed the name of every member being added,
which could be noisy for large groups.

This commit updates stream_subscription_request_result.hbs to
conditionally display clearer, more concise messages based
on the number of subscribed and already subscribed users.

This improves readability and user experience when handling
large subscription actions.

Fixes part of #34347

Co-authored-by: Rajeev Tapadia <[email protected]>
Signed-off-by: apoorvapendse <[email protected]>
2025-07-18 18:04:56 -07:00
Maneesh Shukla
3bd8c28fca buttons: Redesign some old-style buttons with rounded class.
Fixes part of #35006.
2025-07-16 14:46:23 -07:00
Vector73
f9e41915c3 pill_container: Fix background-color in dark theme. 2025-07-15 11:12:50 -07:00
Sahil Batra
e633ba5c71 settings-ui: Align items to center in stream and group rows.
This commit updates CSS to use flex layout to correctly
align items in stream and group rows to center and avoid
using top margins.
2025-07-11 12:33:45 -07:00
Sahil Batra
e79218692f settings-ui: Use relative sizes for stream and group rows.
This commit updates CSS to use relative width and height of
icons, margins and paddings for stream and group rows in
left panel.
2025-07-11 12:33:45 -07:00
Vector73
a77fc6aa79 stream_settings: Add new disable_topics option to topics_policy.
Adds new configuration option `disable_topics` in `topics_policy`
channel setting to support disabling topics in the channel.

Fixes #34553.
2025-07-09 14:25:53 -07:00
Maneesh Shukla
ec60c8a70c x-buttons: Replace "Remove" and "Unsubscribe" buttons with x icons in tables.
This commit removes the "Remove" and "Unsubscribe" action buttons from
various tables and replaces them with icon buttons using the "close"
icon.

Additionally, previously the rows with and without a remove button had
different heights. This commit updates the fixed `px` values to `em`
units to ensure equal height for all rows, regardless of whether a
remove-subscription button is present.

Fixes: #34874.
2025-07-03 14:37:00 -07:00
Sayam Samal
0fe4b6b317 settings: Scale margin of input groups with font size.
This commit adjusts the margin of input groups in settings pages to
relative `em` units to ensure that the spacing scales to accommodate
different font sizes.
2025-07-03 12:00:33 -07:00
evykassirer
236e595438 settings: Use grid and flex for the two-pane settings overlay.
Instead of changing the height of the button subheader depending
on the width of the modal, which was fiddly and error prone, we now
let grid determine the height of the button subheader, and determine
the height of the body through javascript resize calculations.
2025-07-03 11:22:31 -07:00
Sahil Batra
e66431f128 group-settings: Fix how long names are handled in groups UI.
This commit fixes code to correctly show the long group
names by clipping them and showing ellipsis in group rows
in left panel and in the header shown in right section.

Group names are handled in a different way than stream
names because we need to show deactivated icons as well
for stream names.
2025-07-03 11:22:31 -07:00
Maneesh Shukla
992d8374b2 tooltip: Fix the placement of tooltip in group list.
When there is only one user group, the tooltip appears on the upper side
of the "group-row" and gets hidden.

This commit sets `overflow: visible` which is default value, causing the
tooltip position to invert when there is only one user group.
2025-07-01 14:16:31 -07:00
Maneesh Shukla
8ef51e1b6f tooltips: Fix incorrect tooltip on the spinner.
The "sub_unsub_status" spinner was inside the div with the "check" class
, causing the tooltip to appear over the spinner, which should only be
visible on the check icon.

This commit moves the "sub_unsub_status" spinner div outside, ensuring
the tooltip is now visible only when hovering over the check icon.
2025-07-01 14:16:31 -07:00
Evy Kassirer
ec65dad063 stream_pill: Fetch all subscribers before getting user ids for a stream.
Some checks failed
Code scanning / CodeQL (push) Has been cancelled
Zulip production suite / Ubuntu 22.04 production build (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:bookworm, true, false, Debian 12 (Python 3.11, backend + documentation), bookworm) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:jammy, false, true, Ubuntu 22.04 (Python 3.10, backend + frontend), jammy) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:noble, false, false, Ubuntu 24.04 (Python 3.12, backend), noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble, , Ubuntu 24.04 production install, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-7.0, 7.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-8.0, 8.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy-6.0, 6.0 Version Upgrade, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-10.0, 10.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-9.0, 9.0 Version Upgrade, noble) (push) Has been cancelled
Work towards #34244.
2025-06-23 17:04:47 -07:00
Sahil Batra
32287a084b channel-folders: Add UI to create new channel folder.
This commit adds a button besides the folder dropdowin in
stream settings UI which can be used to create a new folder.
2025-06-10 11:51:58 -07:00
Sahil Batra
7c01e61e5a streams: Add UI to add or remove stream from a folder.
This commit adds UI to add a stream to a folder while
creating them and also for adding/removing an existing
stream from a folder.
2025-06-10 11:51:58 -07:00
Sahil Batra
647eab4f58 subscriptions: Remove unnecessary ".stream-creation-body" selector.
We do not need ".stream-creation-body" selector for this block
of CSS properties, since we apply these CSS properties to all
the required elements using ".stream-permissions" and
".advanced-configurations-container" selectors.
2025-06-10 11:51:58 -07:00
Sahil Batra
9498213455 subscriptions: Remove unnecessary CSS.
We do not have any dropdown widget buttons in right panel
of groups and streams UI, neither in creation form nor in
stream and group settings UI.
2025-06-10 11:51:58 -07:00
Sahil Batra
72e2605b98 stream-settings: Fix duplicate IDs.
"stream-advanced-configurations" was being used as ID for
advanced configurations section in both stream edit and
creation UI, which is not correct as ID should be unique.

This commit fixes it by removing the ID and instead using
class in selectors. Also, there was some unused CSS, as
we do not have dropdown widget buttons in advanced
configurations section, written using the duplicate ID so
removed that as well.
2025-05-20 10:40:19 -07:00
Sahil Batra
bc89d96893 stream-settings: Fix duplicate IDs.
This commit fixes the use of "stream_permission_settings"
as ID for "Channel permissions" subsection in both
stream edit and creation UI, which was not correct since
ID should be unique.

To fix this ID was removed from the element and following
changes are done -
- $("#stream_settings") element is now used as a container
for live update functions for stream edit UI.
- "stream-permissions" class is used to access the element
instead of ID.
- Advanced configurations container also had "stream-permissions"
class before, and that was removed in this commit so that
"Channel permissions" container can be identified uniquely
and thus some CSS changes were needed.
- Also, fixed "update_stream_privacy_choices" function to
not use ":visible" in selectors.
2025-05-20 10:40:19 -07:00
Sahil Batra
7833ea0bb5 user_group_edit: Fix typo in class name.
"hide-deactivated-user-groups" was incorrectly written in
"hide-deactived-user-groups".
2025-05-20 10:37:59 -07:00
whilstsomebody
2780360b00 unarchive: Add support for unarchiving archived channels.
This commit adds support for unarchiving archived channels
by introducing the `is_archived` parameter to the
`PATCH /streams/{stream_id}` API endpoint. Sending a PATCH
request with `is_archived: false` will unarchive the specified
channel.
2025-05-16 11:39:40 -07:00
Evy Kassirer
44b87c72dc stream_edit: Fetch subscribers before showing subscriber tab.
Work towards #34244.

Now that we're supporting partial subscriber data, we might need
to fetch the full list of subscribers when opening the subscribers
tab of the edit channel modal.

This commit handles a slow load with a loading spinner while we fetch
the data, and also makes sure to ignore the data if it's received after
it stops being relevant (in case the user has another stream's data open).
2025-05-14 15:00:45 -07:00
Sahil Batra
abdad3d485 settings-ui: Align tab toggler correctly in streams and groups UI.
This commit updates the left margin for the tab toggler in
streams and groups UI to be equal to the margin for the content
below so that they align correctly.
2025-05-14 13:24:55 -07:00
Evy Kassirer
d82bd57cef two_pane_settings: Calculate body height from resize instead of fiddly CSS.
Having a set height is necessary for simplebar to work, and the height
will change depending on whether the header is one or two lines.
2025-05-13 12:06:47 -07:00
Evy Kassirer
a5c77cc017 settings: Move settings page CSS out of subscriptions.css. 2025-05-13 12:06:47 -07:00
Evy Kassirer
4f7c65d255 two_pane_settings: Clean up padding and width on creation window footer.
This changes the vertical padding to be the same top and bottom, instead
of 9px top and 15px bottom, and updates the width to properly account
for the left/right padding.

Note: This footer is currently only used for stream/usergroup creation.
2025-05-13 12:06:47 -07:00
Evy Kassirer
1778bea8fa two_pane_settings: Remove unused text-align on list-toggler-container.
This seems only relevant for the text in the `.tab-switcher .ind-tab`
which already have `text-align: center`.
2025-05-13 12:06:47 -07:00
Evy Kassirer
9ab4954fe8 two_pane_settings: Use transform with transition instead of left.
This is more performant.
2025-05-13 12:06:47 -07:00
Evy Kassirer
3edbd5983c two_pane_settings: Clean up top border for body on narrow screens.
It seems like the only impact of removing `top` here is the bottom
border of the header appears, but we can just remove that directly.

`border-top: none` doesn't seem like it was doing anything here
(the element had no border).
2025-05-13 12:06:47 -07:00
Evy Kassirer
ce78543fcd two_pane_settings: Remove redundant height for narrow screens.
This is already set on `.left` and `.right` for wide screens
and doesn't change on narrow screens.
2025-05-13 12:06:47 -07:00
Maneesh Shukla
46cd38d1b0 settings: Redesign buttons in channel and group settings.
Fixes: #34253.
2025-05-06 13:34:59 -07:00
Karl Stolley
3671a6a39c decorated_channels: Rename privacy-icon class. 2025-04-22 11:26:12 -07:00
Maneesh Shukla
94bbfaebe4 settings: Make stream and group settings thead sticky.
Co-authored-by: Karl Stolley <[email protected]>
2025-04-16 09:24:37 -07:00
evykassirer
8d57bf30ac settings: Split CSS for two-pane-overlay and settings.
No changes, just shuffling things around for ease of reading
future commits.
2025-04-11 10:27:25 -07:00
evykassirer
3be4951e5e subscriptions: Move 40% width to just the left style block.
This is overwritten to ~60% in the .right style block and
shouldn't be in the shared style block.
2025-04-11 10:27:25 -07:00
evykassirer
e84c318e10 settings: Move stream_sorter_toggle CSS to subscriptions stylesheet.
It's only used for subscriptions so it makes more sense for it to
live there.
2025-04-11 10:27:25 -07:00
evykassirer
3539142479 settings: Remove margin for subheader title.
The margin doesn't scale with font size, so it looks
extra weird at small font sizes, and also the text
is already being centered with flex so we don't need
margin.
2025-04-11 10:27:25 -07:00
evykassirer
6b0dd9e063 settings: Move subheader CSS out of main CSS block.
In a future commit in (#34125) we'll add a classname for the
subheader and use that to scope these rules.

This commit has no changes in CSS rules. It only moves them around.
2025-04-11 10:27:25 -07:00
evykassirer
a09dab5eaf settings: Calculate height of create modal through javascript.
We need this height to be flexible based on if the subheader has
overflowed into two rows or not, and our method of doing this
(with existing examples in the buddy list and stream list) is to
calculate what the height should be when a window is loaded or
resized.
2025-04-10 10:01:57 -07:00