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