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 b16dda449..3f8605008 100644 Binary files a/docs/doctrees/index.doctree and b/docs/doctrees/index.doctree differ diff --git a/docs/html/_sources/index.txt b/docs/html/_sources/index.txt index 86e569dbb..626e33237 100644 --- a/docs/html/_sources/index.txt +++ b/docs/html/_sources/index.txt @@ -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 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