org settings: Explain Zoom support is experimental, and fix a few strings.

Visually, #zoom_help_text acts like
.organization-settings-parent div:first-of-type when the Zoom option
is selected, but isn't treated as such.

No visual change with the #google_hangouts_domain change; just there to make
the code more readable/defensible.
This commit is contained in:
Rishi Gupta
2019-02-27 15:13:57 -08:00
committed by Tim Abbott
parent 88e90d34b9
commit d833c70dc7
5 changed files with 17 additions and 9 deletions

View File

@@ -15,8 +15,8 @@ in bursts.
- Added support for explicitly setting oneself as "away" and "user
status" messages.
- Added a built-in /poll slash command for lightweight polls.
- Added support for using Zoom as the video chat provider. We now
support Jitsi, Google Hangouts, and Zoom.
- Added experimental support for using Zoom as the video chat
provider. We now support Jitsi, Google Hangouts, and Zoom.
- Added support for branding the top-left corner of the logged in app
with an organization's logo.
- Zulip's "Guest users" feature is no longer experimental.

View File

@@ -478,6 +478,8 @@ input[type=checkbox] + .inline-block {
display: none;
}
#google_hangouts_domain,
#zoom_help_text,
.organization-settings-parent div:first-of-type {
margin-top: 10px;
}

View File

@@ -165,8 +165,14 @@
name="realm_google_hangouts_domain"
class="admin-realm-google-hangouts-domain"/>
</div>
<div id="zoom_help_text" class="zoom_credentials">
<p>
Note: Zoom support is experimental. In particular, Zulip currently supports having
only one active Zoom meeting at a time.
</p>
</div>
<div id="zoom_user_id" class="zoom_credentials">
<label>{{t 'Zoom user ID (required)' }}:</label>
<label>{{t 'Zoom user ID or email address (required)' }}:</label>
<input type="text" id="id_realm_zoom_user_id"
name="realm_zoom_user_id"
class="admin-realm-zoom-field"/>

View File

@@ -414,14 +414,14 @@ class RealmTest(ZulipTestCase):
req = {"video_chat_provider": ujson.dumps("Zoom")}
result = self.client_patch('/json/realm', req)
self.assert_json_error(result, "Invalid user ID: user ID cannot be empty")
self.assert_json_error(result, "User ID cannot be empty")
req = {
"video_chat_provider": ujson.dumps("Zoom"),
"zoom_user_id": ujson.dumps("example@example.com")
}
result = self.client_patch('/json/realm', req)
self.assert_json_error(result, "Invalid API key: API key cannot be empty")
self.assert_json_error(result, "API key cannot be empty")
req = {
"video_chat_provider": ujson.dumps("Zoom"),
@@ -429,7 +429,7 @@ class RealmTest(ZulipTestCase):
"zoom_api_key": ujson.dumps("abc")
}
result = self.client_patch('/json/realm', req)
self.assert_json_error(result, "Invalid API secret: API secret cannot be empty")
self.assert_json_error(result, "API secret cannot be empty")
with mock.patch("zerver.views.realm.request_zoom_video_call_url", return_value=None):
req = {

View File

@@ -87,11 +87,11 @@ def update_realm(
return json_error(_('Invalid domain: {}').format(e.messages[0]))
if video_chat_provider == "Zoom":
if not zoom_user_id:
return json_error(_('Invalid user ID: user ID cannot be empty'))
return json_error(_('User ID cannot be empty'))
if not zoom_api_key:
return json_error(_('Invalid API key: API key cannot be empty'))
return json_error(_('API key cannot be empty'))
if not zoom_api_secret:
return json_error(_('Invalid API secret: API secret cannot be empty'))
return json_error(_('API secret cannot be empty'))
# Technically, we could call some other API endpoint that
# doesn't create a video call link, but this is a nicer
# end-to-end test, since it verifies that the Zoom API user's