From edc578b8b7560ef1607a94f0b25efe077b793021 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 25 Jul 2013 00:09:09 +0200 Subject: [PATCH] Update documentation --- docs/doctrees/environment.pickle | Bin 10910 -> 11010 bytes docs/doctrees/index.doctree | Bin 79647 -> 83097 bytes docs/html/_sources/index.txt | 50 ++++++++++++++++++++++++------- docs/html/index.html | 50 +++++++++++++++++++++++-------- docs/html/objects.inv | Bin 207 -> 254 bytes docs/html/searchindex.js | 2 +- docs/source/index.rst | 50 ++++++++++++++++++++++++------- 7 files changed, 116 insertions(+), 36 deletions(-) diff --git a/docs/doctrees/environment.pickle b/docs/doctrees/environment.pickle index 943a706ee16cda2edd3124ef4891753ee6d69ff2..8ae4af1b57c27971ba25d0b9364caae28cfc3f3f 100644 GIT binary patch literal 11010 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 literal 10910 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%0DGMeUX2L2jBc$z;m9( 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 N??wb?V1U@7{ST@|zV!eA diff --git a/docs/html/_sources/index.txt b/docs/html/_sources/index.txt index 74924667f..d878b5c33 100644 --- a/docs/html/_sources/index.txt +++ b/docs/html/_sources/index.txt @@ -99,6 +99,8 @@ website. This will remove the need for any cross-domain XHR support. Server-side authentication ========================== +.. _`Session Support`: + Pre-binding and Single Session Support -------------------------------------- @@ -110,7 +112,7 @@ Jack Moffitt has a great `blogpost`_ about this and even provides an `example Dj .. Note:: If you want to enable single session support, make sure to pass **prebind: true** - when you call **converse.initialize** (see ./main.js). + when you call **converse.initialize** (see ./index.html). When you authenticate to the XMPP server on your backend, you'll receive two tokens, RID (request ID) and SID (session ID). @@ -153,21 +155,36 @@ connection object. Quickstart (to get a demo up and running) ========================================= -When you download a specific release of *Converse.js*, say for example version 0.3, -there will be two minified files inside the zip file. +When you download a specific release of *Converse.js* there will be two minified files inside the zip file. -For version 0.3 they will be: +* converse.min.js +* converse.min.css -* converse.0.3.min.js -* converse.0.3.min.css - -You can include these two files in your website via the *script* and *link* +You can include these two files inside the ** element of your website via the *script* and *link* tags: :: - - + + + +Then, at the bottom of your page, after the closing ** element, put the +following inline Javascript code: + +:: + + The *index.html* file inside the Converse.js folder serves as a nice usable example of this. @@ -180,7 +197,7 @@ You'll most likely want to implement some kind of single-signon solution for your website, where users authenticate once in your website and then stay logged into their XMPP session upon page reload. -For more info on this, read `Session Support`_. +For more info on this, read: `Pre-binding and Single Session Support`_. You might also want to have more fine-grained control of what gets included in the minified Javascript file. Read `Configuration`_ and `Minification`_ for more info on how to do @@ -198,6 +215,9 @@ on your website. *Converse.js* is passed its configuration settings when you call its *initialize* method. +You'll most likely want to call the *initialize* method in your HTML page. For +an example of how this is done, please see the bottom of the *./index.html* page. + Please refer to the `Configuration variables`_ section below for info on all the available configuration settings. @@ -358,6 +378,14 @@ CSS can be minimized with Yahoo's yuicompressor tool: Translations ============ +.. Note :: + Translations take up a lot of space and will bloat your minified file. + At the time of writing, the difference between *converse.min.js* and + *converse.min.no-locales.js* is about 50KB! Therefore, make sure to only + include those languages that you intend to support and remove from + ./locale/locales.js those which you don't need. Remember to rebuild the + minified file afterwards. + The gettext POT file located in ./locale/converse.pot is the template containing all translations and from which for each language an individual PO file is generated. diff --git a/docs/html/index.html b/docs/html/index.html index 5899f8546..df113a181 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -115,7 +115,7 @@ properly configure and integrate it into your site.

webchat experience and that you have control over the data. The latter being a requirement for many sites dealing with sensitive information.

You’ll need to set up your own XMPP server and in order to have -`Session Support`_ (i.e. single-signon functionality whereby users are authenticated once and stay +Session Support (i.e. single-signon functionality whereby users are authenticated once and stay logged in to XMPP upon page reload) you will also have to add some server-side code.

The What you will need section has more information on all these @@ -128,7 +128,7 @@ requirements.

Converse.js implements XMPP as its messaging protocol, and therefore needs to connect to an XMPP/Jabber server (Jabber is really just a synonym for XMPP).

You can connect to public XMPP servers like jabber.org but if you want to -have `Session Support`_ you’ll have to set up your own XMPP server.

+have Session Support you’ll have to set up your own XMPP server.

You can find a list of public XMPP servers/providers on xmpp.net and a list of servers that you can set up yourself on xmpp.org.

@@ -168,7 +168,7 @@ website. This will remove the need for any cross-domain XHR support.

Server-side authentication

-

Pre-binding and Single Session Support

+

Pre-binding and Single Session Support

It’s possible to enable single-site login, whereby users already authenticated in your website will also automatically be logged in on the chat server, but this will require custom code on your server.

@@ -176,7 +176,7 @@ but this will require custom code on your server.

Note

If you want to enable single session support, make sure to pass prebind: true -when you call converse.initialize (see ./main.js).

+when you call converse.initialize (see ./index.html).

When you authenticate to the XMPP server on your backend, you’ll receive two tokens, RID (request ID) and SID (session ID).

@@ -209,17 +209,30 @@ connection object.

Quickstart (to get a demo up and running)

-

When you download a specific release of Converse.js, say for example version 0.3, -there will be two minified files inside the zip file.

-

For version 0.3 they will be:

+

When you download a specific release of Converse.js there will be two minified files inside the zip file.

    -
  • converse.0.3.min.js
  • -
  • converse.0.3.min.css
  • +
  • converse.min.js
  • +
  • converse.min.css
-

You can include these two files in your website via the script and link +

You can include these two files inside the <head> element of your website via the script and link tags:

-
<link rel="stylesheet" type="text/css" media="screen" href="converse.0.3.min.css">
-<script src="converse.0.3.min.js"></script>
+
<link rel="stylesheet" type="text/css" media="screen" href="converse.min.css">
+<script src="converse.min.js"></script>
+
+

Then, at the bottom of your page, after the closing </body> element, put the +following inline Javascript code:

+
<script>
+    converse.initialize({
+        auto_list_rooms: false,
+        auto_subscribe: false,
+        bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes
+        hide_muc_server: false,
+        i18n: locales.en, // Refer to ./locale/locales.js to see which locales are supported
+        prebind: false,
+        show_controlbox_by_default: true,
+        xhr_user_search: false
+    });
+</script>

The index.html file inside the Converse.js folder serves as a nice usable example of this.

@@ -229,7 +242,7 @@ practical.

You’ll most likely want to implement some kind of single-signon solution for your website, where users authenticate once in your website and then stay logged into their XMPP session upon page reload.

-

For more info on this, read `Session Support`_.

+

For more info on this, read: Pre-binding and Single Session Support.

You might also want to have more fine-grained control of what gets included in the minified Javascript file. Read Configuration and Minification for more info on how to do that.

@@ -241,6 +254,8 @@ you’ll want to configure Converse.js to suit your needs before yo on your website.

Converse.js is passed its configuration settings when you call its initialize method.

+

You’ll most likely want to call the initialize method in your HTML page. For +an example of how this is done, please see the bottom of the ./index.html page.

Please refer to the Configuration variables section below for info on all the available configuration settings.

After you have configured Converse.js, you’ll have to regenerate the minified @@ -357,6 +372,15 @@ manager, NPM.

Translations

+
+

Note

+

Translations take up a lot of space and will bloat your minified file. +At the time of writing, the difference between converse.min.js and +converse.min.no-locales.js is about 50KB! Therefore, make sure to only +include those languages that you intend to support and remove from +./locale/locales.js those which you don’t need. Remember to rebuild the +minified file afterwards.

+

The gettext POT file located in ./locale/converse.pot is the template containing all translations and from which for each language an individual PO file is generated.

diff --git a/docs/html/objects.inv b/docs/html/objects.inv index 1ecadbdeba3ca358a14b2d747712c9f4b3dbd723..d6ed84d7d533c3f1fe46bc218b688bc3a5ce899d 100644 GIT binary patch delta 138 zcmV;50CoS*0saAye1C1u!3x753WmXz5Ohvu)=QP z&-aIluzrnH^wu so;nr@nL)Nva&70<&uw+)aC0TI^nG9tjuC7h`m^@83Vy8Hvj+t diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index 592b7164f..bb4ef6b8d 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,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:0,"new":0,net:0,"public":0,widget:0,gener:0,here:0,valu:0,box:0,convert:0,convers:0,mysit:0,fetch:0,implement:0,via:0,extra:0,apach:0,ask:0,href:0,org:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,write:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,django:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,snippet:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,could:0,success:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,provid:0,remov:0,bridg:0,toward:[],browser:0,pre:0,sai:0,saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,element:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,contact:0,build:0,which:0,singl:0,sure:0,roster:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,just:0,configur:0,solut:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,deploy:0,requir:0,enabl:0,emb:0,method:0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,statu:0,state:0,reus:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,conjunct:[],job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,creat:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,file:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,person:[],exampl:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,firstnam:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,valid:0,input:0,yuicompressor:0,match:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,specif:0,server:0,benefit:0,necessari:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,though:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,obj:[],controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"var":0,"function":0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,"true":0,congratul:0,requirej:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,onconnect:0,exist:0,chat:0,want:0,when:0,detail:0,gettext:0,field:0,other:0,test:0,you:0,nice:0,node:0,releas:0,stai:0,lang:0,longer:0,getjson:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]}) \ No newline at end of file +Search.setIndex({objects:{},terms:{all:0,code:0,partial:0,queri:0,webchat:0,follow:0,middl:0,depend:0,sensit:0,sorri:0,specif:0,those:0,under:0,string:0,fals:0,mechan:0,jack:0,veri:0,list:0,pleas:0,prevent:0,past:0,second:0,pass:0,download:0,further:0,fullnam:0,click:0,even:0,index:0,what:0,hide:0,section:0,current:0,version:[],"new":0,net:0,method:0,widget:0,gener:0,here:0,bodi:0,valu:0,box:0,convert:0,convers:0,mysit:0,fetch:0,implement:0,via:0,extra:0,solut:0,put:0,href:0,succesfulli:0,auto_list_room:0,instal:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,stylesheet:0,call:0,recommend:0,type:0,until:0,tightli:0,more:0,yahoo:0,must:0,room:0,setup:[],work:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,quickstart:0,share:0,templat:0,tag:0,proprietari:0,explor:0,onlin:0,occup:0,end:0,goal:0,snippet:0,how:0,sid:0,instead:0,css:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,befor:0,callback:0,underscor:0,data:0,demonstr:0,man:0,practic:0,bind:0,show_controlbox_by_default:0,element:0,inform:0,order:0,chatbox:0,xmpp:0,over:0,through:0,streamlin:0,write:0,jid:0,directli:0,fit:0,pend:0,hidden:0,therefor:0,might:0,them:0,anim:0,"return":0,thei:0,initi:0,front:0,now:0,introduct:0,name:0,edit:0,authent:0,token:0,ejabberd:0,each:0,side:0,mean:0,domain:0,individu:0,realli:0,legwork:0,connect:0,happen:0,extract:0,special:0,variabl:0,shown:0,space:0,open:0,content:0,rel:0,internet:0,plural:0,factori:0,po2json:0,proxi:0,insid:0,standard:0,standalon:0,ajax:0,ask:0,org:0,afterward:0,could:0,keep:0,yui:0,first:0,origin:0,softwar:0,render:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,restrict:0,alreadi:0,done:0,owner:0,jabber:0,differ:0,script:0,top:0,messag:0,attach:0,attack:0,jed:0,luckili:0,option:0,tool:0,specifi:0,compressor:0,part:0,exactli:0,than:0,serv:0,jump:0,kind:0,bloat:0,provid:0,remov:0,reus:0,toward:[],browser:0,pre:0,sai:[],saa:0,modern:0,ani:0,packag:0,have:0,tabl:0,need:0,moffitt:0,django:0,bosh_service_url:0,prebind:0,min:0,latter:0,note:0,also:0,exampl:0,build:0,which:0,singl:0,sure:0,roster:0,track:0,object:0,most:0,deploi:0,homepag:0,"class":0,don:0,url:0,request:0,face:0,runtim:0,xdomainrequest:0,show:0,german:0,text:0,session:0,fine:0,find:0,onli:0,locat:0,firstnam:0,configur:0,apach:0,should:0,folder:0,local:0,meant:0,get:0,opkod:0,cannot:0,deploy:0,requir:0,enabl:0,emb:0,"public":0,reload:0,integr:0,contain:0,where:0,set:0,stroph:0,see:0,close:0,statu:0,state:0,bridg:0,between:0,experi:0,hide_muc_serv:0,attribut:0,kei:0,screen:0,javascript:0,conjunct:[],job:0,bosh:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,grain:0,mani:0,login:0,com:0,load:0,instanti:0,pot:0,backend:0,onconnect:0,rebuild:0,json:0,much:0,besid:0,subscrib:0,msgmerg:0,great:0,minifi:0,togeth:0,i18n:0,present:0,multi:0,main:0,servic:0,plugin:0,defin:0,chat:0,helper:0,demo:0,auto_subscrib:0,site:0,rid:0,minim:0,receiv:0,media:0,make:0,minif:0,cross:0,same:0,html:0,chatroom:0,signon:0,http:0,webserv:0,optim:0,upon:0,hand:0,"50kb":0,user:0,xhr_user_search:0,recent:0,stateless:0,markup:0,person:[],contact:0,command:0,wherebi:0,thi:0,choos:0,usual:0,plural_form:0,protocol:0,just:0,languag:0,web:0,xmlhttprequest:0,had:0,add:0,other:0,input:0,yuicompressor:0,match:0,take:0,applic:0,format:0,read:0,nginx:0,traffic:0,xss:0,like:0,success:0,server:0,benefit:0,necessari:0,either:0,page:0,deal:0,nplural:0,some:0,back:0,librari:0,bottom:0,though:0,overcom:0,refer:0,run:0,host:0,panel:0,src:0,about:0,obj:[],controlbox:0,unfortun:0,act:0,own:0,encod:0,automat:0,wrap:0,your:0,manag:0,log:0,wai:0,transfer:0,support:0,custom:0,avail:0,start:[],includ:0,lot:0,suit:0,"var":0,"function":0,head:0,properli:0,form:0,bundl:0,link:0,translat:0,synonym:0,inlin:0,"true":0,congratul:0,longer:0,info:0,made:0,locale_data:0,possibl:0,"default":0,below:0,toggl:0,otherwis:0,problem:0,expect:0,featur:0,creat:0,"100kb":[],exist:0,file:0,want:0,when:0,detail:0,gettext:0,field:0,valid:0,rememb:0,test:0,you:0,nice:0,node:0,intend:0,releas:0,stai:0,lang:0,requirej:0,getjson:0,time:0},objtypes:{},titles:["Introduction"],objnames:{},filenames:["index"]}) \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 74924667f..d878b5c33 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -99,6 +99,8 @@ website. This will remove the need for any cross-domain XHR support. Server-side authentication ========================== +.. _`Session Support`: + Pre-binding and Single Session Support -------------------------------------- @@ -110,7 +112,7 @@ Jack Moffitt has a great `blogpost`_ about this and even provides an `example Dj .. Note:: If you want to enable single session support, make sure to pass **prebind: true** - when you call **converse.initialize** (see ./main.js). + when you call **converse.initialize** (see ./index.html). When you authenticate to the XMPP server on your backend, you'll receive two tokens, RID (request ID) and SID (session ID). @@ -153,21 +155,36 @@ connection object. Quickstart (to get a demo up and running) ========================================= -When you download a specific release of *Converse.js*, say for example version 0.3, -there will be two minified files inside the zip file. +When you download a specific release of *Converse.js* there will be two minified files inside the zip file. -For version 0.3 they will be: +* converse.min.js +* converse.min.css -* converse.0.3.min.js -* converse.0.3.min.css - -You can include these two files in your website via the *script* and *link* +You can include these two files inside the ** element of your website via the *script* and *link* tags: :: - - + + + +Then, at the bottom of your page, after the closing ** element, put the +following inline Javascript code: + +:: + + The *index.html* file inside the Converse.js folder serves as a nice usable example of this. @@ -180,7 +197,7 @@ You'll most likely want to implement some kind of single-signon solution for your website, where users authenticate once in your website and then stay logged into their XMPP session upon page reload. -For more info on this, read `Session Support`_. +For more info on this, read: `Pre-binding and Single Session Support`_. You might also want to have more fine-grained control of what gets included in the minified Javascript file. Read `Configuration`_ and `Minification`_ for more info on how to do @@ -198,6 +215,9 @@ on your website. *Converse.js* is passed its configuration settings when you call its *initialize* method. +You'll most likely want to call the *initialize* method in your HTML page. For +an example of how this is done, please see the bottom of the *./index.html* page. + Please refer to the `Configuration variables`_ section below for info on all the available configuration settings. @@ -358,6 +378,14 @@ CSS can be minimized with Yahoo's yuicompressor tool: Translations ============ +.. Note :: + Translations take up a lot of space and will bloat your minified file. + At the time of writing, the difference between *converse.min.js* and + *converse.min.no-locales.js* is about 50KB! Therefore, make sure to only + include those languages that you intend to support and remove from + ./locale/locales.js those which you don't need. Remember to rebuild the + minified file afterwards. + The gettext POT file located in ./locale/converse.pot is the template containing all translations and from which for each language an individual PO file is generated.