mirror of https://github.com/zulip/zulip.git
Move favicon-related functions to favicon.js
util.reset_favicon -> favicon.reset util.set_favicon -> favicon.set (imported from commit 250848ec5dc7ac58649197c8cc4b7b4e7b19f25c)
This commit is contained in:
parent
77e7947f61
commit
7fce920522
|
@ -0,0 +1,35 @@
|
|||
var favicon = (function () {
|
||||
|
||||
var exports = {};
|
||||
|
||||
var favicon_selector = 'link[rel="shortcut icon"]';
|
||||
|
||||
// We need to reset the favicon after changing the
|
||||
// window.location.hash or Firefox will drop the favicon. See
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=519028
|
||||
exports.reset = function () {
|
||||
$(favicon_selector).detach().appendTo('head');
|
||||
};
|
||||
|
||||
exports.set = function (url) {
|
||||
if ($.browser.webkit) {
|
||||
// Works in Chrome 22 at least.
|
||||
// Doesn't work in Firefox 10.
|
||||
$(favicon_selector).attr('href', url);
|
||||
} else {
|
||||
// Delete and re-create the node.
|
||||
// May cause excessive work by the browser
|
||||
// in re-rendering the page (see #882).
|
||||
$(favicon_selector).remove();
|
||||
$('head').append($('<link>')
|
||||
.attr('rel', 'shortcut icon')
|
||||
.attr('href', url));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return exports;
|
||||
}());
|
||||
if (typeof module !== 'undefined') {
|
||||
module.exports = favicon;
|
||||
}
|
|
@ -49,7 +49,7 @@ exports.changehash = function (newhash) {
|
|||
}
|
||||
$(document).trigger($.Event('hashchange.zulip'));
|
||||
set_hash(newhash);
|
||||
util.reset_favicon();
|
||||
favicon.reset();
|
||||
};
|
||||
|
||||
// Encodes an operator list into the
|
||||
|
|
|
@ -143,7 +143,7 @@ exports.redraw_title = function () {
|
|||
} else {
|
||||
current_favicon = previous_favicon = '/static/favicon.ico?v=2';
|
||||
}
|
||||
util.set_favicon(current_favicon);
|
||||
favicon.set(current_favicon);
|
||||
}
|
||||
|
||||
if (window.bridge !== undefined) {
|
||||
|
@ -158,11 +158,11 @@ function flash_pms() {
|
|||
// a special icon indicating that you have unread PMs.
|
||||
if (unread.get_counts().private_message_count > 0) {
|
||||
if (current_favicon === unread_pms_favicon) {
|
||||
util.set_favicon(previous_favicon);
|
||||
favicon.set(previous_favicon);
|
||||
current_favicon = previous_favicon;
|
||||
previous_favicon = unread_pms_favicon;
|
||||
} else {
|
||||
util.set_favicon(unread_pms_favicon);
|
||||
favicon.set(unread_pms_favicon);
|
||||
previous_favicon = current_favicon;
|
||||
current_favicon = unread_pms_favicon;
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ function flash_pms() {
|
|||
flashing = false;
|
||||
// You have no more unread PMs, so back to only showing the unread
|
||||
// count.
|
||||
util.set_favicon(current_favicon);
|
||||
favicon.set(current_favicon);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,31 +7,6 @@ exports.random_int = function random_int(min, max) {
|
|||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
};
|
||||
|
||||
var favicon_selector = 'link[rel="shortcut icon"]';
|
||||
|
||||
// We need to reset the favicon after changing the
|
||||
// window.location.hash or Firefox will drop the favicon. See
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=519028
|
||||
exports.reset_favicon = function () {
|
||||
$(favicon_selector).detach().appendTo('head');
|
||||
};
|
||||
|
||||
exports.set_favicon = function (url) {
|
||||
if ($.browser.webkit) {
|
||||
// Works in Chrome 22 at least.
|
||||
// Doesn't work in Firefox 10.
|
||||
$(favicon_selector).attr('href', url);
|
||||
} else {
|
||||
// Delete and re-create the node.
|
||||
// May cause excessive work by the browser
|
||||
// in re-rendering the page (see #882).
|
||||
$(favicon_selector).remove();
|
||||
$('head').append($('<link>')
|
||||
.attr('rel', 'shortcut icon')
|
||||
.attr('href', url));
|
||||
}
|
||||
};
|
||||
|
||||
// Like C++'s std::lower_bound. Returns the first index at which
|
||||
// `value` could be inserted without changing the ordering. Assumes
|
||||
// the array is sorted.
|
||||
|
|
|
@ -28,7 +28,7 @@ var globals =
|
|||
+ ' message_edit tab_bar emoji popovers navigate people settings alert_words_ui message_store'
|
||||
+ ' avatar feature_flags search_suggestion referral stream_color Dict'
|
||||
+ ' Filter summary admin stream_data muting WinChan muting_ui Socket channel'
|
||||
+ ' message_flags bot_data loading'
|
||||
+ ' message_flags bot_data loading favicon'
|
||||
|
||||
// colorspace.js
|
||||
+ ' colorspace'
|
||||
|
|
|
@ -550,6 +550,7 @@ JS_SPECS = {
|
|||
'js/composebox_typeahead.js',
|
||||
'js/navigate.js',
|
||||
'js/hotkey.js',
|
||||
'js/favicon.js',
|
||||
'js/notifications.js',
|
||||
'js/hashchange.js',
|
||||
'js/invite.js',
|
||||
|
|
Loading…
Reference in New Issue