Mercurial > xmpp-account-manager
comparison mam.js @ 18:3c02cbced2df
Disable default MAM prefs until we received the iq result.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sat, 22 Dec 2018 19:46:16 +0100 |
parents | 07543f7f5e89 |
children | 46660687924b |
comparison
equal
deleted
inserted
replaced
17:07543f7f5e89 | 18:3c02cbced2df |
---|---|
5 const prefs_spinner = document.getElementById('mam-prefs-spinner'); | 5 const prefs_spinner = document.getElementById('mam-prefs-spinner'); |
6 | 6 |
7 const iq = $iq({type: 'get'}) | 7 const iq = $iq({type: 'get'}) |
8 .c('prefs', {xmlns: NS.mam}); | 8 .c('prefs', {xmlns: NS.mam}); |
9 connection.sendIQ(iq, onMAMPrefs, onMAMPrefsError.bind(null, 'query failed.')); | 9 connection.sendIQ(iq, onMAMPrefs, onMAMPrefsError.bind(null, 'query failed.')); |
10 displaySpinner(prefs_spinner); | |
10 | 11 |
11 function onMAMPrefs(result_iq) | 12 function onMAMPrefs(result_iq) |
12 { | 13 { |
13 const prefs = parseXPath(result_iq, './mam:prefs'); | 14 const prefs = parseXPath(result_iq, './mam:prefs'); |
14 if (prefs == null) | 15 if (prefs == null) |
15 return onMAMPrefsError('server error.'); | 16 return onMAMPrefsError('server error.'); |
16 const default_ = prefs.getAttributeNS(null, 'default'); | 17 const default_ = prefs.getAttributeNS(null, 'default'); |
17 prefs_default.value = default_; | 18 prefs_default.value = default_; |
19 prefs_default.disabled = false; | |
20 hideSpinner(prefs_spinner); | |
18 const always = parseXPath(prefs, './mam:always/mam:jid', XPathResult.ORDERED_NODE_ITERATOR_TYPE); | 21 const always = parseXPath(prefs, './mam:always/mam:jid', XPathResult.ORDERED_NODE_ITERATOR_TYPE); |
19 while (true) { | 22 while (true) { |
20 const item = always.iterateNext(); | 23 const item = always.iterateNext(); |
21 if (!item) | 24 if (!item) |
22 break; | 25 break; |
34 } | 37 } |
35 | 38 |
36 function onMAMPrefsError(string) | 39 function onMAMPrefsError(string) |
37 { | 40 { |
38 console.log('Failed to retrieve your message archiving preferences: ' + string); | 41 console.log('Failed to retrieve your message archiving preferences: ' + string); |
42 spinnerError(prefs_spinner); | |
39 } | 43 } |
40 | 44 |
41 prefs_default.addEventListener('change', function (evt) { | 45 prefs_default.addEventListener('change', function (evt) { |
42 const value = evt.target.value; | 46 const value = evt.target.value; |
43 | 47 |