mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 12:03:46 +00:00 
			
		
		
		
	js: Convert static/js/user_groups.js to ES6 module.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
		
				
					committed by
					
						 Tim Abbott
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							592cd780f5
						
					
				
				
					commit
					5a68bda15b
				
			| @@ -255,7 +255,6 @@ | |||||||
|                 "upload": false, |                 "upload": false, | ||||||
|                 "upload_widget": false, |                 "upload_widget": false, | ||||||
|                 "user_events": false, |                 "user_events": false, | ||||||
|                 "user_groups": false, |  | ||||||
|                 "poll_widget": false, |                 "poll_widget": false, | ||||||
|                 "widgetize": false, |                 "widgetize": false, | ||||||
|                 "zxcvbn": false |                 "zxcvbn": false | ||||||
|   | |||||||
| @@ -63,7 +63,9 @@ const typing_events = set_global("typing_events", {}); | |||||||
| const ui = set_global("ui", {}); | const ui = set_global("ui", {}); | ||||||
| const unread_ops = set_global("unread_ops", {}); | const unread_ops = set_global("unread_ops", {}); | ||||||
| const user_events = set_global("user_events", {}); | const user_events = set_global("user_events", {}); | ||||||
| const user_groups = set_global("user_groups", {}); | const user_groups = {__esModule: true}; | ||||||
|  |  | ||||||
|  | rewiremock("../../static/js/user_groups").with(user_groups); | ||||||
|  |  | ||||||
| // page_params is highly coupled to dispatching now | // page_params is highly coupled to dispatching now | ||||||
| const page_params = set_global("page_params", { | const page_params = set_global("page_params", { | ||||||
|   | |||||||
| @@ -25,7 +25,6 @@ const markdown_config = zrequire("markdown_config"); | |||||||
| zrequire("hash_util"); | zrequire("hash_util"); | ||||||
| zrequire("message_store"); | zrequire("message_store"); | ||||||
| zrequire("stream_data"); | zrequire("stream_data"); | ||||||
| zrequire("user_groups"); |  | ||||||
|  |  | ||||||
| const markdown = zrequire("markdown"); | const markdown = zrequire("markdown"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -23,11 +23,13 @@ let create_item_handler; | |||||||
| const channel = {__esModule: true}; | const channel = {__esModule: true}; | ||||||
| rewiremock("../../static/js/channel").with(channel); | rewiremock("../../static/js/channel").with(channel); | ||||||
| const typeahead_helper = set_global("typeahead_helper", {}); | const typeahead_helper = set_global("typeahead_helper", {}); | ||||||
| const user_groups = set_global("user_groups", { | const user_groups = { | ||||||
|  |     __esModule: true, | ||||||
|     get_user_group_from_id: noop, |     get_user_group_from_id: noop, | ||||||
|     remove: noop, |     remove: noop, | ||||||
|     add: noop, |     add: noop, | ||||||
| }); | }; | ||||||
|  | rewiremock("../../static/js/user_groups").with(user_groups); | ||||||
| const ui_report = set_global("ui_report", {}); | const ui_report = set_global("ui_report", {}); | ||||||
|  |  | ||||||
| const page_params = set_global("page_params", {}); | const page_params = set_global("page_params", {}); | ||||||
|   | |||||||
| @@ -119,7 +119,6 @@ zrequire("message_view_header"); | |||||||
| zrequire("narrow_state"); | zrequire("narrow_state"); | ||||||
| zrequire("presence"); | zrequire("presence"); | ||||||
| zrequire("search_pill_widget"); | zrequire("search_pill_widget"); | ||||||
| zrequire("user_groups"); |  | ||||||
| zrequire("unread"); | zrequire("unread"); | ||||||
| zrequire("bot_data"); | zrequire("bot_data"); | ||||||
| zrequire("markdown"); | zrequire("markdown"); | ||||||
|   | |||||||
| @@ -18,7 +18,6 @@ import "../fold_dict"; | |||||||
| import "../input_pill"; | import "../input_pill"; | ||||||
| import "../setup"; | import "../setup"; | ||||||
| import "../unread_ops"; | import "../unread_ops"; | ||||||
| import "../user_groups"; |  | ||||||
| import "../unread"; | import "../unread"; | ||||||
| import "../topic_list"; | import "../topic_list"; | ||||||
| import "../pm_list_dom"; | import "../pm_list_dom"; | ||||||
|   | |||||||
| @@ -14,6 +14,7 @@ const compose_pm_pill = require("./compose_pm_pill"); | |||||||
| const people = require("./people"); | const people = require("./people"); | ||||||
| const rows = require("./rows"); | const rows = require("./rows"); | ||||||
| const settings_data = require("./settings_data"); | const settings_data = require("./settings_data"); | ||||||
|  | const user_groups = require("./user_groups"); | ||||||
| const user_pill = require("./user_pill"); | const user_pill = require("./user_pill"); | ||||||
|  |  | ||||||
| //************************************ | //************************************ | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								static/js/global.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								static/js/global.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -126,7 +126,6 @@ declare let unread_ops: any; | |||||||
| declare let upload: any; | declare let upload: any; | ||||||
| declare let upload_widget: any; | declare let upload_widget: any; | ||||||
| declare let user_events: any; | declare let user_events: any; | ||||||
| declare let user_groups: any; |  | ||||||
| declare let widgetize: any; | declare let widgetize: any; | ||||||
|  |  | ||||||
| interface JQuery { | interface JQuery { | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| import * as people from "./people"; | import * as people from "./people"; | ||||||
|  | import * as user_groups from "./user_groups"; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|     This config is in a separate file for partly |     This config is in a separate file for partly | ||||||
|   | |||||||
| @@ -25,6 +25,7 @@ const people = require("./people"); | |||||||
| const rows = require("./rows"); | const rows = require("./rows"); | ||||||
| const settings_config = require("./settings_config"); | const settings_config = require("./settings_config"); | ||||||
| const settings_data = require("./settings_data"); | const settings_data = require("./settings_data"); | ||||||
|  | const user_groups = require("./user_groups"); | ||||||
| const user_status = require("./user_status"); | const user_status = require("./user_status"); | ||||||
| const user_status_ui = require("./user_status_ui"); | const user_status_ui = require("./user_status_ui"); | ||||||
| const util = require("./util"); | const util = require("./util"); | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ import view_code_in_playground from "../templates/view_code_in_playground.hbs"; | |||||||
| import * as people from "./people"; | import * as people from "./people"; | ||||||
| import * as rtl from "./rtl"; | import * as rtl from "./rtl"; | ||||||
| import * as settings_config from "./settings_config"; | import * as settings_config from "./settings_config"; | ||||||
|  | import * as user_groups from "./user_groups"; | ||||||
|  |  | ||||||
| const {parseISO, isValid} = require("date-fns"); | const {parseISO, isValid} = require("date-fns"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ import * as muting_ui from "./muting_ui"; | |||||||
| import * as peer_data from "./peer_data"; | import * as peer_data from "./peer_data"; | ||||||
| import * as people from "./people"; | import * as people from "./people"; | ||||||
| import * as settings_config from "./settings_config"; | import * as settings_config from "./settings_config"; | ||||||
|  | import * as user_groups from "./user_groups"; | ||||||
| import * as user_status from "./user_status"; | import * as user_status from "./user_status"; | ||||||
|  |  | ||||||
| export function dispatch_normal_event(event) { | export function dispatch_normal_event(event) { | ||||||
|   | |||||||
| @@ -8,6 +8,7 @@ const render_confirm_delete_user = require("../templates/confirm_delete_user.hbs | |||||||
| const channel = require("./channel"); | const channel = require("./channel"); | ||||||
| const people = require("./people"); | const people = require("./people"); | ||||||
| const pill_typeahead = require("./pill_typeahead"); | const pill_typeahead = require("./pill_typeahead"); | ||||||
|  | const user_groups = require("./user_groups"); | ||||||
| const user_pill = require("./user_pill"); | const user_pill = require("./user_pill"); | ||||||
|  |  | ||||||
| const meta = { | const meta = { | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ const render_typeahead_list_item = require("../templates/typeahead_list_item.hbs | |||||||
| const people = require("./people"); | const people = require("./people"); | ||||||
| const pm_conversations = require("./pm_conversations"); | const pm_conversations = require("./pm_conversations"); | ||||||
| const settings_data = require("./settings_data"); | const settings_data = require("./settings_data"); | ||||||
|  | const user_groups = require("./user_groups"); | ||||||
| const util = require("./util"); | const util = require("./util"); | ||||||
|  |  | ||||||
| // Returns an array of private message recipients, removing empty elements. | // Returns an array of private message recipients, removing empty elements. | ||||||
|   | |||||||
| @@ -26,6 +26,7 @@ const topic_zoom = require("./topic_zoom"); | |||||||
| const tutorial = require("./tutorial"); | const tutorial = require("./tutorial"); | ||||||
| const typing = require("./typing"); | const typing = require("./typing"); | ||||||
| const unread_ui = require("./unread_ui"); | const unread_ui = require("./unread_ui"); | ||||||
|  | const user_groups = require("./user_groups"); | ||||||
| const user_status = require("./user_status"); | const user_status = require("./user_status"); | ||||||
| const user_status_ui = require("./user_status_ui"); | const user_status_ui = require("./user_status_ui"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,33 +1,31 @@ | |||||||
| "use strict"; | import {FoldDict} from "./fold_dict"; | ||||||
|  |  | ||||||
| const {FoldDict} = require("./fold_dict"); |  | ||||||
|  |  | ||||||
| let user_group_name_dict; | let user_group_name_dict; | ||||||
| let user_group_by_id_dict; | let user_group_by_id_dict; | ||||||
|  |  | ||||||
| // We have an init() function so that our automated tests | // We have an init() function so that our automated tests | ||||||
| // can easily clear data. | // can easily clear data. | ||||||
| exports.init = function () { | export function init() { | ||||||
|     user_group_name_dict = new FoldDict(); |     user_group_name_dict = new FoldDict(); | ||||||
|     user_group_by_id_dict = new Map(); |     user_group_by_id_dict = new Map(); | ||||||
| }; | } | ||||||
|  |  | ||||||
| // WE INITIALIZE DATA STRUCTURES HERE! | // WE INITIALIZE DATA STRUCTURES HERE! | ||||||
| exports.init(); | init(); | ||||||
|  |  | ||||||
| exports.add = function (user_group) { | export function add(user_group) { | ||||||
|     // Reformat the user group members structure to be a set. |     // Reformat the user group members structure to be a set. | ||||||
|     user_group.members = new Set(user_group.members); |     user_group.members = new Set(user_group.members); | ||||||
|     user_group_name_dict.set(user_group.name, user_group); |     user_group_name_dict.set(user_group.name, user_group); | ||||||
|     user_group_by_id_dict.set(user_group.id, user_group); |     user_group_by_id_dict.set(user_group.id, user_group); | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.remove = function (user_group) { | export function remove(user_group) { | ||||||
|     user_group_name_dict.delete(user_group.name); |     user_group_name_dict.delete(user_group.name); | ||||||
|     user_group_by_id_dict.delete(user_group.id); |     user_group_by_id_dict.delete(user_group.id); | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.get_user_group_from_id = function (group_id, suppress_errors) { | export function get_user_group_from_id(group_id, suppress_errors) { | ||||||
|     if (!user_group_by_id_dict.has(group_id)) { |     if (!user_group_by_id_dict.has(group_id)) { | ||||||
|         if (suppress_errors === undefined) { |         if (suppress_errors === undefined) { | ||||||
|             blueslip.error("Unknown group_id in get_user_group_from_id: " + group_id); |             blueslip.error("Unknown group_id in get_user_group_from_id: " + group_id); | ||||||
| @@ -35,10 +33,10 @@ exports.get_user_group_from_id = function (group_id, suppress_errors) { | |||||||
|         return undefined; |         return undefined; | ||||||
|     } |     } | ||||||
|     return user_group_by_id_dict.get(group_id); |     return user_group_by_id_dict.get(group_id); | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.update = function (event) { | export function update(event) { | ||||||
|     const group = exports.get_user_group_from_id(event.group_id); |     const group = get_user_group_from_id(event.group_id); | ||||||
|     if (event.data.name !== undefined) { |     if (event.data.name !== undefined) { | ||||||
|         group.name = event.data.name; |         group.name = event.data.name; | ||||||
|         user_group_name_dict.delete(group.name); |         user_group_name_dict.delete(group.name); | ||||||
| @@ -49,49 +47,47 @@ exports.update = function (event) { | |||||||
|         user_group_name_dict.delete(group.name); |         user_group_name_dict.delete(group.name); | ||||||
|         user_group_name_dict.set(group.name, group); |         user_group_name_dict.set(group.name, group); | ||||||
|     } |     } | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.get_user_group_from_name = function (name) { | export function get_user_group_from_name(name) { | ||||||
|     return user_group_name_dict.get(name); |     return user_group_name_dict.get(name); | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.get_realm_user_groups = function () { | export function get_realm_user_groups() { | ||||||
|     return Array.from(user_group_by_id_dict.values()).sort((a, b) => a.id - b.id); |     return Array.from(user_group_by_id_dict.values()).sort((a, b) => a.id - b.id); | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.is_member_of = function (user_group_id, user_id) { | export function is_member_of(user_group_id, user_id) { | ||||||
|     const user_group = user_group_by_id_dict.get(user_group_id); |     const user_group = user_group_by_id_dict.get(user_group_id); | ||||||
|     if (user_group === undefined) { |     if (user_group === undefined) { | ||||||
|         blueslip.error("Could not find user group with ID " + user_group_id); |         blueslip.error("Could not find user group with ID " + user_group_id); | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|     return user_group.members.has(user_id); |     return user_group.members.has(user_id); | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.add_members = function (user_group_id, user_ids) { | export function add_members(user_group_id, user_ids) { | ||||||
|     const user_group = user_group_by_id_dict.get(user_group_id); |     const user_group = user_group_by_id_dict.get(user_group_id); | ||||||
|  |  | ||||||
|     for (const user_id of user_ids) { |     for (const user_id of user_ids) { | ||||||
|         user_group.members.add(user_id); |         user_group.members.add(user_id); | ||||||
|     } |     } | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.remove_members = function (user_group_id, user_ids) { | export function remove_members(user_group_id, user_ids) { | ||||||
|     const user_group = user_group_by_id_dict.get(user_group_id); |     const user_group = user_group_by_id_dict.get(user_group_id); | ||||||
|  |  | ||||||
|     for (const user_id of user_ids) { |     for (const user_id of user_ids) { | ||||||
|         user_group.members.delete(user_id); |         user_group.members.delete(user_id); | ||||||
|     } |     } | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.initialize = function (params) { | export function initialize(params) { | ||||||
|     for (const user_group of params.realm_user_groups) { |     for (const user_group of params.realm_user_groups) { | ||||||
|         exports.add(user_group); |         add(user_group); | ||||||
|     } |     } | ||||||
| }; | } | ||||||
|  |  | ||||||
| exports.is_user_group = function (item) { | export function is_user_group(item) { | ||||||
|     return item.members !== undefined; |     return item.members !== undefined; | ||||||
| }; | } | ||||||
|  |  | ||||||
| window.user_groups = exports; |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user