Mercurial > xmpp-account-manager
annotate nickname.js @ 30:9ba4f8cc32f1
Display the returned error in the title of the spinner.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sun, 23 Dec 2018 17:15:38 +0100 |
parents | 3eed9fe0bd7c |
children | 45bd945c5722 |
rev | line source |
---|---|
0 | 1 'use strict'; |
2 | |
3 function initNickname(connection) { | |
4 const nick_input = document.getElementById('nick'); | |
10
e47b9bd55192
Also use a spinner on nickname get/set.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
7
diff
changeset
|
5 const spinner_img = document.getElementById('nick-spinner'); |
0 | 6 |
7 const iq = $iq({type: 'get'}) | |
8 .c('pubsub', {xmlns: 'http://jabber.org/protocol/pubsub'}) | |
9 .c('items', {node: 'http://jabber.org/protocol/nick'}); | |
10 connection.sendIQ(iq, onNickname, onNicknameRetrievalError.bind(null, 'PubSub query failed.')); | |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
11 displaySpinner(spinner_img); |
0 | 12 |
13 function onNickname(result_iq) | |
14 { | |
15 const item = parseXPath(result_iq, './pubsub:pubsub/pubsub:items/pubsub:item'); | |
16 if (item == null) | |
17 return onNicknameRetrievalError('no item found.'); | |
18 const id = item.getAttributeNS(null, 'id'); | |
19 const nick = parseXPath(item, './nickname:nick'); | |
20 nick_input.value = nick.textContent; | |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
21 hideSpinner(spinner_img); |
0 | 22 } |
23 | |
24 function onNicknameRetrievalError(string) | |
25 { | |
26 console.log('Failed to retrieve nickname: ' + string); | |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
27 hideSpinner(spinner_img); |
0 | 28 } |
29 | |
7
13e8e4ea53c0
Change nickname on blur, remove the button.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
1
diff
changeset
|
30 nick_input.addEventListener('blur', function (evt) { |
0 | 31 const iq = $iq({type: 'set'}) |
32 .c('pubsub', {xmlns: 'http://jabber.org/protocol/pubsub'}) | |
33 .c('publish', {node: 'http://jabber.org/protocol/nick'}) | |
34 .c('item', {id: 'current'}) | |
35 .c('nick', {xmlns: 'http://jabber.org/protocol/nick'}) | |
36 .t(nick_input.value); | |
37 connection.sendIQ(iq, onNicknameChanged, onNicknameChangeError); | |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
38 displaySpinner(spinner_img); |
0 | 39 }); |
40 | |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
41 function onNicknameChanged(result_iq) |
0 | 42 { |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
43 console.log("Nickname successfully changed."); |
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
44 spinnerOk(spinner_img); |
0 | 45 } |
46 | |
47 function onNicknameChangeError(iq) | |
48 { | |
49 console.log("onNicknameChangeError", iq); | |
15
3eed9fe0bd7c
End spinners with either a green ✔ or a red ✘.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
11
diff
changeset
|
50 spinnerError(spinner_img); |
0 | 51 } |
52 } |