mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 03:11:54 +00:00
@@ -1062,6 +1062,64 @@ function test_with_mock_socket(test_params) {
|
|||||||
preventDefault: noop,
|
preventDefault: noop,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
(function test_stream_name_completed_triggered() {
|
||||||
|
var handler = $(document).get_on_handler('streamname_completed.zulip');
|
||||||
|
|
||||||
|
var data = {
|
||||||
|
stream: {
|
||||||
|
name: 'Denmark',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function test_noop_case(invite_only) {
|
||||||
|
compose_state.set_message_type('stream');
|
||||||
|
data.stream.invite_only = invite_only;
|
||||||
|
handler({}, data);
|
||||||
|
assert.equal($('#compose_private_stream_alert').visible(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
test_noop_case(false);
|
||||||
|
|
||||||
|
$("#compose_private").hide();
|
||||||
|
compose_state.set_message_type('stream');
|
||||||
|
|
||||||
|
var checks = [
|
||||||
|
(function () {
|
||||||
|
var called;
|
||||||
|
templates.render = function (template_name, context) {
|
||||||
|
called = true;
|
||||||
|
assert.equal(template_name, 'compose_private_stream_alert');
|
||||||
|
assert.equal(context.invite_only, true);
|
||||||
|
assert.equal(context.stream_name, 'Denmark');
|
||||||
|
return 'fake-compose_private_stream_alert-template';
|
||||||
|
};
|
||||||
|
return function () { assert(called); };
|
||||||
|
}()),
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
var called;
|
||||||
|
$("#compose_private_stream_alert").append = function (html) {
|
||||||
|
called = true;
|
||||||
|
assert.equal(html, 'fake-compose_private_stream_alert-template');
|
||||||
|
};
|
||||||
|
return function () { assert(called); };
|
||||||
|
}()),
|
||||||
|
];
|
||||||
|
|
||||||
|
data = {
|
||||||
|
stream: {
|
||||||
|
invite_only: true,
|
||||||
|
name: 'Denmark',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
handler({}, data);
|
||||||
|
assert.equal($('#compose_private_stream_alert').visible(), true);
|
||||||
|
|
||||||
|
_.each(checks, function (f) { f(); });
|
||||||
|
|
||||||
|
}());
|
||||||
|
|
||||||
(function test_attach_files_compose_clicked() {
|
(function test_attach_files_compose_clicked() {
|
||||||
var handler = $("#compose")
|
var handler = $("#compose")
|
||||||
.get_on_handler("click", "#attach_files");
|
.get_on_handler("click", "#attach_files");
|
||||||
|
|||||||
@@ -518,6 +518,15 @@ function render(template_name, args) {
|
|||||||
assert.equal(a.text(), "Narrow to here");
|
assert.equal(a.text(), "Narrow to here");
|
||||||
}());
|
}());
|
||||||
|
|
||||||
|
(function compose_private_stream_alert() {
|
||||||
|
var args = {
|
||||||
|
name: 'Demark',
|
||||||
|
invite_only: true,
|
||||||
|
};
|
||||||
|
var html = render('compose_private_stream_alert', args);
|
||||||
|
global.write_handlebars_output("compose_stream_alert", html);
|
||||||
|
}());
|
||||||
|
|
||||||
(function dev_env_email_access() {
|
(function dev_env_email_access() {
|
||||||
var html = render('dev_env_email_access');
|
var html = render('dev_env_email_access');
|
||||||
global.write_handlebars_output("dev_env_email_access", html);
|
global.write_handlebars_output("dev_env_email_access", html);
|
||||||
|
|||||||
@@ -68,6 +68,11 @@ exports.clear_invites = function () {
|
|||||||
$("#compose_invite_users").empty();
|
$("#compose_invite_users").empty();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.clear_private_stream_alert = function () {
|
||||||
|
$("#compose_private_stream_alert").hide();
|
||||||
|
$("#compose_private_stream_alert").empty();
|
||||||
|
};
|
||||||
|
|
||||||
exports.reset_user_acknowledged_all_everyone_flag = function () {
|
exports.reset_user_acknowledged_all_everyone_flag = function () {
|
||||||
user_acknowledged_all_everyone = undefined;
|
user_acknowledged_all_everyone = undefined;
|
||||||
};
|
};
|
||||||
@@ -307,6 +312,7 @@ exports.enter_with_preview_open = function () {
|
|||||||
|
|
||||||
exports.finish = function () {
|
exports.finish = function () {
|
||||||
exports.clear_invites();
|
exports.clear_invites();
|
||||||
|
exports.clear_private_stream_alert();
|
||||||
|
|
||||||
if (! compose.validate()) {
|
if (! compose.validate()) {
|
||||||
return false;
|
return false;
|
||||||
@@ -632,6 +638,39 @@ exports.initialize = function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Show a warning if a private stream is linked
|
||||||
|
$(document).on('streamname_completed.zulip', function (event, data) {
|
||||||
|
if (compose_state.get_message_type() !== 'stream') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data !== undefined && data.stream !== undefined) {
|
||||||
|
var invite_only = data.stream.invite_only;
|
||||||
|
var stream_name = data.stream.name;
|
||||||
|
|
||||||
|
if (invite_only) {
|
||||||
|
var warning_area = $("#compose_private_stream_alert");
|
||||||
|
var context = { stream_name: stream_name, invite_only: invite_only };
|
||||||
|
var new_row = templates.render("compose_private_stream_alert", context);
|
||||||
|
|
||||||
|
warning_area.append(new_row);
|
||||||
|
warning_area.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#compose_private_stream_alert").on('click', '.compose_private_stream_alert_close', function (event) {
|
||||||
|
var stream_alert_row = $(event.target).parents('.compose_private_stream_alert');
|
||||||
|
var stream_alert = $("#compose_private_stream_alert");
|
||||||
|
|
||||||
|
stream_alert_row.remove();
|
||||||
|
|
||||||
|
if (stream_alert.children().length === 0) {
|
||||||
|
stream_alert.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Click event binding for "Attach files" button
|
// Click event binding for "Attach files" button
|
||||||
// Triggers a click on a hidden file input field
|
// Triggers a click on a hidden file input field
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ function clear_box() {
|
|||||||
|
|
||||||
// TODO: Better encapsulate at-mention warnings.
|
// TODO: Better encapsulate at-mention warnings.
|
||||||
compose.clear_all_everyone_warnings();
|
compose.clear_all_everyone_warnings();
|
||||||
|
compose.clear_private_stream_alert();
|
||||||
compose.reset_user_acknowledged_all_everyone_flag();
|
compose.reset_user_acknowledged_all_everyone_flag();
|
||||||
|
|
||||||
exports.clear_textarea();
|
exports.clear_textarea();
|
||||||
|
|||||||
@@ -192,16 +192,19 @@ table.compose_table {
|
|||||||
top: 5px;
|
top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#compose_invite_users {
|
#compose_invite_users,
|
||||||
|
#compose_private_stream_alert {
|
||||||
/* Don't overlap into the compose_close × */
|
/* Don't overlap into the compose_close × */
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.compose_invite_user {
|
.compose_invite_user,
|
||||||
|
.compose_private_stream_alert {
|
||||||
padding: 4px 0px 4px 0px;
|
padding: 4px 0px 4px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.compose_invite_close {
|
.compose_invite_close,
|
||||||
|
.compose_private_stream_alert_close {
|
||||||
display: inline;
|
display: inline;
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
|
|
||||||
@@ -209,7 +212,8 @@ table.compose_table {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.compose-all-everyone-controls,
|
.compose-all-everyone-controls,
|
||||||
.compose_invite_user_controls {
|
.compose_invite_user_controls,
|
||||||
|
.compose_private_stream_alert_controls {
|
||||||
float: right;
|
float: right;
|
||||||
-webkit-transform: translateY(-13%);
|
-webkit-transform: translateY(-13%);
|
||||||
-ms-transform: translateY(-13%);
|
-ms-transform: translateY(-13%);
|
||||||
|
|||||||
6
static/templates/compose_private_stream_alert.handlebars
Normal file
6
static/templates/compose_private_stream_alert.handlebars
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<div class="compose_private_stream_alert" data-stream_name="{{stream_name}}">
|
||||||
|
{{#tr this}}Warning: <strong>__stream_name__</strong> is a private stream.{{/tr}}
|
||||||
|
<div class="compose_private_stream_alert_controls">
|
||||||
|
<button type="button" class="compose_private_stream_alert_close close">×</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -36,6 +36,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="compose_invite_users" class="alert home-error-bar"></div>
|
<div id="compose_invite_users" class="alert home-error-bar"></div>
|
||||||
<div id="compose-all-everyone" class="alert home-error-bar"></div>
|
<div id="compose-all-everyone" class="alert home-error-bar"></div>
|
||||||
|
<div id="compose_private_stream_alert" class="alert home-error-bar"></div>
|
||||||
<div id="out-of-view-notification" class="notification-alert"></div>
|
<div id="out-of-view-notification" class="notification-alert"></div>
|
||||||
<div class="composition-area">
|
<div class="composition-area">
|
||||||
<button type="button" class="close" id='compose_close' title="{{ _('Cancel compose') }} (Esc)">×</button>
|
<button type="button" class="close" id='compose_close' title="{{ _('Cancel compose') }} (Esc)">×</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user