From d69a165b052a5298565e210e171dd659f0576b88 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 24 Apr 2014 09:51:21 +0200 Subject: [PATCH] Use strict mode. Emit an event when the connection drops. --- converse.js | 3 + docs/CHANGES.rst | 9 +- docs/doctrees/index.doctree | Bin 221150 -> 223817 bytes docs/html/_sources/index.txt | 138 ++++++++++------------------- docs/html/index.html | 164 ++++++++++++++++------------------- docs/html/searchindex.js | 2 +- docs/source/index.rst | 138 ++++++++++------------------- 7 files changed, 176 insertions(+), 278 deletions(-) diff --git a/converse.js b/converse.js index 76cef861a..aec7b9bf7 100644 --- a/converse.js +++ b/converse.js @@ -5,6 +5,7 @@ * Copyright (c) 2012, Jan-Carel Brand * Dual licensed under the MIT and GPL Licenses */ +"use strict"; // AMD/global registrations (function (root, factory) { @@ -340,6 +341,7 @@ this.reconnect = function () { converse.giveFeedback(__('Reconnecting'), 'error'); + converse.emit('onReconnect'); if (!converse.prebind) { this.connection.connect( this.connection.jid, @@ -3219,6 +3221,7 @@ }, getPrettyStatus: function (stat) { + var pretty_status; if (stat === 'chat') { pretty_status = __('online'); } else if (stat === 'dnd') { diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst index b7f31719b..90dd25334 100644 --- a/docs/CHANGES.rst +++ b/docs/CHANGES.rst @@ -4,16 +4,17 @@ Changelog 0.8 (Unreleased) ---------------- +.. note:: Converse.js is now relicensed under the `Mozilla Public License http://www.mozilla.org/MPL/2.0/`_. + * Chat boxes and rooms can now be resized vertically. [jcbrand] * Upgraded many dependencies to their latest versions. [jcbrand] * Add new configuration setting `forward_messages `_ - Message forwarding was before default behavior but is now optional (and disabled by default). - [jcbrand] + Message forwarding was before default behavior but is now optional (and disabled by default). [jcbrand] +* Newly opened chat boxes always appear immediately left of the controlbox. * #71 Chat boxes and rooms can be minimized. [jcbrand] * #130 Fixed bootstrap conflicts. [jcbrand] * #132 Support for `XEP-0280: Message Carbons `_. - Configured via `enable_message_carbons `_ - [hejazee] + Configured via `enable_message_carbons `_ [hejazee] 0.7.4 (2014-03-05) ------------------ diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree index b16dda44903b477a712fa7bfc68f3f64774ae519..3f8605008b818cb9ad6532f6e528768e65a1b823 100644 GIT binary patch literal 223817 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

#(`23)yZLf>mE^k)2PyuFp!uIlPP8f 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 C_@jsb delta 70631 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 by Michael Weibel and the folks from Candy chat. @@ -418,7 +418,7 @@ Converse.js directly depends and which will therefore be loaded in the browser. If you are curious to know what the different dependencies are: -* Development dependencies: +* Development dependencies: Take a look at whats under the *devDependencies* key in `package.json `_. @@ -647,7 +647,7 @@ Troubleshooting Conflicts with other Javascript libraries ========================================= -Problem: +Problem: --------- You are using other Javascript libraries (like JQuery plugins), and @@ -668,7 +668,7 @@ rules apply if its something else. The bundled and minified default build of converse.js, ``converse.min.js`` includes within it all of converse.js's dependencies, which include for example *jQuery*. -If you are having conflicts where attributes or methods aren't available +If you are having conflicts where attributes or methods aren't available on the jQuery object, you are probably loading ``converse.min.js`` (which includes jQuery) as well as your own jQuery version separately. @@ -721,7 +721,7 @@ Concerning events, the following methods are available: Event Methods ============= -* **on(eventName, callback)**: +* **on(eventName, callback)**: Calling the ``on`` method allows you to subscribe to an event. Every time the event fires, the callback method specified by ``callback`` will be @@ -745,7 +745,7 @@ Event Methods * ``eventName`` is the event name as a string. * ``callback`` is the callback method to be called when the event is emitted. - + For example:: converse.once('onMessage', function (messageXML) { ... }); @@ -765,91 +765,39 @@ Event Types Here are the different events that are emitted: -* **onInitialized** - - ``converse.on('onInitialized', function () { ... });`` - - Triggered once converse.js has been initialized. - -* **onReady** - - Triggered after a connection has been established and converse.js has - got all its ducks in a row. - - ``converse.on('onReady', function () { ... });`` - -* **onMessage** - - ``converse.on('onMessage', function (messageXML) { ... });`` - - Triggered when a message is received. - -* **onMessageSend** - - ``converse.on('onMessageSend', function (messageText) { ... });`` - - Triggered when a message will be sent out. - -* **onRoster** - - ``converse.on('onRoster', function (items) { ... });`` - - Triggered when the roster is updated. - -* **onRosterViewUpdated** - - ``converse.on('onRosterViewUpdated', function (items) { ... });`` - - Triggered whenever the roster view (i.e. the rendered HTML) has changed. - -* **onChatBoxClosed** - - ``converse.on('onChatBoxClosed', function (chatbox) { ... });`` - - Triggered when a chat box has been closed. - -* **onChatBoxFocused** - - ``converse.on('onChatBoxFocused', function (chatbox) { ... });`` - - Triggered when the focus has been moved to a chat box. - -* **onChatBoxOpened** - - ``converse.on('onChatBoxOpened', function (chatbox) { ... });`` - - Triggered when a chat box has been opened. - -* **onChatBoxToggled** - - ``converse.on('onChatBoxToggled', function (chatbox) { ... });`` - - Triggered when a chat box has been minimized or maximized. - -* **onStatusChanged** - - ``converse.on('onStatusChanged', function (status) { ... });`` - - Triggered when own chat status has changed. - -* **onStatusMessageChanged** - - ``converse.on('onStatusMessageChanged', function (message) { ... });`` - - Triggered when own custom status message has changed. - -* **onBuddyStatusChanged** - - ``converse.on('onBuddyStatusChanged', function (buddy, status) { ... });`` - - Triggered when a chat buddy's chat status has changed. - -* **onBuddyStatusMessageChanged** - - ``converse.on('onBuddyStatusMessageChanged', function (buddy, messageText) { ... });`` - - Triggered when a chat buddy's custom status message has changed. - ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| Event Type | When is it triggered? | Example | ++==================================+===================================================================================================+=========================================================================================+ +| **onInitialized** | Once converse.js has been initialized. | ``converse.on('onInitialized', function () { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onReady** | After connection has been established and converse.js has got all its ducks in a row. | ``converse.on('onReady', function () { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onReconnect** | After the connection has dropped. Converse.js will attempt to reconnect when not in prebind mode. | ``converse.on('onReconnect', function () { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onMessage** | When a message is received. | ``converse.on('onMessage', function (messageXML) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onMessageSend** | When a message will be sent out. | ``converse.on('onMessageSend', function (messageText) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onRoster** | When the roster is updated. | ``converse.on('onRoster', function (items) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onRosterViewUpdated** | Whenever the roster view (i.e. the rendered HTML) has changed. | ``converse.on('onRosterViewUpdated', function (items) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxOpened** | When a chat box has been opened. | ``converse.on('onChatBoxOpened', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxClosed** | When a chat box has been closed. | ``converse.on('onChatBoxClosed', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxFocused** | When the focus has been moved to a chat box. | ``converse.on('onChatBoxFocused', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxToggled** | When a chat box has been minimized or maximized. | ``converse.on('onChatBoxToggled', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onStatusChanged** | When own chat status has changed. | ``converse.on('onStatusChanged', function (status) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onStatusMessageChanged** | When own custom status message has changed. | ``converse.on('onStatusMessageChanged', function (message) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onBuddyStatusChanged** | When a chat buddy's chat status has changed. | ``converse.on('onBuddyStatusChanged', function (buddy, status) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onBuddyStatusMessageChanged** | When a chat buddy's custom status message has changed. | ``converse.on('onBuddyStatusMessageChanged', function (buddy, messageText) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ ============= Configuration @@ -954,7 +902,7 @@ for each page load. While more inconvenient, this is a much more secure option. This setting can only be used together with ``allow_otr = true``. -.. Note :: +.. Note :: A browser window's session storage is accessible by all javascript that is served from the same domain. So if there is malicious javascript served by the same server (or somehow injected via an attacker), then they will be able @@ -982,7 +930,7 @@ Default = ``false`` Allow the prebind tokens, RID (request ID) and SID (session ID), to be exposed globally via the API. This allows other scripts served on the same page to use -these values. +these values. *Beware*: a malicious script could use these tokens to assume your identity and inject fake chat messages. @@ -1161,6 +1109,10 @@ Used only in conjunction with ``xhr_user_search``. This is the URL to which an AJAX GET request will be made to fetch user data from your remote server. The query string will be included in the request with ``q`` as its key. +The calendar can be configured through a `data-pat-calendar` attribute. +The available options are: + + .. _`read more about require.js's optimizer here`: http://requirejs.org/docs/optimization.html .. _`HTTP`: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol .. _`XMPP`: https://en.wikipedia.org/wiki/Xmpp diff --git a/docs/html/index.html b/docs/html/index.html index 9942e8115..66c9d5184 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -733,93 +733,81 @@ exactly once.

Event TypesΒΆ

Here are the different events that are emitted:

-
    -
  • onInitialized

    -
    -

    converse.on('onInitialized', function () { ... });

    -

    Triggered once converse.js has been initialized.

    -
    -
  • -
  • onReady

    -
    -

    Triggered after a connection has been established and converse.js has -got all its ducks in a row.

    -

    converse.on('onReady', function () { ... });

    -
    -
  • -
  • onMessage

    -
    -

    converse.on('onMessage', function (messageXML) { ... });

    -

    Triggered when a message is received.

    -
    -
  • -
  • onMessageSend

    -
    -

    converse.on('onMessageSend', function (messageText) { ... });

    -

    Triggered when a message will be sent out.

    -
    -
  • -
  • onRoster

    -
    -

    converse.on('onRoster', function (items) { ... });

    -

    Triggered when the roster is updated.

    -
    -
  • -
  • onRosterViewUpdated

    -
    -

    converse.on('onRosterViewUpdated', function (items) { ... });

    -

    Triggered whenever the roster view (i.e. the rendered HTML) has changed.

    -
    -
  • -
  • onChatBoxClosed

    -
    -

    converse.on('onChatBoxClosed', function (chatbox) { ... });

    -

    Triggered when a chat box has been closed.

    -
    -
  • -
  • onChatBoxFocused

    -
    -

    converse.on('onChatBoxFocused', function (chatbox) { ... });

    -

    Triggered when the focus has been moved to a chat box.

    -
    -
  • -
  • onChatBoxOpened

    -
    -

    converse.on('onChatBoxOpened', function (chatbox) { ... });

    -

    Triggered when a chat box has been opened.

    -
    -
  • -
  • onChatBoxToggled

    -
    -

    converse.on('onChatBoxToggled', function (chatbox) { ... });

    -

    Triggered when a chat box has been minimized or maximized.

    -
    -
  • -
  • onStatusChanged

    -
    -

    converse.on('onStatusChanged', function (status) { ... });

    -

    Triggered when own chat status has changed.

    -
    -
  • -
  • onStatusMessageChanged

    -
    -

    converse.on('onStatusMessageChanged', function (message) { ... });

    -

    Triggered when own custom status message has changed.

    -
    -
  • -
  • onBuddyStatusChanged

    -
    -

    converse.on('onBuddyStatusChanged', function (buddy, status) { ... });

    -

    Triggered when a chat buddy’s chat status has changed.

    -
    -
  • -
  • onBuddyStatusMessageChanged

    -
    -

    converse.on('onBuddyStatusMessageChanged', function (buddy, messageText) { ... });

    -

    Triggered when a chat buddy’s custom status message has changed.

    -
    -
  • -
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Event TypeWhen is it triggered?Example
onInitializedOnce converse.js has been initialized.converse.on('onInitialized', function () { ... });
onReadyAfter connection has been established and converse.js has got all its ducks in a row.converse.on('onReady', function () { ... });
onReconnectAfter the connection has dropped. Converse.js will attempt to reconnect when not in prebind mode.converse.on('onReconnect', function () { ... });
onMessageWhen a message is received.converse.on('onMessage', function (messageXML) { ... });
onMessageSendWhen a message will be sent out.converse.on('onMessageSend', function (messageText) { ... });
onRosterWhen the roster is updated.converse.on('onRoster', function (items) { ... });
onRosterViewUpdatedWhenever the roster view (i.e. the rendered HTML) has changed.converse.on('onRosterViewUpdated', function (items) { ... });
onChatBoxOpenedWhen a chat box has been opened.converse.on('onChatBoxOpened', function (chatbox) { ... });
onChatBoxClosedWhen a chat box has been closed.converse.on('onChatBoxClosed', function (chatbox) { ... });
onChatBoxFocusedWhen the focus has been moved to a chat box.converse.on('onChatBoxFocused', function (chatbox) { ... });
onChatBoxToggledWhen a chat box has been minimized or maximized.converse.on('onChatBoxToggled', function (chatbox) { ... });
onStatusChangedWhen own chat status has changed.converse.on('onStatusChanged', function (status) { ... });
onStatusMessageChangedWhen own custom status message has changed.converse.on('onStatusMessageChanged', function (message) { ... });
onBuddyStatusChangedWhen a chat buddy’s chat status has changed.converse.on('onBuddyStatusChanged', function (buddy, status) { ... });
onBuddyStatusMessageChangedWhen a chat buddy’s custom status message has changed.converse.on('onBuddyStatusMessageChanged', function (buddy, messageText) { ... });
@@ -1053,6 +1041,8 @@ corresponds to a matched user and needs the keys Used only in conjunction with xhr_user_search.

This is the URL to which an AJAX GET request will be made to fetch user data from your remote server. The query string will be included in the request with q as its key.

+

The calendar can be configured through a data-pat-calendar attribute. +The available options are:

diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index 678f34b14..444921516 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,lack:0,webchat:0,screen:0,follow:0,row:0,privat:0,middl:0,depend:0,onmessagesend:0,sensit:0,punjab:0,vcard:0,buddi:0,under:0,sens:0,spec:0,sent:0,global:0,everi:0,string:0,fals:0,myself:0,ident:0,facebook:0,jack:0,veri:0,retriev:0,tri:0,button:0,messagetext:0,list:0,factori:0,"try":0,item:0,sane:0,div:0,refer:0,pleas:0,prevent:0,version:0,xhr_user_search_url:0,almond:0,focu:0,past:0,second:0,possibl:0,pass:0,download:0,further:0,fullnam:0,click:0,folk:0,even:0,index:0,what:0,hide:0,appear:0,section:0,abl:0,access:0,delet:0,use_otr_by_default:0,"new":0,net:0,"public":0,widget:0,themselv:0,messagexml:0,gener:0,here:0,bodi:0,typeerror:0,let:0,modifi:0,valu:0,box:0,great:0,convers:0,mysit:0,ajax:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,repositori:0,danger:0,solut:0,prefer:0,ask:0,href:0,fake:0,auto_list_room:0,instal:0,should:0,establish:0,getsess:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:0,stylesheet:0,call:0,recommend:0,msg:0,type:0,until:0,tightli:0,more:0,peopl:0,notic:0,site:0,particular:0,cach:0,must:0,account:0,word:0,room:0,work:0,uniqu:0,dev:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,duck:0,quickstart:0,give:0,challeng:0,share:0,templat:0,critic:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,thing:0,anoth:0,deniabl:0,write:0,how:0,bosh_serv:0,sid:0,expose_rid_and_sid:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,allow_contact_request:0,multipl:0,underscor:0,data:0,demonstr:0,man:0,opkod:0,"short":0,practic:0,third:0,seriou:0,secur:0,show_controlbox_by_default:0,correspond:0,element:0,caus:0,inform:0,show_only_online_us:0,allow:0,media:0,mechan:0,order:0,talk:0,feedback:0,chatbox:0,xmpp:0,over:0,move:0,becaus:0,through:0,reconnect:0,paramet:0,streamlin:0,snippet:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,better:0,window:0,pend:0,persist:0,hidden:0,main:0,might:0,them:0,anim:0,"return":0,thei:0,python:0,initi:0,onmessag:0,automat:0,instead:0,front:0,now:0,introduct:0,jump:0,name:0,edit:0,troubleshoot:0,revers:0,crypto:0,authent:0,separ:0,xhr_custom_statu:0,ejabberd:0,each:0,debug:0,side:0,mean:0,everyth:0,domain:0,michael:0,individu:0,idea:0,realli:0,"static":0,connect:0,our:0,happen:0,extract:0,event:0,special:0,out:0,variabl:0,shown:0,fraught:0,space:0,jabber:0,proxy_pass:0,develop:0,auto_reconnect:0,content:0,method:0,rel:0,internet:0,got:0,plural:0,correct:0,po2json:0,proxi:0,insid:0,written:0,standard:0,standalon:0,reason:0,put:0,succesfulli:0,afterward:0,xhr_custom_status_url:0,rewriteengin:0,could:0,keep:0,turn:0,perhap:0,imposs:0,first:0,origin:0,softwar:0,directli:0,malici:0,onc:0,hoop:0,lastnam:0,cryptograph:0,number:0,yourself:0,restrict:0,instruct:0,alreadi:0,done:0,submit:0,onchatboxclos:0,owner:0,happi:0,miss:0,suffic:0,differ:0,php:0,script:0,top:0,attack:0,messag:0,attach:0,stori:0,jed:0,privaci:0,"final":0,listen:0,luckili:0,consol:0,option:0,tool:0,specifi:0,part:0,bower:0,exactli:0,than:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,bind:0,someothersit:0,browser:0,pre:0,"function":0,sai:0,forward_messag:0,credenti:0,saa:0,modern:0,ani:0,packag:0,increment:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,callback:0,latter:0,thorough:0,port:0,note:0,also:0,exampl:0,take:0,which:0,singl:0,sure:0,roster:0,unsur:0,previou:0,reach:0,most:0,eavesdropp:0,homepag:0,onchatboxtoggl:0,don:0,use_vcard:0,url:0,request:0,doe:0,runtim:0,determin:0,pars:0,usual:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,page:0,server_nam:0,session:0,protocol:0,longer:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,grunt:0,locat:0,just:0,configur:0,apach:0,stanza:0,haven:0,busi:0,folder:0,local:0,meant:0,get:0,stop:0,soon:0,repo:0,nativ:0,cannot:0,cryptographi:0,deploy:0,requir:0,show_call_button:0,enabl:0,emb:0,mainspec:0,whenev:0,patch:0,remot:0,bad:0,integr:0,contain:0,jshint:0,where:0,view:0,wiki:0,set:0,habit:0,stroph:0,see:0,bare:0,result:0,close:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:0,extend:0,inconveni:0,someth:0,state:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,verifi:0,appreci:0,kei:0,hide_muc_serv:0,javascript:0,conjunct:0,job:0,entir:0,bosh:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":0,carbon:0,cache_otr_kei:0,both:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,simpli:0,within:0,pot:0,solv:0,assum:0,malleabl:0,backend:0,quit:0,enable_message_carbon:0,sucessfulli:0,addition:0,rebuild:0,due:0,been:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,session_kei:0,fire:0,imag:0,xxx:0,rubi:0,convert:0,minifi:0,togeth:0,els:0,i18n:0,otr:0,plausibl:0,those:0,"case":0,multi:0,therefor:0,look:0,servic:0,plugin:0,defin:0,"while":0,abov:0,error:0,howev:0,hightlight:0,have:0,helper:0,demo:0,auto_subscrib:0,non:0,oncallbuttonclick:0,itself:0,incom:0,rid:0,present:0,harsh:0,open:0,minim:0,receiv:0,parti:0,make:0,secreci:0,minif:0,cross:0,same:0,read:0,onconnectfacebook:0,html:0,unexpectedli:0,chatroom:0,document:0,medit:0,conflict:0,complet:0,signon:0,http:0,webserv:0,optim:0,upon:0,someon:0,hand:0,fairli:0,"50kb":0,user:0,uncaught:0,rewriterul:0,xhr_user_search:0,cssmin:0,recent:0,weibel:0,stateless:0,off:0,bewar:0,firstli:0,markup:0,min:0,well:0,object:0,without:0,thought:0,person:0,contact:0,command:0,wherebi:0,thi:0,choos:0,model:0,latest:0,plural_form:0,identifi:0,execut:0,when:0,onstatuschang:0,xep:0,languag:0,web:0,xmlhttprequest:0,expos:0,field:0,extra:0,had:0,onchatboxopen:0,desktop:0,add:0,other:0,chat:0,non_amd:0,versa:0,primit:0,input:0,match:0,build:0,applic:0,format:0,webpag:0,amd:0,nginx:0,traffic:0,know:0,press:0,xss:0,like:0,specif:0,manual:0,server:0,benefit:0,api:0,avatar:0,output:0,perfect:0,manag:0,candi:0,facebookconnect:0,right:0,deal:0,nplural:0,some:0,back:0,drop:0,librari:0,bottom:0,avoid:0,though:0,achiev:0,track:0,allow_otr:0,inject:0,overcom:0,oniniti:0,localhost:0,either:0,maxim:0,plu:0,who:0,run:0,host:0,although:0,post:0,appli:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,unfortun:0,issu:0,stand:0,act:0,client:0,own:0,curiou:0,deploi:0,encod:0,harm:0,onbuddystatusmessagechang:0,empti:0,onreadi:0,wrap:0,chang:0,storag:0,your:0,merg:0,git:0,log:0,wai:0,aren:0,transfer:0,support:0,"long":0,custom:0,avail:0,trigger:0,includ:0,lot:0,suit:0,forward:0,analysi:0,head:0,properli:0,form:0,bundl:0,somehow:0,link:0,translat:0,synonym:0,line:0,inlin:0,"true":0,bug:0,congratul:0,requirej:0,info:0,pull:0,made:0,dirti:0,locale_data:0,reload:0,whether:0,bugfix:0,displai:0,asynchron:0,record:0,below:0,toggl:0,legwork:0,problem:0,emit:0,expect:0,onrosterviewupd:0,featur:0,constant:0,creat:0,movim:0,decrypt:0,doesn:0,msgmerg:0,exist:0,file:0,face:0,check:0,probabl:0,tab:0,encrypt:0,want:0,onrost:0,tip:0,detail:0,gettext:0,"default":0,valid:0,onchatboxfocus:0,rememb:0,varieti:0,test:0,you:0,servernam:0,nice:0,node:0,intend:0,onbuddystatuschang:0,onstatusmessagechang:0,org:0,"class":0,releas:0,consid:0,stai:0,lang:0,"3rd":0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,allow_muc:0,ignor:0,token:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]}) \ No newline at end of file +Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,lack:0,webchat:0,follow:0,row:0,privat:0,typeerror:0,depend:0,sensit:0,punjab:0,cach:0,buddi:0,under:0,sens:0,spec:0,sent:0,global:0,everi:0,string:0,fals:0,multi:0,facebook:0,jack:0,veri:0,retriev:0,tri:0,button:0,messagetext:0,list:0,factori:0,"try":0,item:0,sane:0,div:0,pleas:0,prevent:0,xhr_user_search_url:0,almond:0,focu:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,folk:0,even:0,index:0,what:0,hide:0,appear:0,section:0,abl:0,access:0,delet:0,use_otr_by_default:0,"new":0,net:0,"public":0,widget:0,themselv:0,messagexml:0,gener:0,here:0,bodi:0,middl:0,let:0,modifi:0,valu:0,box:0,great:0,convers:0,mysit:0,reason:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,although:0,danger:0,apach:0,prefer:0,put:0,href:0,fake:0,auto_list_room:0,instal:0,establish:0,getsess:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:0,stylesheet:0,busi:0,call:0,recommend:0,msg:0,type:0,until:0,tightli:0,more:0,peopl:0,line:0,notic:0,particular:0,vcard:0,must:0,account:0,word:0,room:0,work:0,uniqu:0,dev:0,xhr:0,legwork:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,give:0,challeng:0,share:0,templat:0,critic:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,thing:0,anoth:0,deniabl:0,snippet:0,how:0,bosh_serv:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,haven:0,after:0,usabl:0,befor:0,allow_contact_request:0,multipl:0,underscor:0,data:0,demonstr:0,man:0,repo:0,"short":0,attempt:0,practic:0,third:0,seriou:0,secur:0,show_controlbox_by_default:0,correspond:0,element:0,caus:0,inform:0,show_only_online_us:0,allow:0,parti:0,mechan:0,order:0,talk:0,feedback:0,chatbox:0,xmpp:0,over:0,move:0,becaus:0,through:0,reconnect:0,paramet:0,streamlin:0,write:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,better:0,window:0,pend:0,persist:0,hidden:0,main:0,might:0,them:0,anim:0,"return":0,thei:0,python:0,initi:0,onmessag:0,onbuddystatusmessagechang:0,expose_rid_and_sid:0,front:0,now:0,introduct:0,jump:0,name:0,edit:0,troubleshoot:0,revers:0,crypto:0,authent:0,separ:0,xhr_custom_statu:0,ejabberd:0,each:0,debug:0,side:0,mean:0,domain:0,michael:0,individu:0,idea:0,realli:0,"static":0,connect:0,our:0,happen:0,patch:0,extract:0,event:0,special:0,out:0,variabl:0,shown:0,"3rd":0,space:0,miss:0,proxy_pass:0,content:0,rel:0,internet:0,got:0,merg:0,plural:0,correct:0,po2json:0,model:0,proxi:0,insid:0,state:0,standard:0,standalon:0,ajax:0,ask:0,succesfulli:0,afterward:0,xhr_custom_status_url:0,could:0,keep:0,turn:0,perhap:0,imposs:0,first:0,origin:0,softwar:0,directli:0,malici:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,instruct:0,alreadi:0,done:0,"long":0,onchatboxclos:0,owner:0,custom:0,jabber:0,suffic:0,differ:0,script:0,top:0,attack:0,messag:0,attach:0,stori:0,jed:0,privaci:0,"final":0,listen:0,luckili:0,consol:0,option:0,tool:0,specifi:0,part:0,bower:0,exactli:0,than:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,bind:0,someothersit:0,browser:0,pre:0,analysi:0,sai:0,forward_messag:0,credenti:0,saa:0,modern:0,ani:0,packag:0,increment:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,callback:0,latter:0,thorough:0,port:0,note:0,also:0,exampl:0,take:0,which:0,singl:0,therefor:0,sure:0,roster:0,unsur:0,previou:0,reach:0,most:0,eavesdropp:0,rewriterul:0,homepag:0,onchatboxtoggl:0,don:0,use_vcard:0,url:0,request:0,doe:0,runtim:0,determin:0,pars:0,latest:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,server_nam:0,session:0,identifi:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,grunt:0,locat:0,execut:0,configur:0,solut:0,stanza:0,should:0,version:0,folder:0,local:0,meant:0,get:0,stop:0,soon:0,opkod:0,nativ:0,cannot:0,cryptographi:0,requir:0,show_call_button:0,enabl:0,emb:0,mainspec:0,whenev:0,achiev:0,method:0,remot:0,bad:0,integr:0,though:0,contain:0,xep:0,where:0,view:0,wiki:0,set:0,habit:0,stroph:0,see:0,bare:0,result:0,close:0,calendar:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:0,kei:0,inconveni:0,someth:0,written:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,verifi:0,appreci:0,extend:0,screen:0,javascript:0,conjunct:0,job:0,entir:0,bosh:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":0,carbon:0,cache_otr_kei:0,both:0,cor:0,instant:0,shortliv:0,conversej:0,avatar:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,simpli:0,pot:0,onreconnect:0,solv:0,non:0,deploi:0,assum:0,malleabl:0,backend:0,quit:0,enable_message_carbon:0,sucessfulli:0,addition:0,rebuild:0,due:0,been:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,session_kei:0,fire:0,imag:0,xxx:0,rubi:0,convert:0,minifi:0,togeth:0,input:0,i18n:0,otr:0,plausibl:0,present:0,"case":0,myself:0,ident:0,look:0,servic:0,plugin:0,defin:0,"while":0,abov:0,error:0,howev:0,hightlight:0,have:0,helper:0,demo:0,auto_subscrib:0,site:0,oncallbuttonclick:0,itself:0,incom:0,rid:0,develop:0,harsh:0,open:0,minim:0,receiv:0,media:0,make:0,format:0,minif:0,cross:0,same:0,webpag:0,onconnectfacebook:0,html:0,unexpectedli:0,chatroom:0,document:0,medit:0,conflict:0,complet:0,signon:0,http:0,webserv:0,optim:0,upon:0,someon:0,hand:0,fairli:0,"50kb":0,user:0,uncaught:0,php:0,xhr_user_search:0,cssmin:0,recent:0,weibel:0,stateless:0,off:0,bewar:0,choos:0,firstli:0,markup:0,min:0,well:0,without:0,thought:0,person:0,contact:0,command:0,wherebi:0,thi:0,onmessagesend:0,everyth:0,usual:0,plural_form:0,protocol:0,just:0,tip:0,onstatuschang:0,jshint:0,file:0,languag:0,web:0,fraught:0,xmlhttprequest:0,expos:0,field:0,extra:0,had:0,onchatboxopen:0,desktop:0,add:0,valid:0,non_amd:0,versa:0,primit:0,els:0,match:0,build:0,applic:0,nplural:0,secreci:0,read:0,amd:0,nginx:0,traffic:0,know:0,press:0,xss:0,like:0,specif:0,reload:0,manual:0,server:0,benefit:0,api:0,either:0,output:0,perfect:0,page:0,candi:0,facebookconnect:0,right:0,who:0,deal:0,duck:0,some:0,back:0,drop:0,librari:0,bottom:0,avoid:0,deploy:0,rewriteengin:0,track:0,allow_otr:0,inject:0,overcom:0,oniniti:0,localhost:0,refer:0,somehow:0,plu:0,object:0,run:0,host:0,repositori:0,post:0,appli:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,unfortun:0,issu:0,stand:0,act:0,client:0,own:0,curiou:0,within:0,encod:0,harm:0,automat:0,empti:0,onreadi:0,wrap:0,chang:0,storag:0,your:0,manag:0,git:0,log:0,wai:0,aren:0,transfer:0,support:0,submit:0,happi:0,avail:0,trigger:0,includ:0,lot:0,suit:0,forward:0,"function":0,head:0,properli:0,form:0,bundl:0,maxim:0,link:0,translat:0,synonym:0,cryptograph:0,inlin:0,"true":0,bug:0,congratul:0,requirej:0,info:0,pull:0,made:0,dirti:0,locale_data:0,possibl:0,whether:0,bugfix:0,displai:0,asynchron:0,record:0,below:0,those:0,toggl:0,auto_reconnect:0,problem:0,emit:0,expect:0,onrosterviewupd:0,featur:0,constant:0,creat:0,movim:0,decrypt:0,doesn:0,mode:0,msgmerg:0,exist:0,chat:0,face:0,check:0,probabl:0,tab:0,encrypt:0,want:0,onrost:0,pat:0,when:0,detail:0,gettext:0,"default":0,other:0,onchatboxfocus:0,rememb:0,varieti:0,test:0,you:0,servernam:0,nice:0,node:0,intend:0,onbuddystatuschang:0,onstatusmessagechang:0,org:0,"class":0,releas:0,consid:0,hide_muc_serv:0,stai:0,lang:0,longer:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,allow_muc:0,ignor:0,token:0,potenti:0,time:0},objtypes:{},titles:["Quickstart (to get a demo up and running)"],objnames:{},filenames:["index"]}) \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 86e569dbb..626e33237 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -280,7 +280,7 @@ These values are then passed to converse.js's ``initialize`` method. Example code for server-side prebinding --------------------------------------- -* PHP: +* PHP: See `xmpp-prebind-php `_ by Michael Weibel and the folks from Candy chat. @@ -418,7 +418,7 @@ Converse.js directly depends and which will therefore be loaded in the browser. If you are curious to know what the different dependencies are: -* Development dependencies: +* Development dependencies: Take a look at whats under the *devDependencies* key in `package.json `_. @@ -647,7 +647,7 @@ Troubleshooting Conflicts with other Javascript libraries ========================================= -Problem: +Problem: --------- You are using other Javascript libraries (like JQuery plugins), and @@ -668,7 +668,7 @@ rules apply if its something else. The bundled and minified default build of converse.js, ``converse.min.js`` includes within it all of converse.js's dependencies, which include for example *jQuery*. -If you are having conflicts where attributes or methods aren't available +If you are having conflicts where attributes or methods aren't available on the jQuery object, you are probably loading ``converse.min.js`` (which includes jQuery) as well as your own jQuery version separately. @@ -721,7 +721,7 @@ Concerning events, the following methods are available: Event Methods ============= -* **on(eventName, callback)**: +* **on(eventName, callback)**: Calling the ``on`` method allows you to subscribe to an event. Every time the event fires, the callback method specified by ``callback`` will be @@ -745,7 +745,7 @@ Event Methods * ``eventName`` is the event name as a string. * ``callback`` is the callback method to be called when the event is emitted. - + For example:: converse.once('onMessage', function (messageXML) { ... }); @@ -765,91 +765,39 @@ Event Types Here are the different events that are emitted: -* **onInitialized** - - ``converse.on('onInitialized', function () { ... });`` - - Triggered once converse.js has been initialized. - -* **onReady** - - Triggered after a connection has been established and converse.js has - got all its ducks in a row. - - ``converse.on('onReady', function () { ... });`` - -* **onMessage** - - ``converse.on('onMessage', function (messageXML) { ... });`` - - Triggered when a message is received. - -* **onMessageSend** - - ``converse.on('onMessageSend', function (messageText) { ... });`` - - Triggered when a message will be sent out. - -* **onRoster** - - ``converse.on('onRoster', function (items) { ... });`` - - Triggered when the roster is updated. - -* **onRosterViewUpdated** - - ``converse.on('onRosterViewUpdated', function (items) { ... });`` - - Triggered whenever the roster view (i.e. the rendered HTML) has changed. - -* **onChatBoxClosed** - - ``converse.on('onChatBoxClosed', function (chatbox) { ... });`` - - Triggered when a chat box has been closed. - -* **onChatBoxFocused** - - ``converse.on('onChatBoxFocused', function (chatbox) { ... });`` - - Triggered when the focus has been moved to a chat box. - -* **onChatBoxOpened** - - ``converse.on('onChatBoxOpened', function (chatbox) { ... });`` - - Triggered when a chat box has been opened. - -* **onChatBoxToggled** - - ``converse.on('onChatBoxToggled', function (chatbox) { ... });`` - - Triggered when a chat box has been minimized or maximized. - -* **onStatusChanged** - - ``converse.on('onStatusChanged', function (status) { ... });`` - - Triggered when own chat status has changed. - -* **onStatusMessageChanged** - - ``converse.on('onStatusMessageChanged', function (message) { ... });`` - - Triggered when own custom status message has changed. - -* **onBuddyStatusChanged** - - ``converse.on('onBuddyStatusChanged', function (buddy, status) { ... });`` - - Triggered when a chat buddy's chat status has changed. - -* **onBuddyStatusMessageChanged** - - ``converse.on('onBuddyStatusMessageChanged', function (buddy, messageText) { ... });`` - - Triggered when a chat buddy's custom status message has changed. - ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| Event Type | When is it triggered? | Example | ++==================================+===================================================================================================+=========================================================================================+ +| **onInitialized** | Once converse.js has been initialized. | ``converse.on('onInitialized', function () { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onReady** | After connection has been established and converse.js has got all its ducks in a row. | ``converse.on('onReady', function () { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onReconnect** | After the connection has dropped. Converse.js will attempt to reconnect when not in prebind mode. | ``converse.on('onReconnect', function () { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onMessage** | When a message is received. | ``converse.on('onMessage', function (messageXML) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onMessageSend** | When a message will be sent out. | ``converse.on('onMessageSend', function (messageText) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onRoster** | When the roster is updated. | ``converse.on('onRoster', function (items) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onRosterViewUpdated** | Whenever the roster view (i.e. the rendered HTML) has changed. | ``converse.on('onRosterViewUpdated', function (items) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxOpened** | When a chat box has been opened. | ``converse.on('onChatBoxOpened', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxClosed** | When a chat box has been closed. | ``converse.on('onChatBoxClosed', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxFocused** | When the focus has been moved to a chat box. | ``converse.on('onChatBoxFocused', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onChatBoxToggled** | When a chat box has been minimized or maximized. | ``converse.on('onChatBoxToggled', function (chatbox) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onStatusChanged** | When own chat status has changed. | ``converse.on('onStatusChanged', function (status) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onStatusMessageChanged** | When own custom status message has changed. | ``converse.on('onStatusMessageChanged', function (message) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onBuddyStatusChanged** | When a chat buddy's chat status has changed. | ``converse.on('onBuddyStatusChanged', function (buddy, status) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ +| **onBuddyStatusMessageChanged** | When a chat buddy's custom status message has changed. | ``converse.on('onBuddyStatusMessageChanged', function (buddy, messageText) { ... });`` | ++----------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+ ============= Configuration @@ -954,7 +902,7 @@ for each page load. While more inconvenient, this is a much more secure option. This setting can only be used together with ``allow_otr = true``. -.. Note :: +.. Note :: A browser window's session storage is accessible by all javascript that is served from the same domain. So if there is malicious javascript served by the same server (or somehow injected via an attacker), then they will be able @@ -982,7 +930,7 @@ Default = ``false`` Allow the prebind tokens, RID (request ID) and SID (session ID), to be exposed globally via the API. This allows other scripts served on the same page to use -these values. +these values. *Beware*: a malicious script could use these tokens to assume your identity and inject fake chat messages. @@ -1161,6 +1109,10 @@ Used only in conjunction with ``xhr_user_search``. This is the URL to which an AJAX GET request will be made to fetch user data from your remote server. The query string will be included in the request with ``q`` as its key. +The calendar can be configured through a `data-pat-calendar` attribute. +The available options are: + + .. _`read more about require.js's optimizer here`: http://requirejs.org/docs/optimization.html .. _`HTTP`: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol .. _`XMPP`: https://en.wikipedia.org/wiki/Xmpp