Use sizzle for tricky selector queries

Specifically involving querying by the 'xmlns' attribute, where I've had issues
in the past.
This commit is contained in:
JC Brand 2016-12-07 19:45:29 +00:00
parent 77f93a6471
commit 4b22c8ba7b
2 changed files with 6 additions and 4 deletions

View File

@ -27,6 +27,7 @@ require.config({
"moment": "node_modules/moment/moment",
"pluggable": "node_modules/pluggable.js/pluggable",
"polyfill": "src/polyfill",
"sizzle": "node_modules/jquery/sizzle/dist/sizzle",
"strophe": "node_modules/strophe.js/src/wrapper",
"strophe-base64": "node_modules/strophe.js/src/base64",
"strophe-bosh": "node_modules/strophe.js/src/bosh",

View File

@ -8,6 +8,7 @@
(function (root, factory) {
define("converse-core", [
"sizzle",
"jquery",
"lodash",
"polyfill",
@ -19,7 +20,7 @@
"backbone.browserStorage",
"backbone.overview",
], factory);
}(this, function ($, _, dummy, utils, moment, Strophe, pluggable) {
}(this, function (sizzle, $, _, dummy, utils, moment, Strophe, pluggable) {
/*
* Cannot use this due to Safari bug.
* See https://github.com/jcbrand/converse.js/issues/196
@ -1094,7 +1095,7 @@
}
converse.connection.send($iq({type: 'result', id: id, from: converse.connection.jid}));
var items = iq.querySelectorAll('query[xmlns="'+Strophe.NS.ROSTER+'"] item');
var items = sizzle('query[xmlns="'+Strophe.NS.ROSTER+'"] item', iq);
_.each(items, this.updateContact.bind(this));
converse.emit('rosterPush', iq);
return true;
@ -1114,7 +1115,7 @@
/* An IQ stanza containing the roster has been received from
* the XMPP server.
*/
var items = iq.querySelectorAll('query[xmlns="'+Strophe.NS.ROSTER+'"] item');
var items = sizzle('query[xmlns="'+Strophe.NS.ROSTER+'"] item', iq);
_.each(items, this.updateContact.bind(this));
converse.emit('roster', iq);
},
@ -1228,7 +1229,7 @@
}
}
return;
} else if (presence.querySelectorAll('x[xmlns="'+Strophe.NS.MUC+'"]').length) {
} else if (sizzle('query[xmlns="'+Strophe.NS.MUC+'"]', presence).length) {
return; // Ignore MUC
}
if (contact && (status_message !== contact.get('status'))) {