Explorar o código

#2280 notify changes to client on bookmark-update (#2287)

* notify changes to client on bookmark-update
* update XEP-115 caps verification string
Bernard Ngandu %!s(int64=4) %!d(string=hai) anos
pai
achega
e49f97472a
Modificáronse 4 ficheiros con 16 adicións e 9 borrados
  1. 2 2
      spec/controlbox.js
  2. 2 2
      spec/muc.js
  3. 5 5
      spec/presence.js
  4. 7 0
      src/headless/converse-bookmarks.js

+ 2 - 2
spec/controlbox.js

@@ -166,7 +166,7 @@ describe("The Controlbox", function () {
                 `<presence xmlns="jabber:client">`+
                     `<show>dnd</show>`+
                     `<priority>0</priority>`+
-                    `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                    `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
                 `</presence>`);
             const first_child = view.el.querySelector('.xmpp-status span:first-child');
             expect(u.hasClass('online', first_child)).toBe(false);
@@ -196,7 +196,7 @@ describe("The Controlbox", function () {
                 `<presence xmlns="jabber:client">`+
                     `<status>I am happy</status>`+
                     `<priority>0</priority>`+
-                    `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                    `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
                 `</presence>`);
 
             const first_child = view.el.querySelector('.xmpp-status span:first-child');

+ 2 - 2
spec/muc.js

@@ -5453,7 +5453,7 @@ describe("Groupchats", function () {
             expect(Strophe.serialize(probe)).toBe(
                 `<presence to="${muc_jid}/ralphm" type="probe" xmlns="jabber:client">`+
                     `<priority>0</priority>`+
-                    `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                    `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
                 `</presence>`);
 
             let presence = u.toStanza(
@@ -5485,7 +5485,7 @@ describe("Groupchats", function () {
             expect(Strophe.serialize(probe)).toBe(
                 `<presence to="${muc_jid}/gonePhising" type="probe" xmlns="jabber:client">`+
                     `<priority>0</priority>`+
-                    `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                    `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
                 `</presence>`);
 
             presence = u.toStanza(

+ 5 - 5
spec/presence.js

@@ -37,7 +37,7 @@ describe("A sent presence stanza", function () {
             `<presence xmlns="jabber:client">`+
                 `<status>Hello world</status>`+
                 `<priority>0</priority>`+
-                `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
             `</presence>`
         );
         _converse.priority = 2;
@@ -47,7 +47,7 @@ describe("A sent presence stanza", function () {
                 `<show>away</show>`+
                 `<status>Going jogging</status>`+
                 `<priority>2</priority>`+
-                `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
             `</presence>`
         );
 
@@ -58,7 +58,7 @@ describe("A sent presence stanza", function () {
                 `<show>dnd</show>`+
                 `<status>Doing taxes</status>`+
                 `<priority>0</priority>`+
-                `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
             `</presence>`
         );
         done();
@@ -88,7 +88,7 @@ describe("A sent presence stanza", function () {
             .toBe(`<presence xmlns="jabber:client">`+
                     `<status>My custom status</status>`+
                     `<priority>0</priority>`+
-                    `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                    `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
                     `</presence>`)
 
         await u.waitUntil(() => modal.el.getAttribute('aria-hidden') === "true");
@@ -105,7 +105,7 @@ describe("A sent presence stanza", function () {
                     `<show>dnd</show>`+
                     `<status>My custom status</status>`+
                     `<priority>0</priority>`+
-                    `<c hash="sha-1" node="https://conversejs.org" ver="Hxbsr5fazs62i+O0GxIXf2OEDNs=" xmlns="http://jabber.org/protocol/caps"/>`+
+                    `<c hash="sha-1" node="https://conversejs.org" ver="PxXfr6uz8ClMWIga0OB/MhKNH/M=" xmlns="http://jabber.org/protocol/caps"/>`+
                 `</presence>`)
         done();
     }));

+ 7 - 0
src/headless/converse-bookmarks.js

@@ -14,6 +14,7 @@ import { _converse, api, converse } from "@converse/headless/converse-core";
 const { Strophe, $iq, sizzle } = converse.env;
 const u = converse.env.utils;
 
+Strophe.addNamespace('BOOKMARKS', 'storage:bookmarks');
 
 converse.plugins.add('converse-bookmarks', {
 
@@ -290,6 +291,12 @@ converse.plugins.add('converse-bookmarks', {
             }
         }
 
+        api.listen.on('addClientFeatures', () => { 
+            if (api.settings.get('allow_bookmarks')) {
+                api.disco.own.features.add(Strophe.NS.BOOKMARKS + '+notify')
+            }
+        })
+
         api.listen.on('clearSession', () => {
             if (_converse.bookmarks !== undefined) {
                 _converse.bookmarks.clearStore({'silent': true});