mirror of https://github.com/zulip/zulip.git
emoji_picker: Export emoji_collection and complete_emoji_catalog.
This commit is contained in:
parent
406806b7df
commit
7beeef9782
|
@ -5,9 +5,9 @@ var exports = {};
|
||||||
// The functionalities for reacting to a message with an emoji
|
// The functionalities for reacting to a message with an emoji
|
||||||
// and composing a message with an emoji share a single widget,
|
// and composing a message with an emoji share a single widget,
|
||||||
// implemented as the emoji_popover.
|
// implemented as the emoji_popover.
|
||||||
|
exports.emoji_collection = {};
|
||||||
|
exports.complete_emoji_catalog = [];
|
||||||
var current_message_emoji_popover_elem;
|
var current_message_emoji_popover_elem;
|
||||||
var emoji_collection = {};
|
|
||||||
var complete_emoji_catalog = [];
|
|
||||||
var emoji_catalog_last_coordinates = {
|
var emoji_catalog_last_coordinates = {
|
||||||
section: 0,
|
section: 0,
|
||||||
index: 0,
|
index: 0,
|
||||||
|
@ -19,13 +19,13 @@ var search_results = [];
|
||||||
var section_head_offsets = [];
|
var section_head_offsets = [];
|
||||||
|
|
||||||
function get_rendered_emoji_categories() {
|
function get_rendered_emoji_categories() {
|
||||||
if (complete_emoji_catalog.length === 0) {
|
if (exports.complete_emoji_catalog.length === 0) {
|
||||||
blueslip.error('emoji_picker: Emoji catalog empty');
|
blueslip.error('emoji_picker: Emoji catalog empty');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var current_emoji_categories = [];
|
var current_emoji_categories = [];
|
||||||
_.each(complete_emoji_catalog, function (category) {
|
_.each(exports.complete_emoji_catalog, function (category) {
|
||||||
current_emoji_categories.push({
|
current_emoji_categories.push({
|
||||||
name: category.name,
|
name: category.name,
|
||||||
icon: category.icon,
|
icon: category.icon,
|
||||||
|
@ -63,14 +63,14 @@ function get_total_sections() {
|
||||||
if (search_is_active) {
|
if (search_is_active) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return complete_emoji_catalog.length;
|
return exports.complete_emoji_catalog.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_max_index(section) {
|
function get_max_index(section) {
|
||||||
if (search_is_active) {
|
if (search_is_active) {
|
||||||
return search_results.length;
|
return search_results.length;
|
||||||
} else if (section >= 0 && section < get_total_sections()) {
|
} else if (section >= 0 && section < get_total_sections()) {
|
||||||
return complete_emoji_catalog[section].emojis.length;
|
return exports.complete_emoji_catalog[section].emojis.length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,56 +97,58 @@ function show_emoji_catalog() {
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.generate_emoji_picker_data = function (realm_emojis) {
|
exports.generate_emoji_picker_data = function (realm_emojis) {
|
||||||
emoji_collection = {};
|
exports.emoji_collection = {};
|
||||||
complete_emoji_catalog = {};
|
exports.complete_emoji_catalog = {};
|
||||||
complete_emoji_catalog.Custom = [];
|
exports.complete_emoji_catalog.Custom = [];
|
||||||
_.each(realm_emojis, function (realm_emoji, realm_emoji_name) {
|
_.each(realm_emojis, function (realm_emoji, realm_emoji_name) {
|
||||||
emoji_collection[realm_emoji_name] = {
|
exports.emoji_collection[realm_emoji_name] = {
|
||||||
name: realm_emoji_name,
|
name: realm_emoji_name,
|
||||||
is_realm_emoji: true,
|
is_realm_emoji: true,
|
||||||
url: realm_emoji.emoji_url,
|
url: realm_emoji.emoji_url,
|
||||||
has_reacted: false,
|
has_reacted: false,
|
||||||
};
|
};
|
||||||
complete_emoji_catalog.Custom.push(emoji_collection[realm_emoji_name]);
|
exports.complete_emoji_catalog.Custom.push(exports.emoji_collection[realm_emoji_name]);
|
||||||
});
|
});
|
||||||
|
|
||||||
_.each(emoji_codes.emoji_catalog, function (codepoints, category) {
|
_.each(emoji_codes.emoji_catalog, function (codepoints, category) {
|
||||||
complete_emoji_catalog[category] = [];
|
exports.complete_emoji_catalog[category] = [];
|
||||||
_.each(codepoints, function (codepoint) {
|
_.each(codepoints, function (codepoint) {
|
||||||
if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) {
|
if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) {
|
||||||
var emoji_name = emoji_codes.codepoint_to_name[codepoint];
|
var emoji_name = emoji_codes.codepoint_to_name[codepoint];
|
||||||
if (!emoji_collection.hasOwnProperty(emoji_name)) {
|
if (!exports.emoji_collection.hasOwnProperty(emoji_name)) {
|
||||||
emoji_collection[emoji_name] = {
|
exports.emoji_collection[emoji_name] = {
|
||||||
name: emoji_name,
|
name: emoji_name,
|
||||||
is_realm_emoji: false,
|
is_realm_emoji: false,
|
||||||
css_class: codepoint,
|
css_class: codepoint,
|
||||||
has_reacted: false,
|
has_reacted: false,
|
||||||
};
|
};
|
||||||
complete_emoji_catalog[category].push(emoji_collection[emoji_name]);
|
exports.complete_emoji_catalog[category].push(
|
||||||
|
exports.emoji_collection[emoji_name]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
complete_emoji_catalog.Popular = [];
|
exports.complete_emoji_catalog.Popular = [];
|
||||||
var frequently_used_emojis = get_frequently_used_emojis();
|
var frequently_used_emojis = get_frequently_used_emojis();
|
||||||
_.each(frequently_used_emojis, function (codepoint) {
|
_.each(frequently_used_emojis, function (codepoint) {
|
||||||
if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) {
|
if (emoji_codes.codepoint_to_name.hasOwnProperty(codepoint)) {
|
||||||
var emoji_name = emoji_codes.codepoint_to_name[codepoint];
|
var emoji_name = emoji_codes.codepoint_to_name[codepoint];
|
||||||
if (emoji_collection.hasOwnProperty(emoji_name)) {
|
if (exports.emoji_collection.hasOwnProperty(emoji_name)) {
|
||||||
complete_emoji_catalog.Popular.push(emoji_collection[emoji_name]);
|
exports.complete_emoji_catalog.Popular.push(exports.emoji_collection[emoji_name]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var categories = get_all_emoji_categories().filter(function (category) {
|
var categories = get_all_emoji_categories().filter(function (category) {
|
||||||
return !!complete_emoji_catalog[category.name];
|
return !!exports.complete_emoji_catalog[category.name];
|
||||||
});
|
});
|
||||||
complete_emoji_catalog = categories.map(function (category) {
|
exports.complete_emoji_catalog = categories.map(function (category) {
|
||||||
return {
|
return {
|
||||||
name: category.name,
|
name: category.name,
|
||||||
icon: category.icon,
|
icon: category.icon,
|
||||||
emojis: complete_emoji_catalog[category.name],
|
emojis: exports.complete_emoji_catalog[category.name],
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -157,13 +159,13 @@ var generate_emoji_picker_content = function (id) {
|
||||||
if (id !== undefined) {
|
if (id !== undefined) {
|
||||||
emojis_used = reactions.get_emojis_used_by_user_for_message_id(id);
|
emojis_used = reactions.get_emojis_used_by_user_for_message_id(id);
|
||||||
}
|
}
|
||||||
_.each(emoji_collection, function (emoji_dict) {
|
_.each(exports.emoji_collection, function (emoji_dict) {
|
||||||
emoji_dict.has_reacted = _.contains(emojis_used, emoji_dict.name);
|
emoji_dict.has_reacted = _.contains(emojis_used, emoji_dict.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
return templates.render('emoji_popover_content', {
|
return templates.render('emoji_popover_content', {
|
||||||
message_id: id,
|
message_id: id,
|
||||||
emoji_categories: complete_emoji_catalog,
|
emoji_categories: exports.complete_emoji_catalog,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -269,7 +271,7 @@ function filter_emojis() {
|
||||||
var message_id = $(".emoji-search-results-container").data("message-id");
|
var message_id = $(".emoji-search-results-container").data("message-id");
|
||||||
var search_results_visible = $(".emoji-search-results-container").is(":visible");
|
var search_results_visible = $(".emoji-search-results-container").is(":visible");
|
||||||
if (query !== "") {
|
if (query !== "") {
|
||||||
var categories = complete_emoji_catalog;
|
var categories = exports.complete_emoji_catalog;
|
||||||
var search_terms = query.split(" ");
|
var search_terms = query.split(" ");
|
||||||
search_results = [];
|
search_results = [];
|
||||||
_.each(categories, function (category) {
|
_.each(categories, function (category) {
|
||||||
|
|
Loading…
Reference in New Issue