Comparar commits
133 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| c242f05afe | |||
| 3b23f20268 | |||
| 3fba657d40 | |||
| 3c1ef25e2c | |||
| 569ab66016 | |||
| 84aab421a0 | |||
| 86ad16ef4b | |||
| 2fe742f169 | |||
| ee93f36a4c | |||
| bdd4236d1a | |||
| c2c35b303a | |||
| b9ef5b1a69 | |||
| 3e0c752a13 | |||
| cafbd71c74 | |||
| 423cea6d41 | |||
| 850febf328 | |||
| 5d1719b92e | |||
| d998e4cacb | |||
| eda9ab60de | |||
| 13a02fa692 | |||
| 36c0727828 | |||
| e1ffa79236 | |||
| e33e3b4853 | |||
| 62eacdc5ff | |||
| 40b5ff344b | |||
| d8ae158d24 | |||
| 5fdb292690 | |||
| a0a116901d | |||
| 5a34a0fd2e | |||
| 5435326fb9 | |||
| ff453821bf | |||
| 03ac47a264 | |||
| a17f046a92 | |||
| 1b0db86edf | |||
| 77863d7a27 | |||
| 03435fce9c | |||
| f9598604e2 | |||
| edd715b993 | |||
| a8b777e5b7 | |||
| 3282285b3c | |||
| 564aa7cd8a | |||
| 81047222c6 | |||
| 329f55978f | |||
| 01b14279b3 | |||
| 630bb45eb1 | |||
| 779103ed32 | |||
| fbd0511a76 | |||
| da0a7d7b5d | |||
| da020726ec | |||
| 79f05a0799 | |||
| 2d832d1752 | |||
| 550485c07c | |||
| 3566972527 | |||
| ca21753d73 | |||
| 70abb7121c | |||
| 4e9c802da9 | |||
| 651c138b97 | |||
| 318bd7ee7d | |||
| 7929b20516 | |||
| 20c8d0e2f6 | |||
| 3628cd751a | |||
| 996ae30df8 | |||
| 7b32d598e4 | |||
| 5edf4c2368 | |||
| 9bec4084d8 | |||
| 700e62c9d4 | |||
| 9fa16fca40 | |||
| 5f0b2c8a35 | |||
| f41faaf9af | |||
| 3dd2b14e5a | |||
| 3d2fa05b1f | |||
| f8888fdbb2 | |||
| 8e5e90032c | |||
| 86df085723 | |||
| b57ab86b8f | |||
| 79c1a76427 | |||
| 7acca71a45 | |||
| 925ff098d0 | |||
| 4edcc578aa | |||
| 153f045b00 | |||
| ba03261f1e | |||
| 50fe563e1a | |||
| 31c9b29521 | |||
| b1ce729ec9 | |||
| ffc3678cb9 | |||
| 5772868738 | |||
| 4529f71896 | |||
| 8b53842bcd | |||
| 5c2bc52b55 | |||
| e704f4d05a | |||
| fa3febf0b6 | |||
| 2814cfb36e | |||
| 8aa2736e4a | |||
| a2b216443a | |||
| 487e32a7b9 | |||
| 2950c747c9 | |||
| f39cc79dff | |||
| b62eb995d8 | |||
| e45aa41ae8 | |||
| ee1d70a1db | |||
| 66b5ebda32 | |||
| 08beae250b | |||
| 3de204d857 | |||
| a2fe0b9383 | |||
| e655247a01 | |||
| 27eefde3b3 | |||
| 708648e414 | |||
| 6e9fcf2518 | |||
| d7316e895a | |||
| 01c34f46dd | |||
| 65305f3609 | |||
| 2cd5b5764a | |||
| a52fe9884b | |||
| c95e117857 | |||
| 5f2d4ce7a6 | |||
| d988621b4d | |||
| 9d40ed8086 | |||
| 9750a558f2 | |||
| feb0c634a4 | |||
| 89c6e28970 | |||
| 5224cdf30c | |||
| c85ef77c21 | |||
| cebcc61496 | |||
| 7cf71a7c8b | |||
| 4bffcd665c | |||
| 4fb9938049 | |||
| 419eb17f65 | |||
| 20cc517457 | |||
| a30bcffeec | |||
| e1f4d1d811 | |||
| dea3a30149 | |||
| 2c2e13d966 | |||
| 65c0b7a57a |
@@ -1,3 +1,8 @@
|
||||
node_modules
|
||||
*.zip
|
||||
*.zip.sig
|
||||
bower_components
|
||||
archives/
|
||||
css/
|
||||
dev/
|
||||
.wti
|
||||
|
||||
@@ -4,3 +4,6 @@
|
||||
[submodule "lib/otr"]
|
||||
path = lib/otr
|
||||
url = https://github.com/sualko/otr.git
|
||||
[submodule "lib/i18next"]
|
||||
path = lib/i18next
|
||||
url = https://github.com/i18next/i18next.git
|
||||
|
||||
+7
-2
@@ -14,11 +14,15 @@
|
||||
"multistr": true,
|
||||
"devel": true,
|
||||
"globals": {
|
||||
"t":true,
|
||||
"i18n":true,
|
||||
"I18next":true,
|
||||
"OTR":true,
|
||||
"DSA":true,
|
||||
"Worker":true,
|
||||
"BigInt":true,
|
||||
"Notification":true,
|
||||
"$": true,
|
||||
"jQuery":true,
|
||||
"Strophe":true,
|
||||
"localStorage":true,
|
||||
@@ -29,6 +33,7 @@
|
||||
"jsxc":true,
|
||||
"getUserMediaWithConstraints":true,
|
||||
"setupRTC":true,
|
||||
"SDPUtil":true
|
||||
"SDPUtil":true,
|
||||
"getSelection":true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,41 @@
|
||||
v2.0.0 / 2015-05-08
|
||||
===
|
||||
- add multi-user chat (XEP-0045)
|
||||
- add window resize handle
|
||||
- add username autocomplete
|
||||
- add offline state
|
||||
- add Italian, French, Polish, Portuguese/Brazil
|
||||
- use user avatar as notification icon
|
||||
- show notifications if tabs has no focus
|
||||
- split files into namespaces
|
||||
- sass improvements
|
||||
- replace own translation engine with i18next
|
||||
- fix login from login box
|
||||
- fix selection of chat messages
|
||||
- fix video calls
|
||||
- fix emoticons
|
||||
- fix duplicated roster items
|
||||
- fix notification request
|
||||
- fix logout
|
||||
|
||||
v1.1.0a / 2015-02-25
|
||||
===
|
||||
- fix css url path
|
||||
|
||||
v1.1.0 / 2015-01-08
|
||||
===
|
||||
- move from plain css to sass
|
||||
- show avatar also by EXTVAL (url), not only by BINVAL
|
||||
- add XEP-0280 (Message Carbons)
|
||||
- add XEP-0297 (Stanza Forwarding)
|
||||
- add option to disable otr
|
||||
- add timestamp to messages
|
||||
- add ajax/prebind login
|
||||
- fix offline subscription request
|
||||
- fix hide offline contacts
|
||||
- fix error with multiple own resources
|
||||
- fix avatars with newlines
|
||||
|
||||
v1.0.0 / 2014-11-06
|
||||
===
|
||||
- add unread flag to roster and scroll to target window
|
||||
|
||||
+153
-31
@@ -1,17 +1,18 @@
|
||||
/* global module:false */
|
||||
module.exports = function(grunt) {
|
||||
|
||||
|
||||
var dep = grunt.file.readJSON('dep.json');
|
||||
var dep_files = dep.map(function(el) {
|
||||
return el.file;
|
||||
return '<%= target %>/' + el.file;
|
||||
});
|
||||
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
app: grunt.file.readJSON('package.json'),
|
||||
meta: {
|
||||
banner: grunt.file.read('banner.js')
|
||||
},
|
||||
target: 'dev',
|
||||
jshint: {
|
||||
options: {
|
||||
jshintrc: '.jshintrc'
|
||||
@@ -19,18 +20,23 @@ module.exports = function(grunt) {
|
||||
gruntfile: {
|
||||
src: 'Gruntfile.js'
|
||||
},
|
||||
files: [ 'jsxc.lib.webrtc.js', 'jsxc.lib.js' ]
|
||||
files: [ 'src/jsxc.lib.*' ]
|
||||
},
|
||||
copy: {
|
||||
main: {
|
||||
files: [ {
|
||||
expand: true,
|
||||
src: [ 'lib/strophe.jingle/*.js', 'lib/otr/build/**', 'lib/otr/lib/dsa-webworker.js', 'lib/otr/lib/sm-webworker.js', 'lib/otr/lib/const.js', 'lib/otr/lib/helpers.js', 'lib/otr/lib/dsa.js', 'lib/otr/vendor/*.js', 'lib/*.js', 'jsxc.lib.js', 'jsxc.lib.webrtc.js', '*.css', 'LICENSE', 'img/**', 'sound/**' ],
|
||||
dest: 'build/'
|
||||
src: [ 'lib/i18next/release/i18next-latest.min.js', 'lib/strophe.jingle/*.js', 'lib/otr/build/**', 'lib/otr/lib/dsa-webworker.js', 'lib/otr/lib/sm-webworker.js', 'lib/otr/lib/const.js', 'lib/otr/lib/helpers.js', 'lib/otr/lib/dsa.js', 'lib/otr/vendor/*.js', 'lib/*.js', 'LICENSE', 'img/**', 'sound/**' ],
|
||||
dest: '<%= target %>/'
|
||||
}, {
|
||||
expand: true,
|
||||
cwd: 'lib/',
|
||||
src: ['*.css'],
|
||||
dest: '<%= target %>/css/'
|
||||
} ]
|
||||
}
|
||||
},
|
||||
clean: [ 'build/' ],
|
||||
clean: [ '<%= target %>/' ],
|
||||
usebanner: {
|
||||
dist: {
|
||||
options: {
|
||||
@@ -38,20 +44,61 @@ module.exports = function(grunt) {
|
||||
banner: '<%= meta.banner %>'
|
||||
},
|
||||
files: {
|
||||
src: [ 'build/*.js' ]
|
||||
src: [ '<%= target %>/*.js' ]
|
||||
}
|
||||
}
|
||||
},
|
||||
replace: {
|
||||
version: {
|
||||
src: [ 'build/jsxc.lib.js' ],
|
||||
src: [ '<%= target %>/jsxc.js' ],
|
||||
overwrite: true,
|
||||
replacements: [ {
|
||||
from: '< $ app.version $ >',
|
||||
to: "<%= app.version %>"
|
||||
} ]
|
||||
replacements: [
|
||||
{
|
||||
from: '< $ app.version $ >',
|
||||
to: "<%= app.version %>"
|
||||
}
|
||||
]
|
||||
},
|
||||
libraries: {
|
||||
src: ['<%= target %>/jsxc.js'],
|
||||
overwrite: true,
|
||||
replacements: [{
|
||||
from: '< $ dep.libraries $ >',
|
||||
to: function() {
|
||||
var i, d, libraries = '';
|
||||
|
||||
for(i = 0; i < dep.length; i++) {
|
||||
d = dep[i];
|
||||
if (typeof d.name === 'string') {
|
||||
libraries += '<a href="' + d.url + '">' + d.name + '</a> (' + d.license + '), ';
|
||||
}
|
||||
}
|
||||
|
||||
return libraries.replace(/, $/, '');
|
||||
}
|
||||
}]
|
||||
},
|
||||
locales: {
|
||||
src: [ '<%= target %>/lib/translation.js' ],
|
||||
overwrite: true,
|
||||
replacements: [
|
||||
{
|
||||
from: /^{/g,
|
||||
to: 'var I18next = {'
|
||||
},
|
||||
{
|
||||
from: /}$/g,
|
||||
to: '};'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
merge_data: {
|
||||
target: {
|
||||
src: ['locales/*.{json,y{,a}ml}'],
|
||||
dest: '<%= target %>/lib/translation.js'
|
||||
}
|
||||
},
|
||||
concat: {
|
||||
dep: {
|
||||
options: {
|
||||
@@ -62,24 +109,30 @@ module.exports = function(grunt) {
|
||||
' * \n' +
|
||||
' */\n\n',
|
||||
process: function(src, filepath) {
|
||||
if (filepath === 'build/lib/otr/build/dep/crypto.js') {
|
||||
filepath = filepath.replace(/^[a-z]+\//i, '');
|
||||
|
||||
if (filepath === 'lib/otr/build/dep/crypto.js') {
|
||||
src += ';';
|
||||
}
|
||||
|
||||
var data = dep[dep_files.indexOf(filepath)];
|
||||
|
||||
return '/*!\n * Source: ' + filepath + ', license: ' + data.license + ', url: ' + data.url + ' */\n' + src;
|
||||
|
||||
var data = dep[dep_files.indexOf('<%= target %>/' + filepath)];
|
||||
|
||||
if (data) {
|
||||
return '\n/*!\n * Source: ' + filepath + ', license: ' + data.license + ', url: ' + data.url + '\n */\n' + src;
|
||||
} else {
|
||||
return src;
|
||||
}
|
||||
}
|
||||
},
|
||||
src: dep_files,
|
||||
dest: 'build/lib/jsxc.dep.js'
|
||||
dest: '<%= target %>/lib/jsxc.dep.js'
|
||||
},
|
||||
jsxc: {
|
||||
options: {
|
||||
banner: '/*! This file is concatenated for the browser. */\n\n'
|
||||
},
|
||||
src: ['build/jsxc.lib.js', 'build/jsxc.lib.webrtc.js'],
|
||||
dest: 'build/jsxc.js'
|
||||
src: ['src/jsxc.intro.js', 'src/jsxc.lib.js', 'src/jsxc.lib.*.js', 'src/jsxc.outro.js'],
|
||||
dest: '<%= target %>/jsxc.js'
|
||||
}
|
||||
},
|
||||
uglify: {
|
||||
@@ -90,15 +143,15 @@ module.exports = function(grunt) {
|
||||
preserveComments: 'some'
|
||||
},
|
||||
files: {
|
||||
'build/lib/jsxc.dep.min.js': ['build/lib/jsxc.dep.js'],
|
||||
'build/jsxc.min.js': ['build/jsxc.js']
|
||||
'<%= target %>/lib/jsxc.dep.min.js': ['<%= target %>/lib/jsxc.dep.js'],
|
||||
'<%= target %>/jsxc.min.js': ['<%= target %>/jsxc.js']
|
||||
}
|
||||
}
|
||||
},
|
||||
search: {
|
||||
console: {
|
||||
files: {
|
||||
src: [ '*.js' ]
|
||||
src: [ 'src/*.js' ]
|
||||
},
|
||||
options: {
|
||||
searchString: /console\.log\((?!'[<>]|msg)/g,
|
||||
@@ -115,7 +168,7 @@ module.exports = function(grunt) {
|
||||
logFormat: 'console',
|
||||
onComplete: function(m) {
|
||||
if (m.numMatches === 0) {
|
||||
grunt.fail.fatal("No entry in README.md for current version found.");
|
||||
grunt.fail.fatal("No entry in CHANGELOG.md for current version found.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -124,7 +177,7 @@ module.exports = function(grunt) {
|
||||
compress: {
|
||||
main: {
|
||||
options: {
|
||||
archive: "jsxc-<%= app.version %>.zip"
|
||||
archive: "archives/jsxc-<%= app.version %>.zip"
|
||||
},
|
||||
files: [ {
|
||||
src: [ '**' ],
|
||||
@@ -134,11 +187,60 @@ module.exports = function(grunt) {
|
||||
} ]
|
||||
}
|
||||
},
|
||||
dataUri: {
|
||||
dist: {
|
||||
src: '<%= target %>/css/*.css',
|
||||
dest: '<%= target %>/css/',
|
||||
options: {
|
||||
target: ['<%= target %>/img/*.*', '<%= target %>/img/**/*.*'],
|
||||
fixDirLevel: false,
|
||||
maxBytes: 2048
|
||||
}
|
||||
}
|
||||
},
|
||||
jsdoc: {
|
||||
dist: {
|
||||
src: ['jsxc.lib.js', 'jsxc.lib.webrtc.js'],
|
||||
src: ['src/jsxc.lib.*'],
|
||||
dest: 'doc'
|
||||
}
|
||||
},
|
||||
autoprefixer: {
|
||||
no_dest: {
|
||||
src: '<%= target %>/css/*.css'
|
||||
}
|
||||
},
|
||||
csslint: {
|
||||
strict: {
|
||||
options: {
|
||||
import: 2
|
||||
},
|
||||
src: ['<%= target %>/css/*.css']
|
||||
},
|
||||
},
|
||||
sass: {
|
||||
options: {
|
||||
imagePath: '../img'
|
||||
},
|
||||
dist: {
|
||||
files: {
|
||||
'<%= target %>/css/jsxc.css': 'scss/jsxc.scss',
|
||||
'<%= target %>/css/jsxc.webrtc.css': 'scss/jsxc.webrtc.scss'
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
locales: {
|
||||
files: ['locales/*'],
|
||||
tasks: ['merge_data', 'replace:locales', 'concat:dep']
|
||||
},
|
||||
css: {
|
||||
files: ['scss/*'],
|
||||
tasks: ['sass', 'autoprefixer']
|
||||
},
|
||||
js: {
|
||||
files: ['src/jsxc.lib.*'],
|
||||
tasks: ['concat:jsxc']
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -153,13 +255,33 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-search');
|
||||
grunt.loadNpmTasks('grunt-contrib-compress');
|
||||
grunt.loadNpmTasks('grunt-jsdoc');
|
||||
grunt.loadNpmTasks('grunt-data-uri');
|
||||
grunt.loadNpmTasks('grunt-merge-data');
|
||||
grunt.loadNpmTasks('grunt-contrib-csslint');
|
||||
grunt.loadNpmTasks('grunt-sass');
|
||||
grunt.loadNpmTasks('grunt-autoprefixer');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
|
||||
// Default task.
|
||||
grunt.registerTask('default', [ 'jshint', 'search', 'jsdoc', 'clean', 'copy', 'usebanner', 'replace', 'concat', 'uglify', 'compress' ]);
|
||||
//Default task
|
||||
grunt.registerTask('default', [ 'build', 'watch' ]);
|
||||
|
||||
// Create alpha/beta build
|
||||
grunt.registerTask('pre', [ 'jshint', 'search:console', 'clean', 'copy', 'usebanner', 'replace', 'concat', 'uglify', 'compress' ]);
|
||||
grunt.registerTask('build', ['jshint', 'clean', 'sass', 'autoprefixer', 'copy', 'merge_data', 'replace:locales', 'concat']);
|
||||
|
||||
grunt.registerTask('build:prerelease', 'Build a new pre-release', function(){
|
||||
grunt.config.set('target', 'build');
|
||||
|
||||
grunt.task.run([ 'search:console', 'build', 'dataUri', 'usebanner', 'replace:version', 'replace:libraries', 'uglify', 'compress' ]);
|
||||
});
|
||||
|
||||
grunt.registerTask('build:release', 'Build a new release', function(){
|
||||
grunt.config.set('target', 'build');
|
||||
|
||||
grunt.task.run([ 'search:changelog', 'build:prerelease', 'jsdoc' ]);
|
||||
});
|
||||
|
||||
// Create alpha/beta build @deprecated
|
||||
grunt.registerTask('pre', [ 'build:prerelease' ]);
|
||||
|
||||
// before commit
|
||||
grunt.registerTask('commit', [ 'jshint', 'search:console' ]);
|
||||
};
|
||||
|
||||
+1
-18
@@ -4,21 +4,4 @@ Real-time chat app. This app requires an external XMPP server (openfire, ejabber
|
||||
|
||||
You find a list of features, supported protocols and browsers at the homepage of __[Javascript XMPP Client](http://www.jsxc.org)__.
|
||||
|
||||
## Developer notes
|
||||
|
||||
Please execute the following commands to get a copy of the code:
|
||||
|
||||
```
|
||||
git clone https://github.com/sualko/jsxc/
|
||||
git submodule update --init
|
||||
```
|
||||
|
||||
### Libaries
|
||||
- jQuery (http://jquery.com/)
|
||||
- Strophe.js (http://strophe.im/strophejs/)
|
||||
- Strophe.js Plugins (https://github.com/strophe/strophejs-plugins)
|
||||
- OTR (https://github.com/arlolra/otr)
|
||||
- strophe.jingle (https://github.com/ESTOS/strophe.jingle)
|
||||
|
||||
### Events
|
||||
coming soon...
|
||||
If you are looking for install instructions or developer notes, please also checkout our [wiki](https://github.com/jsxc/jsxc/wiki/).
|
||||
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -0,0 +1,240 @@
|
||||
.jsxc_remotevideo, .jsxc_noRemoteVideo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 9000;
|
||||
background-color: #999999; }
|
||||
|
||||
.jsxc_webrtc {
|
||||
width: 900px; }
|
||||
.jsxc_webrtc .jsxc_status {
|
||||
z-index: 9999;
|
||||
border-radius: 20px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 50%;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
color: #fff;
|
||||
padding: 15px;
|
||||
font-weight: bold;
|
||||
text-align: center; }
|
||||
.jsxc_webrtc .slimScrollDiv {
|
||||
opacity: 1 !important; }
|
||||
.jsxc_webrtc li .jsxc_name {
|
||||
cursor: auto; }
|
||||
.jsxc_webrtc li .jsxc_name:hover {
|
||||
color: gray; }
|
||||
|
||||
.jsxc_videoContainer {
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
position: relative;
|
||||
background-color: #999999; }
|
||||
.jsxc_videoContainer video {
|
||||
display: none; }
|
||||
.jsxc_videoContainer .jsxc_noRemoteVideo {
|
||||
display: none; }
|
||||
|
||||
.jsxc_noRemoteVideo p {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
z-index: 100; }
|
||||
.jsxc_noRemoteVideo > div {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -100px;
|
||||
left: 50%;
|
||||
margin-left: -100px; }
|
||||
.jsxc_noRemoteVideo > div > div {
|
||||
background-color: #4d4d4d; }
|
||||
.jsxc_noRemoteVideo > div > div:first-child {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -25%;
|
||||
top: 10%; }
|
||||
.jsxc_noRemoteVideo > div > div:last-child {
|
||||
position: absolute;
|
||||
bottom: -50%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%; }
|
||||
|
||||
.jsxc_localvideo {
|
||||
width: 160px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
z-index: 9990;
|
||||
background-color: #000;
|
||||
cursor: pointer; }
|
||||
|
||||
div:full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000; }
|
||||
div:full-screen.jsxc_localvideo {
|
||||
border: 1px solid #fff; }
|
||||
div:-webkit-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000; }
|
||||
div:-moz-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000; }
|
||||
div:-ms-fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000; }
|
||||
div:fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000; }
|
||||
div:-webkit-full-screen.jsxc_localvideo {
|
||||
border: 1px solid #fff; }
|
||||
div:-moz-full-screen.jsxc_localvideo {
|
||||
border: 1px solid #fff; }
|
||||
div:-ms-fullscreen.jsxc_localvideo {
|
||||
border: 1px solid #fff; }
|
||||
div:fullscreen.jsxc_localvideo {
|
||||
border: 1px solid #fff; }
|
||||
div.jsxc_video {
|
||||
background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMiIKICAgd2lkdGg9IjIwIgogICBoZWlnaHQ9IjIwIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExMCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczgiIC8+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMDM3ODg1OTQsMCwwLDAuMDM3ODg1OTQsLTAuNDEzNDA3OTMsLTIuNjMxMDcxNikiPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzkwNiIKICAgICAgIHN0eWxlPSJmaWxsOiM4MDgwODA7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJtIDM2MS42NTE0OCwzMTMuNTE3NjggMTc3LjE2MDc0LC0xMzEuNzg1MTYgMCwzMDIuMjI5OTkgTCAzNTguOTczMzgsMzUwLjE4NTE3IFogTSAxMC45MTE5MjIsMTgyLjQwNjM0IGwgMzc4LjM3MjY3OCwwIDAsMzAyLjY1NTgyIC0zNzguMzcyNjc4LDAgeiIgLz4KICA8L2c+Cjwvc3ZnPgo=");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 15px 15px; }
|
||||
div.jsxc_video:not(.jsxc_disabled):hover {
|
||||
background-image: url("../img/camera_icon_white.svg"); }
|
||||
|
||||
.jsxc_controlbar {
|
||||
width: 640px; }
|
||||
.jsxc_controlbar .jsxc_showchat {
|
||||
float: right; }
|
||||
|
||||
.jsxc_multi > div {
|
||||
display: none; }
|
||||
|
||||
.jsxc_snapshotbar {
|
||||
width: 100%;
|
||||
display: none; }
|
||||
.jsxc_snapshotbar img {
|
||||
height: 50px; }
|
||||
|
||||
.jsxc_buttongroup {
|
||||
display: inline; }
|
||||
.jsxc_buttongroup button:first-child {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
margin-right: 0; }
|
||||
.jsxc_buttongroup button:last-child {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
margin-left: 0; }
|
||||
|
||||
.jsxc_chatarea {
|
||||
position: relative;
|
||||
float: right;
|
||||
height: 480px;
|
||||
width: 250px;
|
||||
background-color: #999999; }
|
||||
.jsxc_chatarea .jsxc_settings {
|
||||
display: none !important; }
|
||||
.jsxc_chatarea .jsxc_close {
|
||||
display: none !important; }
|
||||
.jsxc_chatarea .jsxc_video {
|
||||
display: none !important; }
|
||||
.jsxc_chatarea .jsxc_window {
|
||||
bottom: 0;
|
||||
box-shadow: none; }
|
||||
.jsxc_chatarea > ul {
|
||||
width: 250px;
|
||||
height: 480px;
|
||||
list-style: none;
|
||||
padding: 0; }
|
||||
|
||||
.bubblingG {
|
||||
text-align: center;
|
||||
width: 129px;
|
||||
height: 80px;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
margin-left: -64px; }
|
||||
.bubblingG span {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 40px auto;
|
||||
background: #000;
|
||||
border-radius: 81px;
|
||||
-webkit-animation: bubblingG 1.3s infinite alternate;
|
||||
animation: bubblingG 1.3s infinite alternate; }
|
||||
|
||||
#bubblingG_1 {
|
||||
-webkit-animation-delay: 0s;
|
||||
animation-delay: 0s; }
|
||||
|
||||
#bubblingG_2 {
|
||||
-webkit-animation-delay: 0.39s;
|
||||
animation-delay: 0.39s; }
|
||||
|
||||
#bubblingG_3 {
|
||||
-webkit-animation-delay: 0.78s;
|
||||
animation-delay: 0.78s; }
|
||||
|
||||
@-webkit-keyframes bubblingG {
|
||||
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color: #000;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color: #fff;
|
||||
-webkit-transform: translateY(-34px);
|
||||
transform: translateY(-34px); } }
|
||||
|
||||
@keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color: #000;
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color: #fff;
|
||||
-webkit-transform: translateY(-34px);
|
||||
transform: translateY(-34px); } }
|
||||
|
||||
.jsxc_fullscreen.jsxc_localvideo {
|
||||
border: 1px solid #fff; }
|
||||
|
||||
.jsxc_videoSuitable .jsxc_name {
|
||||
font-style: italic; }
|
||||
|
||||
#jsxc_buddylist .jsxc_options .jsxc_video {
|
||||
background-image: url("../img/camera_icon_white.svg"); }
|
||||
#jsxc_buddylist .jsxc_options .jsxc_video.jsxc_disabled {
|
||||
opacity: 0.2; }
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 1000 1000"
|
||||
preserveAspectRatio="xMinYMin meet"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style="width: 512px; height: 512px;"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
sodipodi:docname="group_grey.svg">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="980"
|
||||
inkscape:window-height="888"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.6675088"
|
||||
inkscape:cx="512.17823"
|
||||
inkscape:cy="480.21903"
|
||||
inkscape:window-x="889"
|
||||
inkscape:window-y="85"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="m 0.94630456,763.0963 c 0,22.21203 9.08673644,33.31804 27.26020844,33.31804 l 112.069747,0 0,-142.35887 c 0,-18.17347 4.54363,-34.83222 13.63088,-49.97627 9.08724,-15.14405 21.70797,-26.75512 37.86216,-34.83326 l 115.09866,-54.52042 c 10.09637,-6.05782 18.17347,-13.12528 24.23129,-21.20238 -12.11564,-18.17347 -22.21202,-39.37586 -30.28912,-63.60715 -8.0771,-24.2313 -12.11564,-49.47223 -12.11564,-75.7228 0,-16.1542 2.01927,-32.3084 6.05782,-48.46259 4.03855,-16.1542 9.08674,-31.29876 15.14456,-45.43368 -20.19275,-14.13493 -41.39513,-21.20239 -63.60715,-21.20239 -38.36622,2.01928 -68.65534,17.66839 -90.86736,46.94736 -22.21201,29.27897 -33.31803,62.09244 -33.31803,98.44042 2.01928,62.59751 24.2313,107.02155 66.63606,133.27212 L 16.092416,596.50615 C 5.9960421,602.56397 0.94785546,612.66034 0.94785546,626.79527 l 0,136.30103 z M 191.76775,796.41434 c -2.01927,42.40476 10.09637,64.61678 36.34695,66.63606 l 542.17524,0 c 12.11565,-4.03855 20.69783,-10.09637 25.74653,-18.17347 5.04869,-8.0771 7.57305,-14.63948 7.57305,-19.68716 l 0,-171.13275 c 0,-18.17347 -7.06746,-30.28912 -21.20238,-36.34694 L 637.01936,545.01619 573.41221,514.72707 c 38.36622,-22.21202 63.60715,-60.57824 75.7228,-115.09865 8.0771,-30.28912 8.0771,-61.58788 0,-93.89627 -10.09637,-36.34695 -28.7744,-67.14115 -56.0341,-92.38259 -27.25969,-25.24145 -59.06352,-38.87182 -95.4115,-40.89109 -36.34694,2.01927 -67.6457,15.64964 -93.89627,40.89109 -26.25057,25.24144 -44.42404,55.02601 -54.52042,89.35368 -12.11564,46.44331 -8.07709,93.89627 12.11565,142.35886 16.1542,30.28912 37.35658,54.52041 63.60715,72.69389 l -57.54932,27.2602 -151.4456,69.66498 c -16.1542,8.0771 -24.2313,21.20238 -24.2313,39.37585 l 0,142.35887 z m 475.53918,-302.8912 c 8.0771,8.0771 18.17347,16.1542 30.28912,24.23129 12.11565,8.0771 23.22166,14.13493 33.31803,18.17348 10.09638,4.03855 23.22166,9.59181 39.37586,16.65979 16.1542,7.06797 28.26984,12.62124 36.34694,16.65979 16.1542,8.0771 28.77493,19.68819 37.86218,34.83326 9.08724,15.14507 13.63088,31.80384 13.63088,49.97627 l 0,142.35887 115.09865,0 c 18.17347,-2.01928 27.26021,-13.12529 27.26021,-33.31803 l 0,-136.30104 c 0,-14.13493 -5.04819,-24.2313 -15.14456,-30.28912 L 815.72517,514.72707 c 42.40477,-30.28912 63.60715,-73.70352 63.60715,-130.24321 0,-38.36622 -12.11565,-72.18881 -36.34694,-101.46778 -24.2313,-29.27897 -53.51078,-43.91896 -87.83845,-43.92 -22.21202,0 -44.42404,7.06747 -66.63606,21.20239 12.11564,30.28912 18.17347,61.58787 18.17347,93.89627 0,50.48187 -13.12529,96.92518 -39.37586,139.32995 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cscsscccsssccscccscccccssscccccscscccccscccssssssccssccssccscc"
|
||||
style="fill:#999999;stroke-width:1.55090213;fill-opacity:1" />
|
||||
</svg>
|
||||
|
Depois Largura: | Altura: | Tamanho: 4.2 KiB |
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 1000 1000"
|
||||
preserveAspectRatio="xMinYMin meet"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style="width: 512px; height: 512px;"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
sodipodi:docname="group_white.svg">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.6675088"
|
||||
inkscape:cx="538.39511"
|
||||
inkscape:cy="480.21903"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="m 0.94630456,763.0963 c 0,22.21203 9.08673644,33.31804 27.26020844,33.31804 l 112.069747,0 0,-142.35887 c 0,-18.17347 4.54363,-34.83222 13.63088,-49.97627 9.08724,-15.14405 21.70797,-26.75512 37.86216,-34.83326 l 115.09866,-54.52042 c 10.09637,-6.05782 18.17347,-13.12528 24.23129,-21.20238 -12.11564,-18.17347 -22.21202,-39.37586 -30.28912,-63.60715 -8.0771,-24.2313 -12.11564,-49.47223 -12.11564,-75.7228 0,-16.1542 2.01927,-32.3084 6.05782,-48.46259 4.03855,-16.1542 9.08674,-31.29876 15.14456,-45.43368 -20.19275,-14.13493 -41.39513,-21.20239 -63.60715,-21.20239 -38.36622,2.01928 -68.65534,17.66839 -90.86736,46.94736 -22.21201,29.27897 -33.31803,62.09244 -33.31803,98.44042 2.01928,62.59751 24.2313,107.02155 66.63606,133.27212 L 16.092416,596.50615 C 5.9960421,602.56397 0.94785546,612.66034 0.94785546,626.79527 l 0,136.30103 z M 191.76775,796.41434 c -2.01927,42.40476 10.09637,64.61678 36.34695,66.63606 l 542.17524,0 c 12.11565,-4.03855 20.69783,-10.09637 25.74653,-18.17347 5.04869,-8.0771 7.57305,-14.63948 7.57305,-19.68716 l 0,-171.13275 c 0,-18.17347 -7.06746,-30.28912 -21.20238,-36.34694 L 637.01936,545.01619 573.41221,514.72707 c 38.36622,-22.21202 63.60715,-60.57824 75.7228,-115.09865 8.0771,-30.28912 8.0771,-61.58788 0,-93.89627 -10.09637,-36.34695 -28.7744,-67.14115 -56.0341,-92.38259 -27.25969,-25.24145 -59.06352,-38.87182 -95.4115,-40.89109 -36.34694,2.01927 -67.6457,15.64964 -93.89627,40.89109 -26.25057,25.24144 -44.42404,55.02601 -54.52042,89.35368 -12.11564,46.44331 -8.07709,93.89627 12.11565,142.35886 16.1542,30.28912 37.35658,54.52041 63.60715,72.69389 l -57.54932,27.2602 -151.4456,69.66498 c -16.1542,8.0771 -24.2313,21.20238 -24.2313,39.37585 l 0,142.35887 z m 475.53918,-302.8912 c 8.0771,8.0771 18.17347,16.1542 30.28912,24.23129 12.11565,8.0771 23.22166,14.13493 33.31803,18.17348 10.09638,4.03855 23.22166,9.59181 39.37586,16.65979 16.1542,7.06797 28.26984,12.62124 36.34694,16.65979 16.1542,8.0771 28.77493,19.68819 37.86218,34.83326 9.08724,15.14507 13.63088,31.80384 13.63088,49.97627 l 0,142.35887 115.09865,0 c 18.17347,-2.01928 27.26021,-13.12529 27.26021,-33.31803 l 0,-136.30104 c 0,-14.13493 -5.04819,-24.2313 -15.14456,-30.28912 L 815.72517,514.72707 c 42.40477,-30.28912 63.60715,-73.70352 63.60715,-130.24321 0,-38.36622 -12.11565,-72.18881 -36.34694,-101.46778 -24.2313,-29.27897 -53.51078,-43.91896 -87.83845,-43.92 -22.21202,0 -44.42404,7.06747 -66.63606,21.20239 12.11564,30.28912 18.17347,61.58787 18.17347,93.89627 0,50.48187 -13.12529,96.92518 -39.37586,139.32995 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cscsscccsssccscccscccccssscccccscscccccscccssssssccssccssccscc"
|
||||
style="fill:#ffffff;stroke-width:1.55090213" />
|
||||
</svg>
|
||||
|
Depois Largura: | Altura: | Tamanho: 4.2 KiB |
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="15"
|
||||
height="15"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="resize_gray.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath3803">
|
||||
<rect
|
||||
style="stroke:none"
|
||||
id="rect3805"
|
||||
width="16.09375"
|
||||
height="14.71875"
|
||||
x="0.84375"
|
||||
y="1038.1434" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="32"
|
||||
inkscape:cx="6.9909088"
|
||||
inkscape:cy="6.5564812"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1865"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="55"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1037.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#bfbfbf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 10.46875,1032.1747 -14.5,14.2813 z m 3.5,1.2501 -17.3125,17.3124 z"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
clip-path="url(#clipPath3803)"
|
||||
transform="translate(0.8125,0.6875)"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Depois Largura: | Altura: | Tamanho: 2.2 KiB |
-1243
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
+6326
-5098
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
-5871
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
externo
+9
-20
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
@@ -1,379 +0,0 @@
|
||||
.jsxc_webrtc {
|
||||
width: 900px;
|
||||
}
|
||||
|
||||
.jsxc_webrtc li .jsxc_name {
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.jsxc_webrtc li .jsxc_name:hover {
|
||||
color: #939393;
|
||||
}
|
||||
|
||||
.jsxc_videoContainer {
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
position: relative;
|
||||
background-color: #a4a4a4;
|
||||
}
|
||||
|
||||
.jsxc_videoContainer video, .jsxc_videoContainer .jsxc_noRemoteVideo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsxc_remotevideo, .jsxc_noRemoteVideo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
z-index: 9000;
|
||||
background-color: #a4a4a4;
|
||||
}
|
||||
|
||||
.jsxc_localvideo {
|
||||
width: 160px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
z-index: 9990;
|
||||
background-color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo p {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left:0px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -100px;
|
||||
left: 50%;
|
||||
margin-left: -100px;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div > div {
|
||||
background-color: #717171;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div > div:first-child {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -25%;
|
||||
top: 10%;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div > div:last-child {
|
||||
position: absolute;
|
||||
bottom: -50%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.jsxc_webrtc .jsxc_status {
|
||||
z-index: 9999;
|
||||
border-radius: 20px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 50%;
|
||||
background-color: lightgrey;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
color: white;
|
||||
padding: 15px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsxc_webrtc .slimScrollDiv {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
div:-moz-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:-ms-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:-webkit-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:-moz-full-screen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div:-webkit-full-screen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div:-ms-full-screen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div:fullscreen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.jsxc_fullscreen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.jsxc_controlbar {
|
||||
width: 640px;
|
||||
}
|
||||
|
||||
.jsxc_controlbar .jsxc_showchat {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.jsxc_multi>div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsxc_snapshotbar {
|
||||
width: 100%;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsxc_snapshotbar img {
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.jsxc_buttongroup {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.jsxc_buttongroup button:first-child {
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.jsxc_buttongroup button:last-child {
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.jsxc_chatarea {
|
||||
position: relative;
|
||||
float:right;
|
||||
height: 480px;
|
||||
width: 250px;
|
||||
background-color: #A4A4A4;
|
||||
}
|
||||
|
||||
.jsxc_chatarea > ul {
|
||||
width: 250px;
|
||||
height: 480px;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_settings {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_close {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_video {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_bar {
|
||||
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_window {
|
||||
bottom: 0px;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.jsxc_videoSuitable .jsxc_name {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.jsxc_video {
|
||||
background-image: url('img/camera_icon_grey.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 15px 15px;
|
||||
}
|
||||
|
||||
div.jsxc_video:not(.jsxc_disabled):hover, #jsxc_buddylist .jsxc_options .jsxc_video {
|
||||
background-image: url('img/camera_icon_white.svg');
|
||||
}
|
||||
|
||||
#jsxc_buddylist .jsxc_options .jsxc_video.jsxc_disabled {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
.bubblingG {
|
||||
text-align: center;
|
||||
width:129px;
|
||||
height:80px;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
margin-left: -64px;
|
||||
}
|
||||
|
||||
.bubblingG span {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 40px auto;
|
||||
background: #000000;
|
||||
-moz-border-radius: 81px;
|
||||
-moz-animation: bubblingG 1.3s infinite alternate;
|
||||
-webkit-border-radius: 81px;
|
||||
-webkit-animation: bubblingG 1.3s infinite alternate;
|
||||
-ms-border-radius: 81px;
|
||||
-ms-animation: bubblingG 1.3s infinite alternate;
|
||||
-o-border-radius: 81px;
|
||||
-o-animation: bubblingG 1.3s infinite alternate;
|
||||
border-radius: 81px;
|
||||
animation: bubblingG 1.3s infinite alternate;
|
||||
}
|
||||
|
||||
#bubblingG_1 {
|
||||
-moz-animation-delay: 0s;
|
||||
-webkit-animation-delay: 0s;
|
||||
-ms-animation-delay: 0s;
|
||||
-o-animation-delay: 0s;
|
||||
animation-delay: 0s;
|
||||
}
|
||||
|
||||
#bubblingG_2 {
|
||||
-moz-animation-delay: 0.39s;
|
||||
-webkit-animation-delay: 0.39s;
|
||||
-ms-animation-delay: 0.39s;
|
||||
-o-animation-delay: 0.39s;
|
||||
animation-delay: 0.39s;
|
||||
}
|
||||
|
||||
#bubblingG_3 {
|
||||
-moz-animation-delay: 0.78s;
|
||||
-webkit-animation-delay: 0.78s;
|
||||
-ms-animation-delay: 0.78s;
|
||||
-o-animation-delay: 0.78s;
|
||||
animation-delay: 0.78s;
|
||||
}
|
||||
|
||||
@-moz-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-moz-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-moz-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-webkit-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-webkit-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-webkit-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-ms-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-ms-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-ms-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-o-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-o-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-o-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+79
-28
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+31
-14
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
@@ -1,7 +1,7 @@
|
||||
/*!
|
||||
|
||||
otr.js v0.2.13 - 2014-09-07
|
||||
(c) 2014 - Arlo Breault <arlolra@gmail.com>
|
||||
otr.js v0.2.14 - 2015-01-16
|
||||
(c) 2015 - Arlo Breault <arlolra@gmail.com>
|
||||
Freely distributed under the MPL v2.0 license.
|
||||
|
||||
This file is concatenated for the browser.
|
||||
@@ -1620,10 +1620,12 @@
|
||||
|
||||
this.smpstate = CONST.SMPSTATE_EXPECT0
|
||||
|
||||
// assume utf8 question
|
||||
question = CryptoJS.enc.Latin1
|
||||
.parse(question)
|
||||
.toString(CryptoJS.enc.Utf8)
|
||||
if (question) {
|
||||
// assume utf8 question
|
||||
question = CryptoJS.enc.Latin1
|
||||
.parse(question)
|
||||
.toString(CryptoJS.enc.Utf8)
|
||||
}
|
||||
|
||||
// invoke question
|
||||
this.trigger('question', [question])
|
||||
@@ -2410,7 +2412,8 @@
|
||||
|
||||
// utf8 inputs
|
||||
secret = CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1)
|
||||
question = CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)
|
||||
if (question)
|
||||
question = CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)
|
||||
|
||||
this.sm.rcvSecret(secret, question)
|
||||
}
|
||||
@@ -2473,7 +2476,7 @@
|
||||
if (msg) this.io(msg, meta)
|
||||
}
|
||||
|
||||
OTR.prototype.receiveMsg = function (msg) {
|
||||
OTR.prototype.receiveMsg = function (msg, meta) {
|
||||
|
||||
// parse type
|
||||
msg = Parse.parseMsg(this, msg)
|
||||
@@ -2524,7 +2527,7 @@
|
||||
this.doAKE(msg)
|
||||
}
|
||||
|
||||
if (msg.msg) this.trigger('ui', [msg.msg, !!msg.encrypted])
|
||||
if (msg.msg) this.trigger('ui', [msg.msg, !!msg.encrypted, meta])
|
||||
}
|
||||
|
||||
OTR.prototype.checkInstanceTags = function (it) {
|
||||
|
||||
externo
+4
-4
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
@@ -191,13 +191,18 @@
|
||||
* Returns: (Boolean) - false, to automatically remove the handler.
|
||||
*/
|
||||
_handleDiscoInfoReply: function(stanza) {
|
||||
var query = stanza.querySelector('query'), node = query.getAttribute('node').split('#'), ver = node[1], from = stanza.getAttribute('from');
|
||||
var query = stanza.querySelector('query');
|
||||
var from = stanza.getAttribute('from');
|
||||
var node = query.getAttribute('node');
|
||||
var ver = (node)? node.split('#')[1] : this._jidVerIndex[from]; //fix open prosody issue
|
||||
|
||||
if (!this._knownCapabilities[ver]) {
|
||||
var childNodes = query.childNodes, childNodesLen = childNodes.length;
|
||||
this._knownCapabilities[ver] = {
|
||||
features: [],
|
||||
identities: []
|
||||
};
|
||||
|
||||
for (var i = 0; i < childNodesLen; i++) {
|
||||
var node = childNodes[i];
|
||||
if (node.nodeName == 'feature') {
|
||||
@@ -205,10 +210,11 @@
|
||||
} else if (node.nodeName == 'identity') {
|
||||
this._knownCapabilities[ver]['identities'].push(this._attributesToJsObject(node.attributes));
|
||||
} else {
|
||||
if (_knownCapabilities[ver][node.nodeName])
|
||||
_knownCapabilities[ver][node.nodeName] = [];
|
||||
if (typeof this._knownCapabilities[ver][node.nodeName] === 'undefined')
|
||||
this._knownCapabilities[ver][node.nodeName] = [];
|
||||
this._knownCapabilities[ver][node.nodeName].push(this._attributesToJsObject(node.attributes));
|
||||
}
|
||||
|
||||
}
|
||||
this._jidVerIndex[from] = ver;
|
||||
} else if (!this._jidVerIndex[from] || !this._jidVerIndex[from] !== ver) {
|
||||
|
||||
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+41
-15
@@ -1,72 +1,98 @@
|
||||
[
|
||||
{
|
||||
"file": "build/lib/strophe.js",
|
||||
"name": "strophe.js",
|
||||
"file": "lib/strophe.js",
|
||||
"license": "multiple",
|
||||
"url": "http://strophe.im/strophejs/"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.muc.js",
|
||||
"name": "strophe.js/muc",
|
||||
"file": "lib/strophe.muc.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.disco.js",
|
||||
"name": "strophe.js/disco",
|
||||
"file": "lib/strophe.disco.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.caps.js",
|
||||
"name": "strophe.js/caps",
|
||||
"file": "lib/strophe.caps.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.vcard.js",
|
||||
"name": "strophe.js/vcard",
|
||||
"file": "lib/strophe.vcard.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.jingle/strophe.jingle.js",
|
||||
"name": "strophe.jingle",
|
||||
"file": "lib/strophe.jingle/strophe.jingle.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/ESTOS/strophe.jingle"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.jingle/strophe.jingle.session.js",
|
||||
"name": null,
|
||||
"file": "lib/strophe.jingle/strophe.jingle.session.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/ESTOS/strophe.jingle"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.jingle/strophe.jingle.sdp.js",
|
||||
"name": null,
|
||||
"file": "lib/strophe.jingle/strophe.jingle.sdp.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/ESTOS/strophe.jingle"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/strophe.jingle/strophe.jingle.adapter.js",
|
||||
"name": null,
|
||||
"file": "lib/strophe.jingle/strophe.jingle.adapter.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/ESTOS/strophe.jingle"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/otr/build/dep/salsa20.js",
|
||||
"name": "Salsa20",
|
||||
"file": "lib/otr/build/dep/salsa20.js",
|
||||
"license": "AGPL3",
|
||||
"url": "https://github.com/neoatlantis/node-salsa20"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/otr/build/dep/bigint.js",
|
||||
"name": "bigint",
|
||||
"file": "lib/otr/build/dep/bigint.js",
|
||||
"license": "public domain",
|
||||
"url": "www.leemon.com"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/otr/build/dep/crypto.js",
|
||||
"name": "cryptojs",
|
||||
"file": "lib/otr/build/dep/crypto.js",
|
||||
"license": "code.google.com/p/crypto-js/wiki/license",
|
||||
"url": "code.google.com/p/crypto-js"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/otr/build/dep/eventemitter.js",
|
||||
"name": "eventemitter",
|
||||
"file": "lib/otr/build/dep/eventemitter.js",
|
||||
"license": "MIT",
|
||||
"url": "http://git.io/ee"
|
||||
},
|
||||
{
|
||||
"file": "build/lib/otr/build/otr.js",
|
||||
"name": "otr.js",
|
||||
"file": "lib/otr/build/otr.js",
|
||||
"license": "MPL v2.0",
|
||||
"url": "https://arlolra.github.io/otr/"
|
||||
},
|
||||
{
|
||||
"name": "i18next",
|
||||
"file": "lib/i18next/release/i18next-latest.min.js",
|
||||
"license": "MIT",
|
||||
"url": "http://i18next.com/"
|
||||
},
|
||||
{
|
||||
"name": null,
|
||||
"file": "lib/translation.js",
|
||||
"license": "MIT",
|
||||
"url": "https://webtranslateit.com/en/projects/10365-JSXC"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Global</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Global</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
|
||||
<header>
|
||||
<h2>
|
||||
|
||||
</h2>
|
||||
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Type Definitions</h3>
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="getUsers-cb"><span class="type-signature"></span>getUsers-cb<span class="signature">(list)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Processes user list.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>list</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">object</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">List of users, key: username, value: alias</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line153">line 153</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
+2
-2
@@ -48,13 +48,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2281">line 2281</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1576">line 1576</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2347">line 2347</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1642">line 1642</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2296">line 2296</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1591">line 1591</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -500,7 +500,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2357">line 2357</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1652">line 1652</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -541,13 +541,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+32
-32
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line811">line 811</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1">line 1</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line818">line 818</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line8">line 8</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -289,7 +289,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1759">line 1759</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1021">line 1021</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1833">line 1833</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1095">line 1095</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -518,7 +518,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1097">line 1097</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line297">line 297</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -609,7 +609,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line860">line 860</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line50">line 50</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -721,7 +721,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1818">line 1818</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1080">line 1080</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -833,7 +833,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1068">line 1068</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line268">line 268</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -902,7 +902,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1479">line 1479</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line712">line 712</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1019,7 +1019,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1427">line 1427</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line660">line 660</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1154,7 +1154,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1308">line 1308</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line508">line 508</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1223,7 +1223,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1436">line 1436</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line669">line 669</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1404,7 +1404,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1460">line 1460</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line693">line 693</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1551,7 +1551,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1346">line 1346</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line546">line 546</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1620,7 +1620,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1492">line 1492</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line725">line 725</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1737,7 +1737,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1189">line 1189</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line389">line 389</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1806,7 +1806,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1153">line 1153</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line353">line 353</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1923,7 +1923,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1387">line 1387</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line620">line 620</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2010,7 +2010,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1719">line 1719</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line966">line 966</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2127,7 +2127,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1520">line 1520</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line753">line 753</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2244,7 +2244,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1198">line 1198</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line398">line 398</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2313,7 +2313,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line830">line 830</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line837">line 837</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2430,7 +2430,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1415">line 1415</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line648">line 648</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2517,7 +2517,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1108">line 1108</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line308">line 308</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2634,7 +2634,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line901">line 901</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line98">line 98</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2746,7 +2746,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1805">line 1805</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1067">line 1067</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2863,7 +2863,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line917">line 917</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line114">line 114</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3026,7 +3026,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line993">line 993</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line186">line 186</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3161,7 +3161,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1781">line 1781</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1043">line 1043</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3230,7 +3230,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1052">line 1052</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line252">line 252</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3271,13 +3271,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line820">line 820</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line10">line 10</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line827">line 827</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line17">line 17</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line836">line 836</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line26">line 26</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line841">line 841</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line31">line 31</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line850">line 850</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line40">line 40</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -389,13 +389,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+72
-14
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1911">line 1911</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1197">line 1197</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -93,6 +93,64 @@
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Members</h3>
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="ready"><span class="type-signature"><static> </span>ready<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<div class="description">
|
||||
True if roster is initialised
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1205">line 1205</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
@@ -212,7 +270,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2205">line 2205</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1496">line 1496</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -347,7 +405,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2029">line 2029</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1320">line 1320</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -416,7 +474,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2267">line 2267</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1562">line 1562</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -485,7 +543,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line1924">line 1924</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1213">line 1213</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -644,7 +702,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2092">line 2092</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1383">line 1383</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -731,7 +789,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2253">line 2253</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1547">line 1547</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -848,7 +906,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2144">line 2144</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1435">line 1435</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -965,7 +1023,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2135">line 2135</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1426">line 1426</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1104,7 +1162,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2165">line 2165</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1456">line 1456</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1239,7 +1297,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2125">line 2125</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1416">line 1416</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1374,7 +1432,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2228">line 2228</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1522">line 1522</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1415,13 +1473,13 @@ alphabetical of the name
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2883">line 2883</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2242">line 2242</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -109,13 +109,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+189
-23
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2362">line 2362</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1664">line 1664</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2598">line 2598</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1906">line 1906</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -306,7 +306,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2678">line 2678</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1986">line 1986</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -470,7 +470,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2775">line 2775</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2090">line 2090</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -587,7 +587,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2646">line 2646</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1954">line 1954</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -722,7 +722,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2877">line 2877</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2236">line 2236</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -857,7 +857,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2573">line 2573</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1881">line 1881</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -974,7 +974,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2529">line 2529</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1837">line 1837</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1113,7 +1113,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2667">line 2667</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1975">line 1975</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1230,7 +1230,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2689">line 2689</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1997">line 1997</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1347,7 +1347,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2375">line 2375</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1677">line 1677</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1405,8 +1405,8 @@
|
||||
|
||||
|
||||
<div class="description">
|
||||
Open a window, related to the bid. If the window doesn't exist, it will
|
||||
be created.
|
||||
Open a window, related to the bid. If the window doesn't exist, it will be
|
||||
created.
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1487,7 +1487,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2540">line 2540</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1848">line 1848</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1537,7 +1537,7 @@ be created.
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="postMessage"><span class="type-signature"><static> </span>postMessage<span class="signature">(bid, direction, msg)</span><span class="type-signature"></span></h4>
|
||||
<h4 class="name" id="postMessage"><span class="type-signature"><static> </span>postMessage<span class="signature">(bid, direction, msg, encrypted, forwarded, stamp, sender)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
@@ -1646,6 +1646,98 @@ be created.
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>encrypted</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">boolean</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Was this message encrypted? Default: false</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>forwarded</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">boolean</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Was this message forwarded? Default: false</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>stamp</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">integer</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Timestamp</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>sender</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">object</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Information about sender</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -1654,6 +1746,80 @@ be created.
|
||||
<dl class="details">
|
||||
|
||||
|
||||
<h5 class="subsection-title">Properties:</h5>
|
||||
|
||||
<dl>
|
||||
|
||||
<table class="props">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>sender.jid</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Sender Jid</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>sender.name</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Sender name or nickname</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1673,7 +1839,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2725">line 2725</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2039">line 2039</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1790,7 +1956,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2862">line 2862</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2221">line 2221</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1925,7 +2091,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2704">line 2704</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2012">line 2012</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2065,7 +2231,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2852">line 2852</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2211">line 2211</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2200,7 +2366,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2633">line 2633</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1941">line 1941</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2317,7 +2483,7 @@ be created.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line2611">line 2611</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1919">line 1919</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2358,13 +2524,13 @@ be created.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+554
-240
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5405">line 5405</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5777">line 5777</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -109,13 +109,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Wed Feb 25 2015 19:15:14 GMT+0100 (CET)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
+697
-5786
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -0,0 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.notice.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.notice.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source"><code>/**
|
||||
* This namespace handle the notice system.
|
||||
*
|
||||
* @namspace jsxc.notice
|
||||
* @memberOf jsxc
|
||||
*/
|
||||
jsxc.notice = {
|
||||
/** Number of notices. */
|
||||
_num: 0,
|
||||
|
||||
/**
|
||||
* Loads the saved notices.
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
*/
|
||||
load: function() {
|
||||
// reset list
|
||||
$('#jsxc_notice ul li').remove();
|
||||
$('#jsxc_notice > span').text('');
|
||||
jsxc.notice._num = 0;
|
||||
|
||||
var saved = jsxc.storage.getUserItem('notices') || [];
|
||||
var key = null;
|
||||
|
||||
for (key in saved) {
|
||||
if (saved.hasOwnProperty(key)) {
|
||||
var val = saved[key];
|
||||
|
||||
jsxc.notice.add(val.msg, val.description, val.fnName, val.fnParams, key);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a new notice to the stack;
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param msg Header message
|
||||
* @param description Notice description
|
||||
* @param fnName Function name to be called if you open the notice
|
||||
* @param fnParams Array of params for function
|
||||
* @param id Notice id
|
||||
*/
|
||||
add: function(msg, description, fnName, fnParams, id) {
|
||||
var nid = id || Date.now();
|
||||
var list = $('#jsxc_notice ul');
|
||||
var notice = $('<li/>');
|
||||
|
||||
notice.click(function() {
|
||||
jsxc.notice.remove(nid);
|
||||
|
||||
jsxc.exec(fnName, fnParams);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
notice.text(msg);
|
||||
notice.attr('title', description || '');
|
||||
notice.attr('data-nid', nid);
|
||||
list.append(notice);
|
||||
|
||||
$('#jsxc_notice > span').text(++jsxc.notice._num);
|
||||
|
||||
if (!id) {
|
||||
var saved = jsxc.storage.getUserItem('notices') || {};
|
||||
saved[nid] = {
|
||||
msg: msg,
|
||||
description: description,
|
||||
fnName: fnName,
|
||||
fnParams: fnParams
|
||||
};
|
||||
jsxc.storage.setUserItem('notices', saved);
|
||||
|
||||
jsxc.notification.notify(msg, description || '', null, true, jsxc.CONST.SOUNDS.NOTICE);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes notice from stack
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param nid The notice id
|
||||
*/
|
||||
remove: function(nid) {
|
||||
var el = $('#jsxc_notice li[data-nid=' + nid + ']');
|
||||
|
||||
el.remove();
|
||||
$('#jsxc_notice > span').text(--jsxc.notice._num || '');
|
||||
|
||||
var s = jsxc.storage.getUserItem('notices');
|
||||
delete s[nid];
|
||||
jsxc.storage.setUserItem('notices', s);
|
||||
},
|
||||
|
||||
/**
|
||||
* Check if there is already a notice for the given function name.
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param {string} fnName Function name
|
||||
* @returns {boolean} True if there is >0 functions with the given name
|
||||
*/
|
||||
has: function(fnName) {
|
||||
var saved = jsxc.storage.getUserItem('notices') || [];
|
||||
var has = false;
|
||||
|
||||
$.each(saved, function(index, val){
|
||||
if (val.fnName === fnName) {
|
||||
has = true;
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return has;
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,322 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.notification.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.notification.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source"><code>/**
|
||||
* This namespace handles the Notification API.
|
||||
*
|
||||
* @namespace jsxc.notification
|
||||
*/
|
||||
jsxc.notification = {
|
||||
|
||||
/** Current audio file. */
|
||||
audio: null,
|
||||
|
||||
/**
|
||||
* Register notification on incoming messages.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
*/
|
||||
init: function() {
|
||||
$(document).on('postmessagein.jsxc', function(event, bid, msg) {
|
||||
msg = (msg.match(/^\?OTR/)) ? $.t('Encrypted_message') : msg;
|
||||
var data = jsxc.storage.getUserItem('buddy', bid);
|
||||
|
||||
jsxc.notification.notify({
|
||||
title: $.t('New_message_from') + ' ' + data.name,
|
||||
msg: msg,
|
||||
soundFile: jsxc.CONST.SOUNDS.MSG,
|
||||
source: bid
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('callincoming.jingle', function() {
|
||||
jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL, true, true);
|
||||
});
|
||||
|
||||
$(document).on('accept.call.jsxc reject.call.jsxc', function() {
|
||||
jsxc.notification.stopSound();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Shows a pop up notification and optional play sound.
|
||||
*
|
||||
* @param title Title
|
||||
* @param msg Message
|
||||
* @param d Duration
|
||||
* @param force Should message also shown, if tab is visible?
|
||||
* @param soundFile Playing given sound file
|
||||
* @param loop Loop sound file?
|
||||
* @param source Bid which triggered this notification
|
||||
*/
|
||||
notify: function(title, msg, d, force, soundFile, loop, source) {
|
||||
if (!jsxc.options.notification || !jsxc.notification.hasPermission()) {
|
||||
return; // notifications disabled
|
||||
}
|
||||
|
||||
var o;
|
||||
|
||||
if (title !== null && typeof title === 'object') {
|
||||
o = title;
|
||||
} else {
|
||||
o = {
|
||||
title: title,
|
||||
msg: msg,
|
||||
duration: d,
|
||||
force: force,
|
||||
soundFile: soundFile,
|
||||
loop: loop,
|
||||
source: source
|
||||
};
|
||||
}
|
||||
|
||||
if (jsxc.hasFocus() && !o.force) {
|
||||
return; // Tab is visible
|
||||
}
|
||||
|
||||
var icon = o.icon || jsxc.options.root + '/img/XMPP_logo.png';
|
||||
|
||||
if (typeof o.source === 'string') {
|
||||
var data = jsxc.storage.getUserItem('buddy', o.source);
|
||||
var src = jsxc.storage.getUserItem('avatar', data.avatar);
|
||||
|
||||
if (typeof src === 'string' && src !== '0') {
|
||||
icon = src;
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.toNotification = setTimeout(function() {
|
||||
|
||||
if (typeof o.soundFile === 'string') {
|
||||
jsxc.notification.playSound(o.soundFile, o.loop, o.force);
|
||||
}
|
||||
|
||||
var popup = new Notification($.t(o.title), {
|
||||
body: $.t(o.msg),
|
||||
icon: icon
|
||||
});
|
||||
|
||||
var duration = o.duration || jsxc.options.popupDuration;
|
||||
|
||||
if (duration > 0) {
|
||||
setTimeout(function() {
|
||||
popup.close();
|
||||
}, duration);
|
||||
}
|
||||
}, jsxc.toNotificationDelay);
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if browser has support for notifications and add on chrome to the
|
||||
* default api.
|
||||
*
|
||||
* @returns {Boolean} True if the browser has support.
|
||||
*/
|
||||
hasSupport: function() {
|
||||
if (window.webkitNotifications) {
|
||||
// prepare chrome
|
||||
|
||||
window.Notification = function(title, opt) {
|
||||
var popup = window.webkitNotifications.createNotification(null, title, opt.body);
|
||||
popup.show();
|
||||
|
||||
popup.close = function() {
|
||||
popup.cancel();
|
||||
};
|
||||
|
||||
return popup;
|
||||
};
|
||||
|
||||
var permission;
|
||||
switch (window.webkitNotifications.checkPermission()) {
|
||||
case 0:
|
||||
permission = jsxc.CONST.NOTIFICATION_GRANTED;
|
||||
break;
|
||||
case 2:
|
||||
permission = jsxc.CONST.NOTIFICATION_DENIED;
|
||||
break;
|
||||
default: // 1
|
||||
permission = jsxc.CONST.NOTIFICATION_DEFAULT;
|
||||
}
|
||||
window.Notification.permission = permission;
|
||||
|
||||
window.Notification.requestPermission = function(func) {
|
||||
window.webkitNotifications.requestPermission(func);
|
||||
};
|
||||
|
||||
return true;
|
||||
} else if (window.Notification) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Ask user on first incoming message if we should inform him about new
|
||||
* messages.
|
||||
*/
|
||||
prepareRequest: function() {
|
||||
|
||||
if (jsxc.notice.has('gui.showRequestNotification')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$(document).one('postmessagein.jsxc', function() {
|
||||
setTimeout(function() {
|
||||
jsxc.notice.add($.t('Notifications') + '?', $.t('Should_we_notify_you_'), 'gui.showRequestNotification');
|
||||
}, 1000);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Request notification permission.
|
||||
*/
|
||||
requestPermission: function() {
|
||||
window.Notification.requestPermission(function(status) {
|
||||
if (window.Notification.permission !== status) {
|
||||
window.Notification.permission = status;
|
||||
}
|
||||
|
||||
if (jsxc.notification.hasPermission()) {
|
||||
$(document).trigger('notificationready.jsxc');
|
||||
} else {
|
||||
$(document).trigger('notificationfailure.jsxc');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Check permission.
|
||||
*
|
||||
* @returns {Boolean} True if we have the permission
|
||||
*/
|
||||
hasPermission: function() {
|
||||
return window.Notification.permission === jsxc.CONST.NOTIFICATION_GRANTED;
|
||||
},
|
||||
|
||||
/**
|
||||
* Plays the given file.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {string} soundFile File relative to the sound directory
|
||||
* @param {boolean} loop True for loop
|
||||
* @param {boolean} force Play even if a tab is visible. Default: false.
|
||||
*/
|
||||
playSound: function(soundFile, loop, force) {
|
||||
if (!jsxc.master) {
|
||||
// only master plays sound
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.options.get('muteNotification') || jsxc.storage.getUserItem('presence') === 'dnd') {
|
||||
// sound mute or own presence is dnd
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.hasFocus() && !force) {
|
||||
// tab is visible
|
||||
return;
|
||||
}
|
||||
|
||||
// stop current audio file
|
||||
jsxc.notification.stopSound();
|
||||
|
||||
var audio = new Audio(jsxc.options.root + '/sound/' + soundFile);
|
||||
audio.loop = loop || false;
|
||||
audio.play();
|
||||
|
||||
jsxc.notification.audio = audio;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stop/remove current sound.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
*/
|
||||
stopSound: function() {
|
||||
var audio = jsxc.notification.audio;
|
||||
|
||||
if (typeof audio !== 'undefined' && audio !== null) {
|
||||
audio.pause();
|
||||
jsxc.notification.audio = null;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Mute sound.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {boolean} external True if triggered from external tab. Default:
|
||||
* false.
|
||||
*/
|
||||
muteSound: function(external) {
|
||||
$('#jsxc_menu .jsxc_muteNotification').text($.t('Unmute'));
|
||||
|
||||
if (external !== true) {
|
||||
jsxc.options.set('muteNotification', true);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Unmute sound.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {boolean} external True if triggered from external tab. Default:
|
||||
* false.
|
||||
*/
|
||||
unmuteSound: function(external) {
|
||||
$('#jsxc_menu .jsxc_muteNotification').text($.t('Mute'));
|
||||
|
||||
if (external !== true) {
|
||||
jsxc.options.set('muteNotification', false);
|
||||
}
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,218 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.options.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.options.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source"><code>/**
|
||||
* Set some options for the chat.
|
||||
*
|
||||
* @namespace jsxc.options
|
||||
*/
|
||||
jsxc.options = {
|
||||
|
||||
/** name of container application (e.g. owncloud or SOGo) */
|
||||
app_name: 'web applications',
|
||||
|
||||
/** Timeout for the keepalive signal */
|
||||
timeout: 3000,
|
||||
|
||||
/** Timeout for the keepalive signal if the master is busy */
|
||||
busyTimeout: 15000,
|
||||
|
||||
/** OTR options */
|
||||
otr: {
|
||||
enable: true,
|
||||
ERROR_START_AKE: false,
|
||||
debug: false,
|
||||
SEND_WHITESPACE_TAG: true,
|
||||
WHITESPACE_START_AKE: true
|
||||
},
|
||||
|
||||
/** xmpp options */
|
||||
xmpp: {
|
||||
url: null,
|
||||
jid: null,
|
||||
domain: null,
|
||||
password: null,
|
||||
overwrite: false,
|
||||
onlogin: true
|
||||
},
|
||||
|
||||
/** default xmpp priorities */
|
||||
priority: {
|
||||
online: 0,
|
||||
chat: 0,
|
||||
away: 0,
|
||||
xa: 0,
|
||||
dnd: 0
|
||||
},
|
||||
|
||||
/** If all 3 properties are set, the login form is used */
|
||||
loginForm: {
|
||||
/** jquery object from form */
|
||||
form: null,
|
||||
|
||||
/** jquery object from input element which contains the jid */
|
||||
jid: null,
|
||||
|
||||
/** jquery object from input element which contains the password */
|
||||
pass: null,
|
||||
|
||||
/** manipulate JID from input element */
|
||||
preJid: function(jid) {
|
||||
return jid;
|
||||
},
|
||||
|
||||
/**
|
||||
* Action after connected: submit [String] Submit form, false [boolean] Do
|
||||
* nothing, continue [String] Start chat
|
||||
*/
|
||||
onConnected: 'submit',
|
||||
|
||||
/**
|
||||
* Action after auth fail: submit [String] Submit form, false [boolean] Do
|
||||
* nothing, ask [String] Show auth fail dialog
|
||||
*/
|
||||
onAuthFail: 'submit'
|
||||
},
|
||||
|
||||
/** jquery object from logout element */
|
||||
logoutElement: null,
|
||||
|
||||
/** How many messages should be logged? */
|
||||
numberOfMsg: 10,
|
||||
|
||||
/** Default language */
|
||||
defaultLang: 'en',
|
||||
|
||||
/** auto language detection */
|
||||
autoLang: true,
|
||||
|
||||
/** Place for roster */
|
||||
rosterAppend: 'body',
|
||||
|
||||
/** Should we use the HTML5 notification API? */
|
||||
notification: true,
|
||||
|
||||
/** duration for notification */
|
||||
popupDuration: 6000,
|
||||
|
||||
/** Absolute path root of JSXC installation */
|
||||
root: '',
|
||||
|
||||
/** Timeout for restore in ms */
|
||||
loginTimeout: 1000 * 60 * 10,
|
||||
|
||||
/**
|
||||
* This function decides wether the roster will be displayed or not if no
|
||||
* connection is found.
|
||||
*/
|
||||
displayRosterMinimized: function() {
|
||||
return false;
|
||||
},
|
||||
|
||||
/** Set to true if you want to hide offline buddies. */
|
||||
hideOffline: false,
|
||||
|
||||
/** Mute notification sound? */
|
||||
muteNotification: false,
|
||||
|
||||
/**
|
||||
* If no avatar is found, this function is called.
|
||||
*
|
||||
* @param jid Jid of that user.
|
||||
* @this {jQuery} Elements to update with probable .jsxc_avatar elements
|
||||
*/
|
||||
defaultAvatar: function(jid) {
|
||||
jsxc.gui.avatarPlaceholder($(this).find('.jsxc_avatar'), jid);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns permanent saved settings and overwrite default jsxc.options.
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @param username String username
|
||||
* @param password String password
|
||||
* @returns {object} at least xmpp.url
|
||||
*/
|
||||
loadSettings: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Call this function to save user settings permanent.
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @param data Holds all data as key/value
|
||||
* @returns {boolean} false if function failes
|
||||
*/
|
||||
saveSettinsPermanent: function() {
|
||||
|
||||
},
|
||||
|
||||
carbons: {
|
||||
/** Enable carbon copies? */
|
||||
enable: false
|
||||
},
|
||||
|
||||
/**
|
||||
* Processes user list.
|
||||
*
|
||||
* @callback getUsers-cb
|
||||
* @param {object} list List of users, key: username, value: alias
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns a list of usernames and aliases
|
||||
*
|
||||
* @function getUsers
|
||||
* @memberOf jsxc.options
|
||||
* @param {string} search Search token (start with)
|
||||
* @param {getUsers-cb} cb Called with list of users
|
||||
*/
|
||||
getUsers: null
|
||||
};</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,512 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.otr.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.otr.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source"><code>
|
||||
/**
|
||||
* @namespace jsxc.otr
|
||||
*/
|
||||
jsxc.otr = {
|
||||
/** list of otr objects */
|
||||
objects: {},
|
||||
|
||||
dsaFallback: null,
|
||||
/**
|
||||
* Handler for otr receive event
|
||||
*
|
||||
* @memberOf jsxc.otr
|
||||
* @param {Object} d
|
||||
* @param {string} d.bid
|
||||
* @param {string} d.msg received message
|
||||
* @param {boolean} d.encrypted True, if msg was encrypted.
|
||||
* @param {boolean} d.forwarded
|
||||
* @param {string} d.stamp timestamp
|
||||
*/
|
||||
receiveMessage: function(d) {
|
||||
var bid = d.bid;
|
||||
|
||||
if (jsxc.otr.objects[bid].msgstate !== OTR.CONST.MSGSTATE_PLAINTEXT) {
|
||||
jsxc.otr.backup(bid);
|
||||
}
|
||||
|
||||
if (jsxc.otr.objects[bid].msgstate !== OTR.CONST.MSGSTATE_PLAINTEXT && !d.encrypted) {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Received_an_unencrypted_message') + '. [' + d.msg + ']', d.encrypted, d.forwarded, d.stamp);
|
||||
} else {
|
||||
jsxc.gui.window.postMessage(bid, 'in', d.msg, d.encrypted, d.forwarded, d.stamp);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handler for otr send event
|
||||
*
|
||||
* @param {string} jid
|
||||
* @param {string} msg message to be send
|
||||
*/
|
||||
sendMessage: function(jid, msg, uid) {
|
||||
if (jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate !== 0) {
|
||||
jsxc.otr.backup(jsxc.jidToBid(jid));
|
||||
}
|
||||
|
||||
jsxc.xmpp._sendMessage(jid, msg, uid);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create new otr instance
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
create: function(bid) {
|
||||
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!jsxc.options.otr.priv) {
|
||||
return;
|
||||
}
|
||||
|
||||
// save list of otr objects
|
||||
var ol = jsxc.storage.getUserItem('otrlist') || [];
|
||||
if (ol.indexOf(bid) < 0) {
|
||||
ol.push(bid);
|
||||
jsxc.storage.setUserItem('otrlist', ol);
|
||||
}
|
||||
|
||||
jsxc.otr.objects[bid] = new OTR(jsxc.options.otr);
|
||||
|
||||
if (jsxc.options.otr.SEND_WHITESPACE_TAG) {
|
||||
jsxc.otr.objects[bid].SEND_WHITESPACE_TAG = true;
|
||||
}
|
||||
|
||||
if (jsxc.options.otr.WHITESPACE_START_AKE) {
|
||||
jsxc.otr.objects[bid].WHITESPACE_START_AKE = true;
|
||||
}
|
||||
|
||||
jsxc.otr.objects[bid].on('status', function(status) {
|
||||
var data = jsxc.storage.getUserItem('buddy', bid);
|
||||
|
||||
if (data === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case OTR.CONST.STATUS_SEND_QUERY:
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('trying_to_start_private_conversation'));
|
||||
break;
|
||||
case OTR.CONST.STATUS_AKE_SUCCESS:
|
||||
data.fingerprint = jsxc.otr.objects[bid].their_priv_pk.fingerprint();
|
||||
data.msgstate = OTR.CONST.MSGSTATE_ENCRYPTED;
|
||||
|
||||
var msg = (jsxc.otr.objects[bid].trust ? $.t('Verified') : $.t('Unverified')) + ' ' + $.t('private_conversation_started');
|
||||
jsxc.gui.window.postMessage(bid, 'sys', msg);
|
||||
break;
|
||||
case OTR.CONST.STATUS_END_OTR:
|
||||
data.fingerprint = null;
|
||||
|
||||
if (jsxc.otr.objects[bid].msgstate === OTR.CONST.MSGSTATE_PLAINTEXT) {
|
||||
// we abort the private conversation
|
||||
|
||||
data.msgstate = OTR.CONST.MSGSTATE_PLAINTEXT;
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('private_conversation_aborted'));
|
||||
|
||||
} else {
|
||||
// the buddy abort the private conversation
|
||||
|
||||
data.msgstate = OTR.CONST.MSGSTATE_FINISHED;
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('your_buddy_closed_the_private_conversation_you_should_do_the_same'));
|
||||
}
|
||||
break;
|
||||
case OTR.CONST.STATUS_SMP_HANDLE:
|
||||
jsxc.keepBusyAlive();
|
||||
break;
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('buddy', bid, data);
|
||||
|
||||
// for encryption and verification state
|
||||
jsxc.gui.update(bid);
|
||||
});
|
||||
|
||||
jsxc.otr.objects[bid].on('smp', function(type, data) {
|
||||
switch (type) {
|
||||
case 'question': // verification request received
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Authentication_request_received'));
|
||||
|
||||
if ($('#jsxc_dialog').length > 0) {
|
||||
jsxc.otr.objects[bid].sm.abort();
|
||||
break;
|
||||
}
|
||||
|
||||
jsxc.otr.onSmpQuestion(bid, data);
|
||||
jsxc.storage.setUserItem('smp_' + bid, {
|
||||
data: data || null
|
||||
});
|
||||
|
||||
break;
|
||||
case 'trust': // verification completed
|
||||
jsxc.otr.objects[bid].trust = data;
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'trust', data);
|
||||
jsxc.otr.backup(bid);
|
||||
jsxc.gui.update(bid);
|
||||
|
||||
if (data) {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('conversation_is_now_verified'));
|
||||
} else {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('authentication_failed'));
|
||||
}
|
||||
jsxc.storage.removeUserItem('smp_' + bid);
|
||||
jsxc.gui.dialog.close();
|
||||
break;
|
||||
case 'abort':
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Authentication_aborted'));
|
||||
break;
|
||||
default:
|
||||
jsxc.debug('[OTR] sm callback: Unknown type: ' + type);
|
||||
}
|
||||
});
|
||||
|
||||
// Receive message
|
||||
jsxc.otr.objects[bid].on('ui', function(msg, encrypted, meta) {
|
||||
jsxc.otr.receiveMessage({
|
||||
bid: bid,
|
||||
msg: msg,
|
||||
encrypted: encrypted === true,
|
||||
stamp: meta.stamp,
|
||||
forwarded: meta.forwarded
|
||||
});
|
||||
});
|
||||
|
||||
// Send message
|
||||
jsxc.otr.objects[bid].on('io', function(msg, uid) {
|
||||
var jid = jsxc.gui.window.get(bid).data('jid') || jsxc.otr.objects[bid].jid;
|
||||
|
||||
jsxc.otr.objects[bid].jid = jid;
|
||||
|
||||
jsxc.otr.sendMessage(jid, msg, uid);
|
||||
});
|
||||
|
||||
jsxc.otr.objects[bid].on('error', function(err) {
|
||||
// Handle this case in jsxc.otr.receiveMessage
|
||||
if (err !== 'Received an unencrypted message.') {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', '[OTR] ' + $.t(err));
|
||||
}
|
||||
|
||||
jsxc.error('[OTR] ' + err);
|
||||
});
|
||||
|
||||
jsxc.otr.restore(bid);
|
||||
},
|
||||
|
||||
/**
|
||||
* show verification dialog with related part (secret or question)
|
||||
*
|
||||
* @param {type} bid
|
||||
* @param {string} [data]
|
||||
* @returns {undefined}
|
||||
*/
|
||||
onSmpQuestion: function(bid, data) {
|
||||
jsxc.gui.showVerification(bid);
|
||||
|
||||
$('#jsxc_dialog select').prop('selectedIndex', (data ? 2 : 3)).change();
|
||||
$('#jsxc_dialog > div:eq(0)').hide();
|
||||
|
||||
if (data) {
|
||||
$('#jsxc_dialog > div:eq(2)').find('#jsxc_quest').val(data).prop('disabled', true);
|
||||
$('#jsxc_dialog > div:eq(2)').find('.creation').text('Answer');
|
||||
$('#jsxc_dialog > div:eq(2)').find('.jsxc_explanation').text($.t('your_buddy_is_attempting_to_determine_') + ' ' + $.t('to_authenticate_to_your_buddy') + $.t('enter_the_answer_and_click_answer'));
|
||||
} else {
|
||||
$('#jsxc_dialog > div:eq(3)').find('.jsxc_explanation').text($.t('your_buddy_is_attempting_to_determine_') + ' ' + $.t('to_authenticate_to_your_buddy') + $.t('enter_the_secret'));
|
||||
}
|
||||
|
||||
$('#jsxc_dialog .jsxc_close').click(function() {
|
||||
jsxc.storage.removeUserItem('smp_' + bid);
|
||||
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].sm.abort();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Send verification request to buddy
|
||||
*
|
||||
* @param {string} bid
|
||||
* @param {string} sec secret
|
||||
* @param {string} [quest] question
|
||||
* @returns {undefined}
|
||||
*/
|
||||
sendSmpReq: function(bid, sec, quest) {
|
||||
jsxc.keepBusyAlive();
|
||||
|
||||
jsxc.otr.objects[bid].smpSecret(sec, quest || '');
|
||||
},
|
||||
|
||||
/**
|
||||
* Toggle encryption state
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
toggleTransfer: function(bid) {
|
||||
if (jsxc.storage.getUserItem('buddy', bid).msgstate === 0) {
|
||||
jsxc.otr.goEncrypt(bid);
|
||||
} else {
|
||||
jsxc.otr.goPlain(bid);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Send request to encrypt the session
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
goEncrypt: function(bid) {
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].sendQueryMsg();
|
||||
} else {
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 1);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Abort encryptet session
|
||||
*
|
||||
* @param {type} bid
|
||||
* @param cb callback
|
||||
* @returns {undefined}
|
||||
*/
|
||||
goPlain: function(bid, cb) {
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid], cb);
|
||||
jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]);
|
||||
|
||||
jsxc.otr.backup(bid);
|
||||
} else {
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 0);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Backups otr session
|
||||
*
|
||||
* @param {string} bid
|
||||
*/
|
||||
backup: function(bid) {
|
||||
var o = jsxc.otr.objects[bid]; // otr object
|
||||
var r = {}; // return value
|
||||
|
||||
if (o === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// all variables which should be saved
|
||||
var savekey = [ 'jid', 'our_instance_tag', 'msgstate', 'authstate', 'fragment', 'their_y', 'their_old_y', 'their_keyid', 'their_instance_tag', 'our_dh', 'our_old_dh', 'our_keyid', 'sessKeys', 'storedMgs', 'oldMacKeys', 'trust', 'transmittedRS', 'ssid', 'receivedPlaintext', 'authstate', 'send_interval' ];
|
||||
|
||||
var i;
|
||||
for (i = 0; i < savekey.length; i++) {
|
||||
r[savekey[i]] = JSON.stringify(o[savekey[i]]);
|
||||
}
|
||||
|
||||
if (o.their_priv_pk !== null) {
|
||||
r.their_priv_pk = JSON.stringify(o.their_priv_pk.packPublic());
|
||||
}
|
||||
|
||||
if (o.ake.otr_version && o.ake.otr_version !== '') {
|
||||
r.otr_version = JSON.stringify(o.ake.otr_version);
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('otr', bid, r);
|
||||
},
|
||||
|
||||
/**
|
||||
* Restore old otr session
|
||||
*
|
||||
* @param {string} bid
|
||||
*/
|
||||
restore: function(bid) {
|
||||
var o = jsxc.otr.objects[bid];
|
||||
var d = jsxc.storage.getUserItem('otr', bid);
|
||||
|
||||
if (o !== null || d !== null) {
|
||||
var key;
|
||||
for (key in d) {
|
||||
if (d.hasOwnProperty(key)) {
|
||||
var val = JSON.parse(d[key]);
|
||||
if (key === 'their_priv_pk' && val !== null) {
|
||||
val = DSA.parsePublic(val);
|
||||
}
|
||||
if (key === 'otr_version' && val !== null) {
|
||||
o.ake.otr_version = val;
|
||||
} else {
|
||||
o[key] = val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.otr.objects[bid] = o;
|
||||
|
||||
if (o.msgstate === 1 && o.their_priv_pk !== null) {
|
||||
o._smInit.call(jsxc.otr.objects[bid]);
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.otr.enable(bid);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create or load DSA key
|
||||
*
|
||||
* @returns {unresolved}
|
||||
*/
|
||||
createDSA: function() {
|
||||
if (jsxc.options.otr.priv) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.storage.getUserItem('key') === null) {
|
||||
var msg = $.t('Creating_your_private_key_');
|
||||
var worker = null;
|
||||
|
||||
if (Worker) {
|
||||
// try to create web-worker
|
||||
|
||||
try {
|
||||
worker = new Worker(jsxc.options.root + '/lib/otr/build/dsa-webworker.js');
|
||||
} catch (err) {
|
||||
jsxc.warn('Couldn\'t create web-worker.', err);
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.otr.dsaFallback = (worker === null);
|
||||
|
||||
if (!jsxc.otr.dsaFallback) {
|
||||
// create DSA key in background
|
||||
|
||||
jsxc._onMaster();
|
||||
|
||||
worker.onmessage = function(e) {
|
||||
var type = e.data.type;
|
||||
var val = e.data.val;
|
||||
|
||||
if (type === 'debug') {
|
||||
jsxc.debug(val);
|
||||
} else if (type === 'data') {
|
||||
jsxc.otr.DSAready(DSA.parsePrivate(val));
|
||||
}
|
||||
};
|
||||
|
||||
// start worker
|
||||
worker.postMessage({
|
||||
imports: [ jsxc.options.root + '/lib/otr/vendor/salsa20.js', jsxc.options.root + '/lib/otr/vendor/bigint.js', jsxc.options.root + '/lib/otr/vendor/crypto.js', jsxc.options.root + '/lib/otr/vendor/eventemitter.js', jsxc.options.root + '/lib/otr/lib/const.js', jsxc.options.root + '/lib/otr/lib/helpers.js', jsxc.options.root + '/lib/otr/lib/dsa.js' ],
|
||||
seed: BigInt.getSeed(),
|
||||
debug: true
|
||||
});
|
||||
|
||||
} else {
|
||||
// fallback
|
||||
|
||||
jsxc.gui.dialog.open(jsxc.gui.template.get('waitAlert', null, msg), {
|
||||
noClose: true
|
||||
});
|
||||
|
||||
jsxc.debug('DSA key creation started.');
|
||||
|
||||
// wait until the wait alert is opened
|
||||
setTimeout(function() {
|
||||
var dsa = new DSA();
|
||||
jsxc.otr.DSAready(dsa);
|
||||
}, 500);
|
||||
}
|
||||
} else {
|
||||
jsxc.debug('DSA key loaded');
|
||||
jsxc.options.otr.priv = DSA.parsePrivate(jsxc.storage.getUserItem('key'));
|
||||
|
||||
jsxc.otr._createDSA();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Ending of createDSA().
|
||||
*/
|
||||
_createDSA: function() {
|
||||
|
||||
jsxc.storage.setUserItem('priv_fingerprint', jsxc.options.otr.priv.fingerprint());
|
||||
|
||||
if (jsxc.otr.dsaFallback !== false) {
|
||||
jsxc._onMaster();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Ending of DSA key generation.
|
||||
*
|
||||
* @param {DSA} dsa DSA object
|
||||
*/
|
||||
DSAready: function(dsa) {
|
||||
jsxc.storage.setUserItem('key', dsa.packPrivate());
|
||||
jsxc.options.otr.priv = dsa;
|
||||
|
||||
// close wait alert
|
||||
if (jsxc.otr.dsaFallback) {
|
||||
jsxc.gui.dialog.close();
|
||||
} else {
|
||||
$.each(jsxc.storage.getUserItem('windowlist'), function(index, val) {
|
||||
jsxc.otr.create(val);
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.otr._createDSA();
|
||||
},
|
||||
|
||||
enable: function(bid) {
|
||||
jsxc.gui.window.get(bid).find('.jsxc_otr').removeClass('jsxc_disabled');
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,662 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.storage.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.storage.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source"><code>
|
||||
|
||||
/**
|
||||
* Handle long-live data
|
||||
*
|
||||
* @namespace jsxc.storage
|
||||
*/
|
||||
jsxc.storage = {
|
||||
/**
|
||||
* Prefix for localstorage
|
||||
*
|
||||
* @privat
|
||||
*/
|
||||
PREFIX: 'jsxc',
|
||||
|
||||
SEP: ':',
|
||||
|
||||
/**
|
||||
* @param {type} uk Should we generate a user prefix?
|
||||
* @returns {String} prefix
|
||||
* @memberOf jsxc.storage
|
||||
*/
|
||||
getPrefix: function(uk) {
|
||||
var self = jsxc.storage;
|
||||
|
||||
return self.PREFIX + self.SEP + ((uk && jsxc.bid) ? jsxc.bid + self.SEP : '');
|
||||
},
|
||||
|
||||
/**
|
||||
* Save item to storage
|
||||
*
|
||||
* @function
|
||||
* @param {String} key variablename
|
||||
* @param {Object} value value
|
||||
* @param {String} uk Userkey? Should we add the bid as prefix?
|
||||
*/
|
||||
setItem: function(key, value, uk) {
|
||||
|
||||
// Workaround for non-conform browser
|
||||
if (jsxc.storageNotConform > 0 && key !== 'rid' && key !== 'lastActivity') {
|
||||
if (jsxc.storageNotConform > 1 && jsxc.toSNC === null) {
|
||||
jsxc.toSNC = window.setTimeout(function() {
|
||||
jsxc.storageNotConform = 0;
|
||||
jsxc.storage.setItem('storageNotConform', 0);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
jsxc.ls.push(JSON.stringify({
|
||||
key: key,
|
||||
value: value
|
||||
}));
|
||||
}
|
||||
|
||||
if (typeof (value) === 'object') {
|
||||
value = JSON.stringify(value);
|
||||
}
|
||||
|
||||
localStorage.setItem(jsxc.storage.getPrefix(uk) + key, value);
|
||||
},
|
||||
|
||||
setUserItem: function(type, key, value) {
|
||||
var self = jsxc.storage;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
value = key;
|
||||
key = type;
|
||||
type = '';
|
||||
} else if (arguments.length === 3) {
|
||||
key = type + self.SEP + key;
|
||||
}
|
||||
|
||||
return jsxc.storage.setItem(key, value, true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Load item from storage
|
||||
*
|
||||
* @function
|
||||
* @param {String} key variablename
|
||||
* @param {String} uk Userkey? Should we add the bid as prefix?
|
||||
*/
|
||||
getItem: function(key, uk) {
|
||||
key = jsxc.storage.getPrefix(uk) + key;
|
||||
|
||||
var value = localStorage.getItem(key);
|
||||
try {
|
||||
return JSON.parse(value);
|
||||
} catch (e) {
|
||||
return value;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Get a user item from storage.
|
||||
*
|
||||
* @param key
|
||||
* @returns user item
|
||||
*/
|
||||
getUserItem: function(type, key) {
|
||||
var self = jsxc.storage;
|
||||
|
||||
if (arguments.length === 1) {
|
||||
key = type;
|
||||
} else if (arguments.length === 2) {
|
||||
key = type + self.SEP + key;
|
||||
}
|
||||
|
||||
return jsxc.storage.getItem(key, true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove item from storage
|
||||
*
|
||||
* @function
|
||||
* @param {String} key variablename
|
||||
* @param {String} uk Userkey? Should we add the bid as prefix?
|
||||
*/
|
||||
removeItem: function(key, uk) {
|
||||
|
||||
// Workaround for non-conform browser
|
||||
if (jsxc.storageNotConform && key !== 'rid' && key !== 'lastActivity') {
|
||||
jsxc.ls.push(JSON.stringify({
|
||||
key: jsxc.storage.prefix + key,
|
||||
value: ''
|
||||
}));
|
||||
}
|
||||
|
||||
localStorage.removeItem(jsxc.storage.getPrefix(uk) + key);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove user item from storage.
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
removeUserItem: function(type, key) {
|
||||
var self = jsxc.storage;
|
||||
|
||||
if (arguments.length === 1) {
|
||||
key = type;
|
||||
} else if (arguments.length === 2) {
|
||||
key = type + self.SEP + key;
|
||||
}
|
||||
|
||||
jsxc.storage.removeItem(key, true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates value of a variable in a saved object.
|
||||
*
|
||||
* @function
|
||||
* @param {String} key variablename
|
||||
* @param {String|object} variable variablename in object or object with
|
||||
* variable/key pairs
|
||||
* @param {Object} [value] value
|
||||
* @param {String} uk Userkey? Should we add the bid as prefix?
|
||||
*/
|
||||
updateItem: function(key, variable, value, uk) {
|
||||
|
||||
var data = jsxc.storage.getItem(key, uk) || {};
|
||||
|
||||
if (typeof (variable) === 'object') {
|
||||
|
||||
$.each(variable, function(key, val) {
|
||||
if (typeof (data[key]) === 'undefined') {
|
||||
jsxc.debug('Variable ' + key + ' doesn\'t exist in ' + variable + '. It was created.');
|
||||
}
|
||||
|
||||
data[key] = val;
|
||||
});
|
||||
} else {
|
||||
if (typeof (data[variable]) === 'undefined') {
|
||||
jsxc.debug('Variable ' + variable + ' doesn\'t exist. It was created.');
|
||||
}
|
||||
|
||||
data[variable] = value;
|
||||
}
|
||||
|
||||
jsxc.storage.setItem(key, data, uk);
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates value of a variable in a saved user object.
|
||||
*
|
||||
* @param {String} key variablename
|
||||
* @param {String|object} variable variablename in object or object with
|
||||
* variable/key pairs
|
||||
* @param {Object} [value] value
|
||||
*/
|
||||
updateUserItem: function(type, key, variable, value) {
|
||||
var self = jsxc.storage;
|
||||
|
||||
if (arguments.length === 4 || (arguments.length === 3 && typeof variable === 'object')) {
|
||||
key = type + self.SEP + key;
|
||||
} else {
|
||||
value = variable;
|
||||
variable = key;
|
||||
key = type;
|
||||
}
|
||||
|
||||
return jsxc.storage.updateItem(key, variable, value, true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Inkrements value
|
||||
*
|
||||
* @function
|
||||
* @param {String} key variablename
|
||||
* @param {String} uk Userkey? Should we add the bid as prefix?
|
||||
*/
|
||||
ink: function(key, uk) {
|
||||
|
||||
jsxc.storage.setItem(key, Number(jsxc.storage.getItem(key, uk)) + 1, uk);
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove element from array or object
|
||||
*
|
||||
* @param {string} key name of array or object
|
||||
* @param {string} name name of element in array or object
|
||||
* @param {String} uk Userkey? Should we add the bid as prefix?
|
||||
* @returns {undefined}
|
||||
*/
|
||||
removeElement: function(key, name, uk) {
|
||||
var item = jsxc.storage.getItem(key, uk);
|
||||
|
||||
if ($.isArray(item)) {
|
||||
item = $.grep(item, function(e) {
|
||||
return e !== name;
|
||||
});
|
||||
} else if (typeof (item) === 'object') {
|
||||
delete item[name];
|
||||
}
|
||||
|
||||
jsxc.storage.setItem(key, item, uk);
|
||||
},
|
||||
|
||||
removeUserElement: function(type, key, name) {
|
||||
var self = jsxc.storage;
|
||||
|
||||
if (arguments.length === 2) {
|
||||
name = key;
|
||||
key = type;
|
||||
} else if (arguments.length === 3) {
|
||||
key = type + self.SEP + key;
|
||||
}
|
||||
|
||||
return jsxc.storage.removeElement(key, name, true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggered if changes are recognized
|
||||
*
|
||||
* @function
|
||||
* @param {event} e Storageevent
|
||||
* @param {String} e.key Keyname which triggered event
|
||||
* @param {Object} e.oldValue Old Value for key
|
||||
* @param {Object} e.newValue New Value for key
|
||||
* @param {String} e.url
|
||||
*/
|
||||
onStorage: function(e) {
|
||||
|
||||
// skip
|
||||
if (e.key === jsxc.storage.PREFIX + jsxc.storage.SEP + 'rid' || e.key === jsxc.storage.PREFIX + jsxc.storage.SEP + 'lastActivity') {
|
||||
return;
|
||||
}
|
||||
|
||||
var re = new RegExp('^' + jsxc.storage.PREFIX + jsxc.storage.SEP + '(?:[^' + jsxc.storage.SEP + ']+@[^' + jsxc.storage.SEP + ']+' + jsxc.storage.SEP + ')?(.*)', 'i');
|
||||
var key = e.key.replace(re, '$1');
|
||||
|
||||
// Workaround for non-conform browser: Triggered event on every page
|
||||
// (own)
|
||||
if (jsxc.storageNotConform > 0 && jsxc.ls.length > 0) {
|
||||
|
||||
var val = e.newValue;
|
||||
try {
|
||||
val = JSON.parse(val);
|
||||
} catch (err) {
|
||||
}
|
||||
|
||||
var index = $.inArray(JSON.stringify({
|
||||
key: key,
|
||||
value: val
|
||||
}), jsxc.ls);
|
||||
|
||||
if (index >= 0) {
|
||||
|
||||
// confirm that the storage event is not fired regularly
|
||||
if (jsxc.storageNotConform > 1) {
|
||||
window.clearTimeout(jsxc.toSNC);
|
||||
jsxc.storageNotConform = 1;
|
||||
jsxc.storage.setItem('storageNotConform', 1);
|
||||
}
|
||||
|
||||
jsxc.ls.splice(index, 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Workaround for non-conform browser
|
||||
if (e.oldValue === e.newValue) {
|
||||
return;
|
||||
}
|
||||
|
||||
var n, o;
|
||||
var bid = key.replace(new RegExp('[^' + jsxc.storage.SEP + ']+' + jsxc.storage.SEP + '(.*)', 'i'), '$1');
|
||||
|
||||
// react if someone ask, if there is a master
|
||||
if (jsxc.master && key === 'alive') {
|
||||
jsxc.debug('Master request.');
|
||||
|
||||
jsxc.storage.ink('alive');
|
||||
return;
|
||||
}
|
||||
|
||||
// master alive
|
||||
if (!jsxc.master && (key === 'alive' || key === 'alive_busy') && !jsxc.triggeredFromElement) {
|
||||
|
||||
// reset timeout
|
||||
window.clearTimeout(jsxc.to);
|
||||
jsxc.to = window.setTimeout(jsxc.checkMaster, ((key === 'alive') ? jsxc.options.timeout : jsxc.options.busyTimeout) + jsxc.random(60));
|
||||
|
||||
// only call the first time
|
||||
if (!jsxc.role_allocation) {
|
||||
jsxc.onSlave();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (key.match(/^notices/)) {
|
||||
jsxc.notice.load();
|
||||
}
|
||||
|
||||
if (key.match(/^presence/)) {
|
||||
jsxc.gui.changePresence(e.newValue, true);
|
||||
}
|
||||
|
||||
if (key.match(/^options/) && e.newValue) {
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
if (typeof n.muteNotification !== 'undefined' && n.muteNotification) {
|
||||
jsxc.notification.muteSound(true);
|
||||
} else {
|
||||
jsxc.notification.unmuteSound(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (key.match(/^hidden/)) {
|
||||
if (jsxc.master) {
|
||||
clearTimeout(jsxc.toNotification);
|
||||
} else {
|
||||
jsxc.isHidden();
|
||||
}
|
||||
}
|
||||
|
||||
if (key.match(/^focus/)) {
|
||||
if (jsxc.master) {
|
||||
clearTimeout(jsxc.toNotification);
|
||||
} else {
|
||||
jsxc.hasFocus();
|
||||
}
|
||||
}
|
||||
|
||||
if (key.match(new RegExp('^chat' + jsxc.storage.SEP))) {
|
||||
|
||||
var posts = JSON.parse(e.newValue);
|
||||
var data, el;
|
||||
|
||||
while (posts.length > 0) {
|
||||
data = posts.pop();
|
||||
el = $('#' + data.uid);
|
||||
|
||||
if (el.length === 0) {
|
||||
if (jsxc.master && data.direction === 'out') {
|
||||
jsxc.xmpp.sendMessage(bid, data.msg, data.uid);
|
||||
}
|
||||
|
||||
jsxc.gui.window._postMessage(bid, data);
|
||||
} else if (data.received) {
|
||||
el.addClass('jsxc_received');
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (key.match(new RegExp('^window' + jsxc.storage.SEP))) {
|
||||
|
||||
if (!e.newValue) {
|
||||
jsxc.gui.window._close(bid);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!e.oldValue) {
|
||||
jsxc.gui.window.open(bid);
|
||||
return;
|
||||
}
|
||||
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
if (n.minimize) {
|
||||
jsxc.gui.window._hide(bid);
|
||||
} else {
|
||||
jsxc.gui.window._show(bid);
|
||||
}
|
||||
|
||||
jsxc.gui.window.setText(bid, n.text);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (key.match(new RegExp('^smp' + jsxc.storage.SEP))) {
|
||||
|
||||
if (!e.newValue) {
|
||||
|
||||
jsxc.gui.dialog.close();
|
||||
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].sm.abort();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
if (typeof (n.data) !== 'undefined') {
|
||||
|
||||
jsxc.otr.onSmpQuestion(bid, n.data);
|
||||
|
||||
} else if (jsxc.master && n.sec) {
|
||||
jsxc.gui.dialog.close();
|
||||
|
||||
jsxc.otr.sendSmpReq(bid, n.sec, n.quest);
|
||||
}
|
||||
}
|
||||
|
||||
if (!jsxc.master && key.match(new RegExp('^buddy' + jsxc.storage.SEP))) {
|
||||
|
||||
if (!e.newValue) {
|
||||
jsxc.gui.roster.purge(bid);
|
||||
return;
|
||||
}
|
||||
if (!e.oldValue) {
|
||||
jsxc.gui.roster.add(bid);
|
||||
return;
|
||||
}
|
||||
|
||||
n = JSON.parse(e.newValue);
|
||||
o = JSON.parse(e.oldValue);
|
||||
|
||||
jsxc.gui.update(bid);
|
||||
|
||||
if (o.status !== n.status || o.sub !== n.sub) {
|
||||
jsxc.gui.roster.reorder(bid);
|
||||
}
|
||||
}
|
||||
|
||||
if (jsxc.master && key.match(new RegExp('^deletebuddy' + jsxc.storage.SEP)) && e.newValue) {
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
jsxc.xmpp.removeBuddy(n.jid);
|
||||
jsxc.storage.removeUserItem(key);
|
||||
}
|
||||
|
||||
if (jsxc.master && key.match(new RegExp('^buddy' + jsxc.storage.SEP))) {
|
||||
|
||||
n = JSON.parse(e.newValue);
|
||||
o = JSON.parse(e.oldValue);
|
||||
|
||||
if (o.transferReq !== n.transferReq) {
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', -1);
|
||||
|
||||
if (n.transferReq === 0) {
|
||||
jsxc.otr.goPlain(bid);
|
||||
}
|
||||
if (n.transferReq === 1) {
|
||||
jsxc.otr.goEncrypt(bid);
|
||||
}
|
||||
}
|
||||
|
||||
if (o.name !== n.name) {
|
||||
jsxc.gui.roster._rename(bid, n.name);
|
||||
}
|
||||
}
|
||||
|
||||
// logout
|
||||
if (key === 'sid') {
|
||||
if (!e.newValue) {
|
||||
// if (jsxc.master && jsxc.xmpp.conn) {
|
||||
// jsxc.xmpp.conn.disconnect();
|
||||
// jsxc.triggeredFromElement = true;
|
||||
// }
|
||||
jsxc.xmpp.logout();
|
||||
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (key === 'friendReq') {
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
if (jsxc.master && n.approve >= 0) {
|
||||
jsxc.xmpp.resFriendReq(n.jid, n.approve);
|
||||
}
|
||||
}
|
||||
|
||||
if (jsxc.master && key.match(new RegExp('^add' + jsxc.storage.SEP))) {
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
jsxc.xmpp.addBuddy(n.username, n.alias);
|
||||
}
|
||||
|
||||
if (key === 'roster') {
|
||||
jsxc.gui.roster.toggle();
|
||||
}
|
||||
|
||||
if (jsxc.master && key.match(new RegExp('^vcard' + jsxc.storage.SEP)) && e.newValue !== null && e.newValue.match(/^request:/)) {
|
||||
|
||||
jsxc.xmpp.loadVcard(bid, function(stanza) {
|
||||
jsxc.storage.setUserItem('vcard', bid, {
|
||||
state: 'success',
|
||||
data: $('<div>').append(stanza).html()
|
||||
});
|
||||
}, function() {
|
||||
jsxc.storage.setUserItem('vcard', bid, {
|
||||
state: 'error'
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (!jsxc.master && key.match(new RegExp('^vcard' + jsxc.storage.SEP)) && e.newValue !== null && !e.newValue.match(/^request:/)) {
|
||||
n = JSON.parse(e.newValue);
|
||||
|
||||
if (typeof n.state !== 'undefined') {
|
||||
$(document).trigger('loaded.vcard.jsxc', n);
|
||||
}
|
||||
|
||||
jsxc.storage.removeUserItem('vcard', bid);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Save message to storage.
|
||||
*
|
||||
* @memberOf jsxc.storage
|
||||
* @param bid
|
||||
* @param direction
|
||||
* @param msg
|
||||
* @param encrypted
|
||||
* @param forwarded
|
||||
* @param sender
|
||||
* @return post
|
||||
*/
|
||||
saveMessage: function(bid, direction, msg, encrypted, forwarded, stamp, sender) {
|
||||
var chat = jsxc.storage.getUserItem('chat', bid) || [];
|
||||
|
||||
var uid = new Date().getTime() + ':msg';
|
||||
|
||||
if (chat.length > jsxc.options.get('numberOfMsg')) {
|
||||
chat.pop();
|
||||
}
|
||||
|
||||
var post = {
|
||||
direction: direction,
|
||||
msg: msg,
|
||||
uid: uid.replace(/:/, '-'),
|
||||
received: false,
|
||||
encrypted: encrypted || false,
|
||||
forwarded: forwarded || false,
|
||||
stamp: stamp || new Date().getTime(),
|
||||
sender: sender
|
||||
};
|
||||
|
||||
chat.unshift(post);
|
||||
jsxc.storage.setUserItem('chat', bid, chat);
|
||||
|
||||
return post;
|
||||
},
|
||||
|
||||
/**
|
||||
* Save or update buddy data.
|
||||
*
|
||||
* @memberOf jsxc.storage
|
||||
* @param bid
|
||||
* @param data
|
||||
* @returns {String} Updated or created
|
||||
*/
|
||||
saveBuddy: function(bid, data) {
|
||||
|
||||
if (jsxc.storage.getUserItem('buddy', bid)) {
|
||||
jsxc.storage.updateUserItem('buddy', bid, data);
|
||||
|
||||
return 'updated';
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('buddy', bid, $.extend({
|
||||
jid: '',
|
||||
name: '',
|
||||
status: 0,
|
||||
sub: 'none',
|
||||
msgstate: 0,
|
||||
transferReq: -1,
|
||||
trust: false,
|
||||
fingerprint: null,
|
||||
res: [],
|
||||
type: 'chat'
|
||||
}, data));
|
||||
|
||||
return 'created';
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -25,17 +25,16 @@
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source"><code>/* global jsxc, Strophe, SDPUtil, getUserMediaWithConstraints, setupRTC, jQuery, MediaStreamTrack */
|
||||
<pre class="prettyprint source"><code>/* global SDPUtil, getUserMediaWithConstraints, setupRTC, MediaStreamTrack, RTC, RTCPeerconnection */
|
||||
/* jshint -W020 */
|
||||
|
||||
var RTC = null, RTCPeerconnection = null;
|
||||
|
||||
jsxc.gui.template.incomingCall = '<h3>%%Incoming_call%%</h3>\
|
||||
<p>%%Do_you_want_to_accept_the_call_from%% {{bid_name}}?</p>\
|
||||
jsxc.gui.template.incomingCall = '<h3 data-i18n="Incoming_call"></h3>\
|
||||
<p><span data-i18n="Do_you_want_to_accept_the_call_from"></span> {{bid_name}}?</p>\
|
||||
<p class="jsxc_right">\
|
||||
<a href="#" class="button jsxc_reject">%%Reject%%</a> <a href="#" class="button creation jsxc_accept">%%Accept%%</a>\
|
||||
<a href="#" class="button jsxc_reject" data-i18n="Reject"></a> <a href="#" class="button creation jsxc_accept" data-i18n="Accept"></a>\
|
||||
</p>';
|
||||
|
||||
jsxc.gui.template.allowMediaAccess = '<p>%%Please_allow_access_to_microphone_and_camera%%</p>';
|
||||
jsxc.gui.template.allowMediaAccess = '<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>';
|
||||
|
||||
jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
<div class="jsxc_chatarea">\
|
||||
@@ -56,22 +55,22 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
<div class="jsxc_noRemoteVideo">\
|
||||
<div>\
|
||||
<div></div>\
|
||||
<p>%%No_video_signal%%</p>\
|
||||
<p data-i18n="No_video_signal"></p>\
|
||||
<div></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="jsxc_controlbar">\
|
||||
<button type="button" class="jsxc_hangUp">%%hang_up%%</button>\
|
||||
<button type="button" class="jsxc_hangUp" data-i18n="hang_up"></button>\
|
||||
<input type="range" class="jsxc_volume" min="0.0" max="1.0" step="0.05" value="0.5" />\
|
||||
<div class="jsxc_buttongroup">\
|
||||
<button type="button" class="jsxc_snapshot">%%snapshot%%</button><button type="button" class="jsxc_snapshots">▼</button>\
|
||||
<button type="button" class="jsxc_snapshot" data-i18n="snapshot"></button><button type="button" class="jsxc_snapshots">▼</button>\
|
||||
</div>\
|
||||
<!-- <button type="button" class="jsxc_mute_local">%%mute_my_audio%%</button>\
|
||||
<button type="button" class="jsxc_pause_local">%%pause_my_video%%</button> --> \
|
||||
<button type="button" class="jsxc_showchat">%%chat%%</button>\
|
||||
<button type="button" class="jsxc_fullscreen">%%fullscreen%%</button>\
|
||||
<button type="button" class="jsxc_info">%%Info%%</button>\
|
||||
<!-- <button type="button" class="jsxc_mute_local" data-i18n="mute_my_audio"></button>\
|
||||
<button type="button" class="jsxc_pause_local" data-i18n="pause_my_video"></button> --> \
|
||||
<button type="button" class="jsxc_showchat" data-i18n="chat"></button>\
|
||||
<button type="button" class="jsxc_fullscreen" data-i18n="fullscreen"></button>\
|
||||
<button type="button" class="jsxc_info" data-i18n="Info"></button>\
|
||||
</div>\
|
||||
<div class="jsxc_multi">\
|
||||
<div class="jsxc_snapshotbar">\
|
||||
@@ -84,9 +83,6 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
</div>\
|
||||
</div>';
|
||||
|
||||
(function($) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* WebRTC namespace for jsxc.
|
||||
*
|
||||
@@ -252,7 +248,7 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
return;
|
||||
}
|
||||
|
||||
var videoIcon = $('<div class="jsxc_video jsxc_disabled" title="' + jsxc.l.Start_video_call + '"></div>');
|
||||
var videoIcon = $('<div class="jsxc_video jsxc_disabled" title="' + $.t("Start_video_call") + '"></div>');
|
||||
|
||||
videoIcon.click(function() {
|
||||
self.startCall(data.jid);
|
||||
@@ -277,6 +273,10 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
initWindow: function(event, win) {
|
||||
var self = jsxc.webrtc;
|
||||
|
||||
if (win.hasClass('jsxc_groupchat')) {
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.debug('webrtc.initWindow');
|
||||
|
||||
if (!self.conn) {
|
||||
@@ -302,6 +302,11 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
jsxc.debug('Update icon', bid);
|
||||
|
||||
var self = jsxc.webrtc;
|
||||
|
||||
if (bid === jsxc.jidToBid(self.conn.jid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
var jid = win.data('jid') || jsxc.storage.getUserItem('buddy', bid).jid;
|
||||
|
||||
@@ -311,28 +316,30 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
var targetRes = Strophe.getResourceFromJid(jid);
|
||||
|
||||
if (targetRes === null) {
|
||||
$.each(jsxc.storage.getUserItem('buddy', bid).res, function(index, val) {
|
||||
$.each(jsxc.storage.getUserItem('buddy', bid).res || [], function(index, val) {
|
||||
if (capableRes.indexOf(val) > -1) {
|
||||
targetRes = val;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
jid = jid + '/' + targetRes;
|
||||
}
|
||||
|
||||
el.off('click');
|
||||
|
||||
if (capableRes.indexOf(targetRes) > -1) {
|
||||
el.click(function() {
|
||||
self.startCall(jid + '/' + targetRes);
|
||||
self.startCall(jid);
|
||||
});
|
||||
|
||||
el.removeClass('jsxc_disabled');
|
||||
|
||||
el.attr('title', jsxc.translate('%%Start video call%%'));
|
||||
el.attr('title', $.t('Start_video_call'));
|
||||
} else {
|
||||
el.addClass('jsxc_disabled');
|
||||
|
||||
el.attr('title', jsxc.translate('%%Video call not possible.%%'));
|
||||
el.attr('title', $.t('Video_call_not_possible'));
|
||||
}
|
||||
},
|
||||
|
||||
@@ -477,7 +484,7 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
onMediaFailure: function(ev, err) {
|
||||
this.setStatus('media failure');
|
||||
|
||||
jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller), 'sys', jsxc.translate('%%Media failure%%: ') + err.name);
|
||||
jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller), 'sys', $.t('Media_failure') + err.name);
|
||||
jsxc.debug('media failure: ' + err.name);
|
||||
},
|
||||
|
||||
@@ -496,10 +503,10 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
var sess = this.conn.jingle.sessions[sid];
|
||||
var bid = jsxc.jidToBid(sess.peerjid);
|
||||
|
||||
jsxc.gui.window.postMessage(bid, 'sys', jsxc.translate('%%Incoming call.%%'));
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Incoming_call'));
|
||||
|
||||
// display notification
|
||||
jsxc.notification.notify(jsxc.translate('%%Incoming call%%'), jsxc.translate('%%from%% ' + bid));
|
||||
jsxc.notification.notify($.t('Incoming_call'), $.t('from') + ' ' + bid);
|
||||
|
||||
// send signal to partner
|
||||
sess.sendRinging();
|
||||
@@ -582,7 +589,7 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
$(document).off('error.jingle');
|
||||
jsxc.gui.dialog.close();
|
||||
|
||||
jsxc.gui.window.postMessage(bid, 'sys', jsxc.translate('%%Call terminated%%' + (reason ? (': %%' + reason + '%%') : '') + '.'));
|
||||
jsxc.gui.window.postMessage(bid, 'sys', ($.t('Call_terminated') + (reason ? (': ' + $.t(reason)) : '') + '.'));
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -686,15 +693,15 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
}
|
||||
|
||||
var text = '<p>';
|
||||
text += '<b>' + jsxc.translate('%%Local IP%%: ') + '</b>' + sess.local_ip + '<br />';
|
||||
text += '<b>' + jsxc.translate('%%Remote IP%%: ') + '</b>' + sess.remote_ip + '<br />';
|
||||
text += '<b>' + jsxc.translate('%%Local Fingerprint%%: ') + '</b>' + sess.local_fp + '<br />';
|
||||
text += '<b>' + jsxc.translate('%%Remote Fingerprint%%: ') + '</b>' + sess.remote_fp;
|
||||
text += '<b>' + $.t('Local_IP') + ': </b>' + sess.local_ip + '<br />';
|
||||
text += '<b>' + $.t('Remote_IP') + ': </b>' + sess.remote_ip + '<br />';
|
||||
text += '<b>' + $.t('Local_Fingerprint') + ': </b>' + sess.local_fp + '<br />';
|
||||
text += '<b>' + $.t('Remote_Fingerprint') + ': </b>' + sess.remote_fp;
|
||||
text += '</p>';
|
||||
|
||||
$('#jsxc_dialog .jsxc_infobar').html(text);
|
||||
} else if (iceCon === 'failed') {
|
||||
jsxc.gui.window.postMessage(jsxc.jidToBid(sess.peerjid), 'sys', jsxc.translate('%%ICE connection failure%%.'));
|
||||
jsxc.gui.window.postMessage(jsxc.jidToBid(sess.peerjid), 'sys', $.t('ICE_connection_failure'));
|
||||
|
||||
$(document).off('cleanup.dialog.jsxc');
|
||||
|
||||
@@ -736,7 +743,7 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
'finish.mediaready.jsxc': function() {
|
||||
self.setStatus('Initiate call');
|
||||
|
||||
jsxc.gui.window.postMessage(jsxc.jidToBid(jid), 'sys', jsxc.translate('%%Call started.%%'));
|
||||
jsxc.gui.window.postMessage(jsxc.jidToBid(jid), 'sys', $.t('Call_started'));
|
||||
|
||||
$(document).one('error.jingle', function(e, sid, error) {
|
||||
if (error.source !== 'offer') {
|
||||
@@ -1000,69 +1007,6 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
}
|
||||
});
|
||||
|
||||
$.extend(jsxc.l10n.en, {
|
||||
Please_allow_access_to_microphone_and_camera: 'Please click the "Allow" button at the top, to allow access to microphone and camera.',
|
||||
Incoming_call: 'Incoming call',
|
||||
from: 'from',
|
||||
Do_you_want_to_accept_the_call_from: 'Do you want to accept the call from',
|
||||
Reject: 'Reject',
|
||||
Accept: 'Accept',
|
||||
hang_up: 'hang up',
|
||||
snapshot: 'snapshot',
|
||||
mute_my_audio: 'mute my audio',
|
||||
pause_my_video: 'pause my video',
|
||||
fullscreen: 'fullscreen',
|
||||
Info: 'Info',
|
||||
Local_IP: 'Local IP',
|
||||
Remote_IP: 'Remote IP',
|
||||
Local_Fingerprint: 'Local fingerprint',
|
||||
Remote_Fingerprint: 'Remote fingerprint',
|
||||
Video_call_not_possible: 'Video call not possible. Your buddy does not support video calls.',
|
||||
Start_video_call: 'Start video call'
|
||||
});
|
||||
|
||||
$.extend(jsxc.l10n.de, {
|
||||
Please_allow_access_to_microphone_and_camera: 'Bitte klick auf den "Zulassen" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.',
|
||||
Incoming_call: 'Eingehender Anruf',
|
||||
from: 'von',
|
||||
Do_you_want_to_accept_the_call_from: 'Möchtest Du den Anruf annehmen von',
|
||||
Reject: 'Ablehnen',
|
||||
Accept: 'Annehmen',
|
||||
hang_up: 'Auflegen',
|
||||
snapshot: 'Schnappschuss',
|
||||
mute_my_audio: 'Mein Ton aus',
|
||||
pause_my_video: 'Mein Video pausieren',
|
||||
fullscreen: 'Vollbild',
|
||||
Info: 'Info',
|
||||
Local_IP: 'Lokale IP',
|
||||
Remote_IP: 'Remote IP',
|
||||
Local_Fingerprint: 'Lokaler Fingerprint',
|
||||
Remote_Fingerprint: 'Remote Fingerprint',
|
||||
Video_call_not_possible: 'Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.',
|
||||
Start_video_call: 'Starte Videoanruf'
|
||||
});
|
||||
|
||||
$.extend(jsxc.l10n.es, {
|
||||
Please_allow_access_to_microphone_and_camera: 'Por favor, permitir el acceso al micrófono y la cámara.',
|
||||
Incoming_call: 'Llamada entrante',
|
||||
from: 'de',
|
||||
Do_you_want_to_accept_the_call_from: 'Desea aceptar la llamada de',
|
||||
Reject: 'Rechazar',
|
||||
Accept: 'Aceptar',
|
||||
hang_up: 'colgar',
|
||||
snapshot: 'instantánea',
|
||||
mute_my_audio: 'silenciar mi audio',
|
||||
pause_my_video: 'pausar mi vídeo',
|
||||
fullscreen: 'pantalla completa',
|
||||
Info: 'Info',
|
||||
Local_IP: 'IP local',
|
||||
Remote_IP: 'IP remota',
|
||||
Local_Fingerprint: 'Firma digital local',
|
||||
Remote_Fingerprint: 'Firma digital remota',
|
||||
Video_call_not_possible: 'Llamada de vídeo no es posible',
|
||||
Start_video_call: 'Iniciar llamada de vídeo'
|
||||
});
|
||||
}(jQuery));
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
@@ -1073,13 +1017,13 @@ jsxc.gui.template.videoWindow = '<div class="jsxc_webrtc">\
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:27 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
+2948
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5052">line 5052</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line1">line 1</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5060">line 5060</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line9">line 9</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5218">line 5218</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line191">line 191</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -257,8 +257,8 @@
|
||||
|
||||
|
||||
<div class="description">
|
||||
Checks if browser has support for notifications and add on chrome to
|
||||
the default api.
|
||||
Checks if browser has support for notifications and add on chrome to the
|
||||
default api.
|
||||
</div>
|
||||
|
||||
|
||||
@@ -291,7 +291,7 @@ the default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5130">line 5130</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line112">line 112</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -382,7 +382,7 @@ the default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5067">line 5067</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line16">line 16</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -500,7 +500,7 @@ the default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5277">line 5277</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line250">line 250</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -528,7 +528,7 @@ the default api.
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="notify"><span class="type-signature"><static> </span>notify<span class="signature">(title, msg, d, force, soundFile, loop)</span><span class="type-signature"></span></h4>
|
||||
<h4 class="name" id="notify"><span class="type-signature"><static> </span>notify<span class="signature">(title, msg, d, force, soundFile, loop, source)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
@@ -675,6 +675,24 @@ the default api.
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>source</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Bid which triggered this notification</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -702,7 +720,7 @@ the default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5094">line 5094</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line49">line 49</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -865,7 +883,7 @@ the default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5230">line 5230</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line203">line 203</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -935,7 +953,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5174">line 5174</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line156">line 156</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1004,7 +1022,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5199">line 5199</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line172">line 172</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1073,7 +1091,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5261">line 5261</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line234">line 234</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1191,7 +1209,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5292">line 5292</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line265">line 265</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1232,13 +1250,13 @@ messages.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+190
-28
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line680">line 680</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line1">line 1</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line688">line 688</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line9">line 9</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line747">line 747</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line84">line 84</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line694">line 694</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line15">line 15</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line744">line 744</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line81">line 81</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line773">line 773</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line110">line 110</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line721">line 721</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line46">line 46</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line762">line 762</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line99">line 99</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -512,7 +512,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line738">line 738</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line75">line 75</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -566,7 +566,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line776">line 776</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line113">line 113</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -620,7 +620,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line753">line 753</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line90">line 90</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -674,7 +674,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line741">line 741</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line78">line 78</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -728,7 +728,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line697">line 697</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line18">line 18</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -782,7 +782,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line756">line 756</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line93">line 93</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -836,7 +836,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line712">line 712</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line37">line 37</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -890,7 +890,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line759">line 759</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line96">line 96</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -944,7 +944,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line750">line 750</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line87">line 87</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -998,7 +998,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line691">line 691</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line12">line 12</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1052,7 +1052,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line702">line 702</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line27">line 27</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1163,7 +1163,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line784">line 784</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line121">line 121</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1233,7 +1233,7 @@ connection is found.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line768">line 768</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line105">line 105</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1350,7 +1350,7 @@ connection is found.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line168">line 168</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line190">line 190</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1383,6 +1383,146 @@ connection is found.
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="getUsers"><span class="type-signature"><static> </span>getUsers<span class="signature">(search, cb)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Returns a list of usernames and aliases
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>search</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Search token (start with)</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>cb</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><a href="global.html#getUsers-cb">getUsers-cb</a></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Called with list of users</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line155">line 155</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
@@ -1490,7 +1630,7 @@ connection is found.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line796">line 796</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line133">line 133</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1540,7 +1680,7 @@ connection is found.
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="saveSettinsPermanent"><span class="type-signature"><static> </span>saveSettinsPermanent<span class="signature">(data)</span><span class="type-signature"></span></h4>
|
||||
<h4 class="name" id="saveSettinsPermanent"><span class="type-signature"><static> </span>saveSettinsPermanent<span class="signature">(data)</span><span class="type-signature"> → {boolean}</span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
@@ -1624,7 +1764,7 @@ connection is found.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line806">line 806</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line144">line 144</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1645,6 +1785,28 @@ connection is found.
|
||||
|
||||
|
||||
|
||||
<h5>Returns:</h5>
|
||||
|
||||
|
||||
<div class="param-desc">
|
||||
false if function failes
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
Type
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<span class="param-type">boolean</span>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
@@ -1764,7 +1926,7 @@ connection is found.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line180">line 180</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line202">line 202</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1805,13 +1967,13 @@ connection is found.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+113
-19
@@ -64,7 +64,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4600">line 4600</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line2">line 2</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4605">line 4605</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line7">line 7</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5017">line 5017</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line429">line 429</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4880">line 4880</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line292">line 292</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4649">line 4649</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line55">line 55</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -518,7 +518,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4947">line 4947</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line359">line 359</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -653,7 +653,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line5031">line 5031</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line443">line 443</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -770,7 +770,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4849">line 4849</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line261">line 261</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -923,7 +923,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4864">line 4864</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line276">line 276</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1101,7 +1101,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4792">line 4792</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line204">line 204</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1147,7 +1147,7 @@
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="receiveMessage"><span class="type-signature"><static> </span>receiveMessage<span class="signature">(bid, msg, encrypted)</span><span class="type-signature"></span></h4>
|
||||
<h4 class="name" id="receiveMessage"><span class="type-signature"><static> </span>receiveMessage<span class="signature">(d)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
@@ -1180,6 +1180,48 @@
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>d</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">Object</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">
|
||||
<h6>Properties</h6>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -1241,7 +1283,7 @@
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
<span class="param-type">boolean</span>
|
||||
|
||||
|
||||
|
||||
@@ -1255,6 +1297,58 @@
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>forwarded</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">boolean</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>stamp</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">timestamp</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -1282,7 +1376,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4616">line 4616</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line21">line 21</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1399,7 +1493,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4912">line 4912</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line324">line 324</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1539,7 +1633,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4635">line 4635</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line41">line 41</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1730,7 +1824,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4823">line 4823</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line235">line 235</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1865,7 +1959,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4835">line 4835</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line247">line 247</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1924,13 +2018,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+72
-18
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4004">line 4004</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line3">line 3</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4015">line 4015</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line14">line 14</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4083">line 4083</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line82">line 82</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -383,7 +383,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4024">line 4024</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line23">line 23</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -517,7 +517,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4100">line 4100</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line99">line 99</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -667,7 +667,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4212">line 4212</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line211">line 211</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -901,7 +901,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4262">line 4262</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line261">line 261</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1064,7 +1064,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4225">line 4225</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line224">line 224</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1222,7 +1222,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4119">line 4119</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line118">line 118</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1334,7 +1334,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4137">line 4137</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line136">line 136</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1464,7 +1464,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4575">line 4575</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line589">line 589</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1514,7 +1514,7 @@
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="saveMessage"><span class="type-signature"><static> </span>saveMessage<span class="signature">(bid, direction, msg)</span><span class="type-signature"></span></h4>
|
||||
<h4 class="name" id="saveMessage"><span class="type-signature"><static> </span>saveMessage<span class="signature">(bid, direction, msg, encrypted, forwarded, sender)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
@@ -1603,6 +1603,60 @@
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>encrypted</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>forwarded</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>sender</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
@@ -1634,7 +1688,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4545">line 4545</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line555">line 555</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1807,7 +1861,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4038">line 4038</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line37">line 37</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2033,7 +2087,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4159">line 4159</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line158">line 158</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2228,7 +2282,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line4191">line 4191</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line190">line 190</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2269,13 +2323,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+32
-32
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line63">line 63</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line59">line 59</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line82">line 82</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line78">line 78</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line88">line 88</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line84">line 84</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line70">line 70</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line66">line 66</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line79">line 79</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line75">line 75</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line73">line 73</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line69">line 69</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line76">line 76</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line72">line 72</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line85">line 85</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line81">line 81</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -566,7 +566,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line193">line 193</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line189">line 189</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -653,7 +653,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line152">line 152</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line148">line 148</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -722,7 +722,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line740">line 740</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line747">line 747</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -791,7 +791,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line96">line 96</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line92">line 92</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -921,7 +921,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line250">line 250</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line246">line 246</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -990,7 +990,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line687">line 687</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line694">line 694</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1156,7 +1156,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line218">line 218</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line214">line 214</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1286,7 +1286,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line465">line 465</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line472">line 472</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1355,7 +1355,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line567">line 567</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line574">line 574</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1557,7 +1557,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line532">line 532</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line539">line 539</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1687,7 +1687,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line403">line 403</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line410">line 410</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1835,7 +1835,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line628">line 628</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line635">line 635</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1904,7 +1904,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line450">line 450</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line457">line 457</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2034,7 +2034,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line417">line 417</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line424">line 424</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2164,7 +2164,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line320">line 320</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line327">line 327</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2294,7 +2294,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line340">line 340</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line347">line 347</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2442,7 +2442,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line580">line 580</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line587">line 587</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2590,7 +2590,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line615">line 615</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line622">line 622</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2659,7 +2659,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line752">line 752</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line759">line 759</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2789,7 +2789,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line355">line 355</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line362">line 362</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2901,7 +2901,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line789">line 789</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line796">line 796</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3031,7 +3031,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line698">line 698</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line705">line 705</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3184,13 +3184,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:26 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -0,0 +1,464 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Namespace: carbons</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Namespace: carbons</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
|
||||
<header>
|
||||
<h2>
|
||||
<span class="ancestors"><a href="jsxc.html">jsxc</a><a href="jsxc.xmpp.html">.xmpp</a>.</span>
|
||||
|
||||
carbons
|
||||
</h2>
|
||||
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">Handle carbons (XEP-0280);</div>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1034">line 1034</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="disable"><span class="type-signature"><static> </span>disable<span class="signature">(cb)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Disable carbons.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>cb</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">callback</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1074">line 1074</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="enable"><span class="type-signature"><static> </span>enable<span class="signature">(cb)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Enable carbons.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>cb</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">callback</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1048">line 1048</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="refresh"><span class="type-signature"><static> </span>refresh<span class="signature">(err)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Enable/Disable carbons depending on options key.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>err</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">error message</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1100">line 1100</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
+313
-92
@@ -66,7 +66,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3150">line 3150</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1">line 1</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -91,9 +91,182 @@
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Namespaces</h3>
|
||||
|
||||
<dl>
|
||||
<dt><a href="namespaces.html#jsxc.xmpp.carbons"><a href="jsxc.xmpp.carbons.html">carbons</a></a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Members</h3>
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="login"><span class="type-signature"><static> </span>login<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<div class="description">
|
||||
Create new connection or attach to old
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line9">line 9</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="login^2"><span class="type-signature"><static> </span>login^2<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<div class="description">
|
||||
Create new connection with given parameters.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line10">line 10</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="login^3"><span class="type-signature"><static> </span>login^3<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<div class="description">
|
||||
Attach connection with given parameters.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line11">line 11</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
|
||||
@@ -220,7 +393,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3936">line 3936</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line960">line 960</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -360,7 +533,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3833">line 3833</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line857">line 857</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -429,7 +602,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3350">line 3350</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line269">line 269</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -498,7 +671,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3309">line 3309</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line223">line 223</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -567,7 +740,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3382">line 3382</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line332">line 332</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -636,7 +809,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3428">line 3428</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line378">line 378</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -748,7 +921,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3988">line 3988</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1018">line 1018</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -906,7 +1079,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3965">line 3965</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line995">line 995</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -934,76 +1107,7 @@
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="login"><span class="type-signature"><static> </span>login<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Create new connection or attach to old
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3163">line 3163</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="logout"><span class="type-signature"><static> </span>logout<span class="signature">()</span><span class="type-signature"> → {Boolean}</span></h4>
|
||||
<h4 class="name" id="logout"><span class="type-signature"><static> </span>logout<span class="signature">(complete)</span><span class="type-signature"> → {Boolean}</span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
@@ -1020,6 +1124,54 @@
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>complete</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">boolean</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">If set to false, roster will not be removed</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
@@ -1044,7 +1196,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3243">line 3243</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line157">line 157</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1085,6 +1237,75 @@
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
<dt>
|
||||
<h4 class="name" id="onAuthFail"><span class="type-signature"><private, static> </span>onAuthFail<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
<div class="description">
|
||||
Triggered on auth fail.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line432">line 432</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
|
||||
|
||||
@@ -1179,7 +1400,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3461">line 3461</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line419">line 419</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1296,7 +1517,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3719">line 3719</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line702">line 702</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1431,7 +1652,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3596">line 3596</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line576">line 576</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1571,7 +1792,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3802">line 3802</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line826">line 826</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1688,7 +1909,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3475">line 3475</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line455">line 455</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1805,7 +2026,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3523">line 3523</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line503">line 503</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1944,7 +2165,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3868">line 3868</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line892">line 892</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2084,7 +2305,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3812">line 3812</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line836">line 836</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2232,7 +2453,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3919">line 3919</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line943">line 943</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2301,7 +2522,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line3393">line 3393</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line343">line 343</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2342,13 +2563,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.l10n.html">l10n</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li></ul>
|
||||
<h2><a href="index.html">Index</a></h2><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.template.html">template</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br clear="both">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Nov 06 2014 13:24:27 GMT+0100 (CET)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri May 08 2015 13:05:28 GMT+0200 (CEST)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>JSXC example application</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
|
||||
<link href="../lib/jquery-ui.min.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../lib/jquery.mCustomScrollbar.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../lib/jquery.colorbox.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../dev/css/jsxc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../dev/css/jsxc.webrtc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
|
||||
<style type="text/css">
|
||||
body, * {font-size: 13px; font-family: "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif;}
|
||||
fieldset {float: left;}
|
||||
</style>
|
||||
|
||||
<script src="../dev/lib/jquery.min.js"></script>
|
||||
<script src="../dev/lib/jquery.ui.min.js"></script>
|
||||
<script src="../dev/lib/jquery.colorbox-min.js"></script>
|
||||
<script src="../dev/lib/jquery.slimscroll.js"></script>
|
||||
<script src="../dev/lib/jquery.fullscreen.js"></script>
|
||||
|
||||
<script src="../dev/lib/jsxc.dep.js"></script>
|
||||
<script src="../dev/jsxc.js"></script>
|
||||
|
||||
<script src="js/example.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<form id="form" method="post" action="login.html">
|
||||
<fieldset>
|
||||
<legend>Dual-Login</legend>
|
||||
<label for="username">Username:</label><input type="text" id="username" name="username" /><br />
|
||||
<label for="password">Password:</label><input type="password" id="password" name="password" /><br />
|
||||
<input type="submit" value="Log in chat and page" />
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<form id="form2" method="post">
|
||||
<fieldset>
|
||||
<legend>Chat Login</legend>
|
||||
<label for="username2">Username:</label><input type="text" id="username2" name="username2" /><br />
|
||||
<label for="password2">Password:</label><input type="password" id="password2" name="password2" /><br />
|
||||
<input type="submit" value="Log in chat" /> <button id="logout2" style="display:none;">Log out</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
+23
-35
@@ -7,44 +7,23 @@
|
||||
<link href="../lib/jquery-ui.min.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../lib/jquery.mCustomScrollbar.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../lib/jquery.colorbox.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../jsxc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../jsxc.webrtc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../build/css/jsxc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../build/css/jsxc.webrtc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
|
||||
<style type="text/css">
|
||||
body, * {font-size: 13px; font-family: "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif;}
|
||||
fieldset {float: left;}
|
||||
</style>
|
||||
|
||||
<script src="../lib/jquery.min.js"></script>
|
||||
<script src="../lib/jquery.ui.min.js"></script>
|
||||
<script src="../lib/jquery.colorbox-min.js"></script>
|
||||
<script src="../lib/jquery.slimscroll.js"></script>
|
||||
<script src="../lib/jquery.fullscreen.js"></script>
|
||||
|
||||
<!-- Nightly files:
|
||||
|
||||
<script src="../lib/strophe.js"></script>
|
||||
<script src="../lib/strophe.muc.js"></script>
|
||||
<script src="../lib/strophe.disco.js"></script>
|
||||
<script src="../lib/strophe.caps.js"></script>
|
||||
<script src="../lib/strophe.vcard.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.session.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.sdp.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.adapter.js"></script>
|
||||
<script src="../lib/otr/build/dep/salsa20.js"></script>
|
||||
<script src="../lib/otr/build/dep/bigint.js"></script>
|
||||
<script src="../lib/otr/build/dep/crypto.js"></script>
|
||||
<script src="../lib/otr/build/dep/eventemitter.js"></script>
|
||||
<script src="../lib/otr/build/otr.js"></script>
|
||||
<script src="../jsxc.lib.js"></script>
|
||||
<script src="../jsxc.lib.webrtc.js"></script>
|
||||
-->
|
||||
|
||||
<!-- Build files: -->
|
||||
<script src="../build/jsxc.dep.js"></script>
|
||||
<script src="../build/jsxc.js"></script>
|
||||
|
||||
<script src="../build/lib/jquery.min.js"></script>
|
||||
<script src="../build/lib/jquery.ui.min.js"></script>
|
||||
<script src="../build/lib/jquery.colorbox-min.js"></script>
|
||||
<script src="../build/lib/jquery.slimscroll.js"></script>
|
||||
<script src="../build/lib/jquery.fullscreen.js"></script>
|
||||
|
||||
<script src="../build/lib/jsxc.dep.js"></script>
|
||||
<script src="../build/jsxc.min.js"></script>
|
||||
|
||||
<script src="js/example.js"></script>
|
||||
|
||||
</head>
|
||||
@@ -52,11 +31,20 @@
|
||||
<body>
|
||||
<form id="form" method="post" action="login.html">
|
||||
<fieldset>
|
||||
<legend>Login</legend>
|
||||
<legend>Dual-Login</legend>
|
||||
<label for="username">Username:</label><input type="text" id="username" name="username" /><br />
|
||||
<label for="password">Password:</label><input type="password" id="password" name="password" /><br />
|
||||
<input type="submit" value="Log in" />
|
||||
<input type="submit" value="Log in chat and page" />
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<form id="form2" method="post">
|
||||
<fieldset>
|
||||
<legend>Chat Login</legend>
|
||||
<label for="username2">Username:</label><input type="text" id="username2" name="username2" /><br />
|
||||
<label for="password2">Password:</label><input type="password" id="password2" name="password2" /><br />
|
||||
<input type="submit" value="Log in chat" /> <button id="logout2" style="display:none;">Log out</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
$(function() {
|
||||
var settings = {
|
||||
xmpp: {
|
||||
url: '/http-bind/',
|
||||
domain: 'localhost',
|
||||
resource: 'example',
|
||||
overwrite: true,
|
||||
onlogin: true
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.init({
|
||||
loginForm: {
|
||||
form: '#form',
|
||||
jid: '#username',
|
||||
pass: '#password'
|
||||
},
|
||||
logoutElement: $('#logout'),
|
||||
checkFlash: false,
|
||||
rosterAppend: 'body',
|
||||
root: window.location.pathname.replace(/\/[^/]+$/, "/") + '../dev'
|
||||
turnCredentialsPath: 'ajax/getturncredentials.json',
|
||||
displayRosterMinimized: function() {
|
||||
return true;
|
||||
},
|
||||
otr: {
|
||||
debug: true,
|
||||
SEND_WHITESPACE_TAG: true,
|
||||
WHITESPACE_START_AKE: true
|
||||
},
|
||||
loadSettings: function(username, password) {
|
||||
return settings;
|
||||
},
|
||||
xmpp: {
|
||||
url: settings.xmpp.url
|
||||
}
|
||||
});
|
||||
|
||||
$('#form2').submit(function(ev) {
|
||||
ev.preventDefault();
|
||||
|
||||
$(document).on('connectionReady.jsxc', function() {
|
||||
$('#form2 input').prop('disabled', true);
|
||||
|
||||
$('#logout2').show().click(jsxc.xmpp.logout);
|
||||
});
|
||||
|
||||
jsxc.xmpp.login($('#username2').val() + '@' + settings.xmpp.domain, $('#password2').val());
|
||||
});
|
||||
});
|
||||
+28
-11
@@ -1,4 +1,14 @@
|
||||
$(function() {
|
||||
var settings = {
|
||||
xmpp: {
|
||||
url: '/http-bind/',
|
||||
domain: 'localhost',
|
||||
resource: 'example',
|
||||
overwrite: true,
|
||||
onlogin: true
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.init({
|
||||
loginForm: {
|
||||
form: '#form',
|
||||
@@ -8,7 +18,7 @@ $(function() {
|
||||
logoutElement: $('#logout'),
|
||||
checkFlash: false,
|
||||
rosterAppend: 'body',
|
||||
root: '/jsxc/',
|
||||
root: window.location.pathname.replace(/\/[^/]+$/, '/') + '../build',
|
||||
turnCredentialsPath: 'ajax/getturncredentials.json',
|
||||
displayRosterMinimized: function() {
|
||||
return true;
|
||||
@@ -19,15 +29,22 @@ $(function() {
|
||||
WHITESPACE_START_AKE: true
|
||||
},
|
||||
loadSettings: function(username, password) {
|
||||
return {
|
||||
xmpp: {
|
||||
url: '/http-bind/',
|
||||
domain: 'localhost',
|
||||
resource: 'example',
|
||||
overwrite: true,
|
||||
onlogin: true
|
||||
}
|
||||
};
|
||||
return settings;
|
||||
},
|
||||
xmpp: {
|
||||
url: settings.xmpp.url
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#form2').submit(function(ev) {
|
||||
ev.preventDefault();
|
||||
|
||||
$(document).on('connectionReady.jsxc', function() {
|
||||
$('#form2 input').prop('disabled', true);
|
||||
|
||||
$('#logout2').show().click(jsxc.xmpp.logout);
|
||||
});
|
||||
|
||||
jsxc.xmpp.login($('#username2').val() + '@' + settings.xmpp.domain, $('#password2').val());
|
||||
});
|
||||
});
|
||||
|
||||
+11
-24
@@ -7,35 +7,22 @@
|
||||
<link href="../lib/jquery-ui.min.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../lib/jquery.mCustomScrollbar.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../lib/jquery.colorbox.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../jsxc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../jsxc.webrtc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../build/css/jsxc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
<link href="../build/css/jsxc.webrtc.css" media="all" rel="stylesheet" type="text/css" />
|
||||
|
||||
<style type="text/css">
|
||||
body, * {font-size: 13px; font-family: "Helvetica Neue",Helvetica,Arial,FreeSans,sans-serif;}
|
||||
fieldset {float: left;}
|
||||
</style>
|
||||
|
||||
<script src="../lib/jquery.min.js"></script>
|
||||
<script src="../lib/jquery.ui.min.js"></script>
|
||||
<script src="../lib/jquery.colorbox-min.js"></script>
|
||||
<script src="../lib/jquery.slimscroll.js"></script>
|
||||
<script src="../lib/jquery.fullscreen.js"></script>
|
||||
<script src="../lib/strophe.js"></script>
|
||||
<script src="../lib/strophe.muc.js"></script>
|
||||
<script src="../lib/strophe.disco.js"></script>
|
||||
<script src="../lib/strophe.caps.js"></script>
|
||||
<script src="../lib/strophe.vcard.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.session.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.sdp.js"></script>
|
||||
<script src="../lib/strophe.jingle/strophe.jingle.adapter.js"></script>
|
||||
<script src="../lib/otr/build/dep/salsa20.js"></script>
|
||||
<script src="../lib/otr/build/dep/bigint.js"></script>
|
||||
<script src="../lib/otr/build/dep/crypto.js"></script>
|
||||
<script src="../lib/otr/build/dep/eventemitter.js"></script>
|
||||
<script src="../lib/otr/build/otr.js"></script>
|
||||
<script src="../jsxc.lib.js"></script>
|
||||
<script src="../jsxc.lib.webrtc.js"></script>
|
||||
<script src="../build/lib/jquery.min.js"></script>
|
||||
<script src="../build/lib/jquery.ui.min.js"></script>
|
||||
<script src="../build/lib/jquery.colorbox-min.js"></script>
|
||||
<script src="../build/lib/jquery.slimscroll.js"></script>
|
||||
<script src="../build/lib/jquery.fullscreen.js"></script>
|
||||
|
||||
<script src="../build/lib/jsxc.dep.js"></script>
|
||||
<script src="../build/jsxc.min.js"></script>
|
||||
|
||||
<script src="js/example.js"></script>
|
||||
|
||||
@@ -46,4 +33,4 @@
|
||||
|
||||
<a href="index.html" id="logout">Log out</a>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 1000 1000"
|
||||
preserveAspectRatio="xMinYMin meet"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style="width: 512px; height: 512px;"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
sodipodi:docname="group_grey.svg">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="980"
|
||||
inkscape:window-height="888"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.6675088"
|
||||
inkscape:cx="512.17823"
|
||||
inkscape:cy="480.21903"
|
||||
inkscape:window-x="889"
|
||||
inkscape:window-y="85"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="m 0.94630456,763.0963 c 0,22.21203 9.08673644,33.31804 27.26020844,33.31804 l 112.069747,0 0,-142.35887 c 0,-18.17347 4.54363,-34.83222 13.63088,-49.97627 9.08724,-15.14405 21.70797,-26.75512 37.86216,-34.83326 l 115.09866,-54.52042 c 10.09637,-6.05782 18.17347,-13.12528 24.23129,-21.20238 -12.11564,-18.17347 -22.21202,-39.37586 -30.28912,-63.60715 -8.0771,-24.2313 -12.11564,-49.47223 -12.11564,-75.7228 0,-16.1542 2.01927,-32.3084 6.05782,-48.46259 4.03855,-16.1542 9.08674,-31.29876 15.14456,-45.43368 -20.19275,-14.13493 -41.39513,-21.20239 -63.60715,-21.20239 -38.36622,2.01928 -68.65534,17.66839 -90.86736,46.94736 -22.21201,29.27897 -33.31803,62.09244 -33.31803,98.44042 2.01928,62.59751 24.2313,107.02155 66.63606,133.27212 L 16.092416,596.50615 C 5.9960421,602.56397 0.94785546,612.66034 0.94785546,626.79527 l 0,136.30103 z M 191.76775,796.41434 c -2.01927,42.40476 10.09637,64.61678 36.34695,66.63606 l 542.17524,0 c 12.11565,-4.03855 20.69783,-10.09637 25.74653,-18.17347 5.04869,-8.0771 7.57305,-14.63948 7.57305,-19.68716 l 0,-171.13275 c 0,-18.17347 -7.06746,-30.28912 -21.20238,-36.34694 L 637.01936,545.01619 573.41221,514.72707 c 38.36622,-22.21202 63.60715,-60.57824 75.7228,-115.09865 8.0771,-30.28912 8.0771,-61.58788 0,-93.89627 -10.09637,-36.34695 -28.7744,-67.14115 -56.0341,-92.38259 -27.25969,-25.24145 -59.06352,-38.87182 -95.4115,-40.89109 -36.34694,2.01927 -67.6457,15.64964 -93.89627,40.89109 -26.25057,25.24144 -44.42404,55.02601 -54.52042,89.35368 -12.11564,46.44331 -8.07709,93.89627 12.11565,142.35886 16.1542,30.28912 37.35658,54.52041 63.60715,72.69389 l -57.54932,27.2602 -151.4456,69.66498 c -16.1542,8.0771 -24.2313,21.20238 -24.2313,39.37585 l 0,142.35887 z m 475.53918,-302.8912 c 8.0771,8.0771 18.17347,16.1542 30.28912,24.23129 12.11565,8.0771 23.22166,14.13493 33.31803,18.17348 10.09638,4.03855 23.22166,9.59181 39.37586,16.65979 16.1542,7.06797 28.26984,12.62124 36.34694,16.65979 16.1542,8.0771 28.77493,19.68819 37.86218,34.83326 9.08724,15.14507 13.63088,31.80384 13.63088,49.97627 l 0,142.35887 115.09865,0 c 18.17347,-2.01928 27.26021,-13.12529 27.26021,-33.31803 l 0,-136.30104 c 0,-14.13493 -5.04819,-24.2313 -15.14456,-30.28912 L 815.72517,514.72707 c 42.40477,-30.28912 63.60715,-73.70352 63.60715,-130.24321 0,-38.36622 -12.11565,-72.18881 -36.34694,-101.46778 -24.2313,-29.27897 -53.51078,-43.91896 -87.83845,-43.92 -22.21202,0 -44.42404,7.06747 -66.63606,21.20239 12.11564,30.28912 18.17347,61.58787 18.17347,93.89627 0,50.48187 -13.12529,96.92518 -39.37586,139.32995 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cscsscccsssccscccscccccssscccccscscccccscccssssssccssccssccscc"
|
||||
style="fill:#999999;stroke-width:1.55090213;fill-opacity:1" />
|
||||
</svg>
|
||||
|
Depois Largura: | Altura: | Tamanho: 4.2 KiB |
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 1000 1000"
|
||||
preserveAspectRatio="xMinYMin meet"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style="width: 512px; height: 512px;"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
sodipodi:docname="group_white.svg">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.6675088"
|
||||
inkscape:cx="538.39511"
|
||||
inkscape:cy="480.21903"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="m 0.94630456,763.0963 c 0,22.21203 9.08673644,33.31804 27.26020844,33.31804 l 112.069747,0 0,-142.35887 c 0,-18.17347 4.54363,-34.83222 13.63088,-49.97627 9.08724,-15.14405 21.70797,-26.75512 37.86216,-34.83326 l 115.09866,-54.52042 c 10.09637,-6.05782 18.17347,-13.12528 24.23129,-21.20238 -12.11564,-18.17347 -22.21202,-39.37586 -30.28912,-63.60715 -8.0771,-24.2313 -12.11564,-49.47223 -12.11564,-75.7228 0,-16.1542 2.01927,-32.3084 6.05782,-48.46259 4.03855,-16.1542 9.08674,-31.29876 15.14456,-45.43368 -20.19275,-14.13493 -41.39513,-21.20239 -63.60715,-21.20239 -38.36622,2.01928 -68.65534,17.66839 -90.86736,46.94736 -22.21201,29.27897 -33.31803,62.09244 -33.31803,98.44042 2.01928,62.59751 24.2313,107.02155 66.63606,133.27212 L 16.092416,596.50615 C 5.9960421,602.56397 0.94785546,612.66034 0.94785546,626.79527 l 0,136.30103 z M 191.76775,796.41434 c -2.01927,42.40476 10.09637,64.61678 36.34695,66.63606 l 542.17524,0 c 12.11565,-4.03855 20.69783,-10.09637 25.74653,-18.17347 5.04869,-8.0771 7.57305,-14.63948 7.57305,-19.68716 l 0,-171.13275 c 0,-18.17347 -7.06746,-30.28912 -21.20238,-36.34694 L 637.01936,545.01619 573.41221,514.72707 c 38.36622,-22.21202 63.60715,-60.57824 75.7228,-115.09865 8.0771,-30.28912 8.0771,-61.58788 0,-93.89627 -10.09637,-36.34695 -28.7744,-67.14115 -56.0341,-92.38259 -27.25969,-25.24145 -59.06352,-38.87182 -95.4115,-40.89109 -36.34694,2.01927 -67.6457,15.64964 -93.89627,40.89109 -26.25057,25.24144 -44.42404,55.02601 -54.52042,89.35368 -12.11564,46.44331 -8.07709,93.89627 12.11565,142.35886 16.1542,30.28912 37.35658,54.52041 63.60715,72.69389 l -57.54932,27.2602 -151.4456,69.66498 c -16.1542,8.0771 -24.2313,21.20238 -24.2313,39.37585 l 0,142.35887 z m 475.53918,-302.8912 c 8.0771,8.0771 18.17347,16.1542 30.28912,24.23129 12.11565,8.0771 23.22166,14.13493 33.31803,18.17348 10.09638,4.03855 23.22166,9.59181 39.37586,16.65979 16.1542,7.06797 28.26984,12.62124 36.34694,16.65979 16.1542,8.0771 28.77493,19.68819 37.86218,34.83326 9.08724,15.14507 13.63088,31.80384 13.63088,49.97627 l 0,142.35887 115.09865,0 c 18.17347,-2.01928 27.26021,-13.12529 27.26021,-33.31803 l 0,-136.30104 c 0,-14.13493 -5.04819,-24.2313 -15.14456,-30.28912 L 815.72517,514.72707 c 42.40477,-30.28912 63.60715,-73.70352 63.60715,-130.24321 0,-38.36622 -12.11565,-72.18881 -36.34694,-101.46778 -24.2313,-29.27897 -53.51078,-43.91896 -87.83845,-43.92 -22.21202,0 -44.42404,7.06747 -66.63606,21.20239 12.11564,30.28912 18.17347,61.58787 18.17347,93.89627 0,50.48187 -13.12529,96.92518 -39.37586,139.32995 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cscsscccsssccscccscccccssscccccscscccccscccssssssccssccssccscc"
|
||||
style="fill:#ffffff;stroke-width:1.55090213" />
|
||||
</svg>
|
||||
|
Depois Largura: | Altura: | Tamanho: 4.2 KiB |
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="15"
|
||||
height="15"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="resize_gray.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath3803">
|
||||
<rect
|
||||
style="stroke:none"
|
||||
id="rect3805"
|
||||
width="16.09375"
|
||||
height="14.71875"
|
||||
x="0.84375"
|
||||
y="1038.1434" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="32"
|
||||
inkscape:cx="6.9909088"
|
||||
inkscape:cy="6.5564812"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1865"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="55"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1037.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#bfbfbf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 10.46875,1032.1747 -14.5,14.2813 z m 3.5,1.2501 -17.3125,17.3124 z"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
clip-path="url(#clipPath3803)"
|
||||
transform="translate(0.8125,0.6875)"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Depois Largura: | Altura: | Tamanho: 2.2 KiB |
-1243
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
-5858
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -1,257 +0,0 @@
|
||||
/* global jsxc, Strophe, jQuery */
|
||||
|
||||
jsxc.l10n.en.Join_chat = 'Join chat';
|
||||
jsxc.l10n.de.Join_chat = 'Chat beitreten';
|
||||
jsxc.l10n.en.Join = 'Join';
|
||||
jsxc.l10n.de.Join = 'Beitreten';
|
||||
|
||||
jsxc.gui.template.joinChat = '<h3>%%Join_chat%%</h3>\
|
||||
<p class=".jsxc_explanation">Blub</p>\
|
||||
<p><label for="jsxc_room">%%Room%%:</label>\
|
||||
<input type="text" name="room" id="jsxc_room" required="required" /></p>\
|
||||
<p><label for="jsxc_nickname">%%Nickname%%:</label>\
|
||||
<input type="text" name="nickname" id="jsxc_nickname" /></p>\
|
||||
<p><label for="jsxc_password">%%Password%%:</label>\
|
||||
<input type="text" name="password" id="jsxc_password" /></p>\
|
||||
<p class="jsxc_right">\
|
||||
<a href="#" class="button jsxc_close">%%Close%%</a> <a href="#" class="button creation jsxc_join">%%Join%%</a>\
|
||||
</p>';
|
||||
|
||||
(function($) {
|
||||
"use strict";
|
||||
|
||||
jsxc.muc = {
|
||||
conn: null,
|
||||
initMenu: function() {
|
||||
var li = $('<li>').attr('class', 'jsxc_joinChat').text(jsxc.translate('%%Join_chat%%'));
|
||||
li.click(jsxc.muc.showJoinChat);
|
||||
$('#jsxc_menu ul').append(li);
|
||||
|
||||
},
|
||||
showJoinChat: function() {
|
||||
var dialog = jsxc.gui.dialog.open(jsxc.gui.template.get('joinChat'));
|
||||
|
||||
dialog.find('.jsxc_join').click(function() {
|
||||
var room = $('#jsxc_room').val() || null;
|
||||
var nickname = $('#jsxc_nickname').val() || Strophe.getNodeFromJid(jsxc.xmpp.conn.jid);
|
||||
var password = $('#jsxc_password').val() || null;
|
||||
|
||||
if (!room) {
|
||||
$('#jsxc_room').addClass('jsxc_invalid').keyup(function() {
|
||||
if ($(this).val()) {
|
||||
$(this).removeClass('jsxc_invalid');
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!room.match(/@(.*)$/)) {
|
||||
room += '@' + 'conference.localhost'; // @TODO: replace
|
||||
}
|
||||
|
||||
var cid = jsxc.jidToCid(room);
|
||||
|
||||
if (jsxc.xmpp.conn.muc.roomNames.indexOf(room) < 0) {
|
||||
jsxc.xmpp.conn.muc.join(room, nickname, null, null, null, password);
|
||||
|
||||
jsxc.storage.setUserItem('roomNames', jsxc.xmpp.conn.muc.roomNames);
|
||||
|
||||
var own = jsxc.storage.getUserItem('own') || [];
|
||||
own.push(jsxc.xmpp.conn.muc.test_append_nick(room, nickname));
|
||||
jsxc.storage.setUserItem('own', own);
|
||||
|
||||
jsxc.storage.setUserItem('buddy_' + cid, {
|
||||
jid: room,
|
||||
name: room,
|
||||
type: 'groupchat'
|
||||
});
|
||||
|
||||
var bl = jsxc.storage.getUserItem('buddylist');
|
||||
bl.push(cid);
|
||||
jsxc.storage.setUserItem('buddylist', bl);
|
||||
|
||||
jsxc.gui.roster.add(cid);
|
||||
}
|
||||
|
||||
jsxc.gui.window.open(cid);
|
||||
jsxc.gui.dialog.close();
|
||||
});
|
||||
|
||||
dialog.find('input').keydown(function(ev) {
|
||||
if (ev.which !== 13) {
|
||||
return;
|
||||
}
|
||||
|
||||
dialog.find('.jsxc_join').click();
|
||||
});
|
||||
},
|
||||
initWindow: function(event, win) {
|
||||
var self = jsxc.muc;
|
||||
var data = win.data();
|
||||
var cid = jsxc.jidToCid(data.jid);
|
||||
var sdata = jsxc.storage.getUserItem('window_' + cid);
|
||||
|
||||
if (!jsxc.xmpp.conn) {
|
||||
$(document).one('connectionReady.jsxc', function() {
|
||||
self.initWindow(null, win);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (self.conn.muc.roomNames.indexOf(data.jid) < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
win.addClass('jsxc_groupchat');
|
||||
win.find('.jsxc_tools > .jsxc_transfer').after('<div class="jsxc_members">M</div>');
|
||||
var ml = $('<div class="jsxc_memberlist"><ul></ul></div>');
|
||||
win.append(ml);
|
||||
|
||||
ml.find('ul').slimScroll({
|
||||
height: '255px',
|
||||
distance: '3px'
|
||||
});
|
||||
|
||||
var member = jsxc.storage.getUserItem('member_' + cid) || {};
|
||||
|
||||
$.each(member, function(index, val) {
|
||||
self.insertMember(cid, index, val.jid, val.status);
|
||||
});
|
||||
|
||||
if (sdata.minimize_ml || sdata.minimize_ml === null) {
|
||||
self.hideMemberList(win, 200, true);
|
||||
} else {
|
||||
setTimeout(function() {
|
||||
self.showMemberList(win, 200);
|
||||
}, 500);
|
||||
}
|
||||
|
||||
win.on('show', function() {
|
||||
ml.slideDown();
|
||||
ml.css('display', 'block');
|
||||
});
|
||||
win.on('hide', function() {
|
||||
ml.slideUp();
|
||||
});
|
||||
|
||||
win.trigger((sdata.minimize) ? 'hide' : 'show');
|
||||
},
|
||||
showMemberList: function(win, originalWidth, noani) {
|
||||
if (!noani) {
|
||||
win.animate({
|
||||
width: (originalWidth + 200) + 'px'
|
||||
}).css('overflow', 'visible');
|
||||
}
|
||||
|
||||
jsxc.storage
|
||||
.updateUserItem('window_' + jsxc.jidToCid(win.data().jid), 'minimize_ml', false);
|
||||
|
||||
win.find('.jsxc_members').off('click').one('click', function() {
|
||||
jsxc.muc.hideMemberList(win, originalWidth);
|
||||
});
|
||||
},
|
||||
hideMemberList: function(win, originalWidth, noani) {
|
||||
if (!noani) {
|
||||
win.animate({
|
||||
width: originalWidth + 'px'
|
||||
}).css('overflow', 'visible');
|
||||
}
|
||||
|
||||
jsxc.storage
|
||||
.updateUserItem('window_' + jsxc.jidToCid(win.data().jid), 'minimize_ml', true);
|
||||
|
||||
win.find('.jsxc_members').off('click').one('click', function() {
|
||||
jsxc.muc.showMemberList(win, originalWidth);
|
||||
});
|
||||
},
|
||||
onPresence: function(event, from, status, presence) {
|
||||
var self = jsxc.muc;
|
||||
var room = Strophe.getBareJidFromJid(from);
|
||||
var cid = jsxc.jidToCid(room);
|
||||
var nickname = Strophe.getResourceFromJid(from);
|
||||
var xdata = $(presence).find('x[xmlns^="' + Strophe.NS.MUC + '"]');
|
||||
|
||||
if (self.conn.muc.roomNames.indexOf(room) < 0 || xdata.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var jid = xdata.find('item').attr('jid');
|
||||
|
||||
var member = jsxc.storage.getUserItem('member_' + cid) || {};
|
||||
if (status === 0) {
|
||||
delete member[nickname];
|
||||
self.removeMember(cid, nickname);
|
||||
jsxc.gui.window.postMessage(cid, 'sys', nickname + ' left the building.');
|
||||
} else {
|
||||
if (!member[nickname]) {
|
||||
jsxc.gui.window.postMessage(cid, 'sys', nickname + ' entered the room.');
|
||||
}
|
||||
member[nickname] = {
|
||||
jid: jid,
|
||||
status: status,
|
||||
roomJid: from
|
||||
};
|
||||
self.insertMember(cid, nickname, jid, status);
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('member_' + cid, member);
|
||||
|
||||
return true;
|
||||
},
|
||||
insertMember: function(cid, nickname, jid, status) {
|
||||
var win = jsxc.gui.getWindow(cid);
|
||||
var m = win.find('.jsxc_memberlist li[data-nickname="' + nickname + '"]');
|
||||
|
||||
if (m.length === 0) {
|
||||
m = $('<li title="' + jid + '">' + nickname + '</li>');
|
||||
m.attr('data-nickname', nickname);
|
||||
win.find('.jsxc_memberlist ul').append(m);
|
||||
}
|
||||
|
||||
if (status !== null) {
|
||||
m.removeClass('jsxc_' + jsxc.status.join(' jsxc_'))
|
||||
.addClass('jsxc_' + jsxc.status[status]);
|
||||
}
|
||||
},
|
||||
removeMember: function(cid, nickname) {
|
||||
var win = jsxc.gui.getWindow(cid);
|
||||
var m = win.find('.jsxc_memberlist li[data-nickname="' + nickname + '"]');
|
||||
|
||||
if (m.length > 0) {
|
||||
m.remove();
|
||||
}
|
||||
},
|
||||
onGroupchatMessage: function(message) {
|
||||
var from = $(message).attr('from');
|
||||
var body = $(message).find('body:first').text();
|
||||
body = Strophe.getResourceFromJid(from) + ': ' + body;
|
||||
$(message).find('body:first').text(body);
|
||||
|
||||
jsxc.xmpp.onMessage($(message)[0]);
|
||||
|
||||
return true;
|
||||
},
|
||||
onNormalMessage: function() {
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
$(document).one('ready.roster.jsxc', jsxc.muc.initMenu);
|
||||
$(document).one('attached', function() {
|
||||
var self = jsxc.muc;
|
||||
self.conn = jsxc.xmpp.conn;
|
||||
self.conn.addHandler(self.onGroupchatMessage, null, 'message', 'groupchat');
|
||||
self.conn.addHandler(self.onNormalMessage, null, 'message', 'normal');
|
||||
self.conn.muc.roomNames = jsxc.storage.getUserItem('roomNames') || [];
|
||||
});
|
||||
$(document).one('connected', function() {
|
||||
jsxc.storage.removeUserItem('roomNames');
|
||||
});
|
||||
$(document).on('init.window.jsxc', jsxc.muc.initWindow);
|
||||
$(document).on('presence.jsxc', jsxc.muc.onPresence);
|
||||
|
||||
$(function() {
|
||||
|
||||
});
|
||||
}(jQuery));
|
||||
@@ -1,379 +0,0 @@
|
||||
.jsxc_webrtc {
|
||||
width: 900px;
|
||||
}
|
||||
|
||||
.jsxc_webrtc li .jsxc_name {
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.jsxc_webrtc li .jsxc_name:hover {
|
||||
color: #939393;
|
||||
}
|
||||
|
||||
.jsxc_videoContainer {
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
position: relative;
|
||||
background-color: #a4a4a4;
|
||||
}
|
||||
|
||||
.jsxc_videoContainer video, .jsxc_videoContainer .jsxc_noRemoteVideo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsxc_remotevideo, .jsxc_noRemoteVideo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
z-index: 9000;
|
||||
background-color: #a4a4a4;
|
||||
}
|
||||
|
||||
.jsxc_localvideo {
|
||||
width: 160px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
z-index: 9990;
|
||||
background-color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo p {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left:0px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -100px;
|
||||
left: 50%;
|
||||
margin-left: -100px;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div > div {
|
||||
background-color: #717171;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div > div:first-child {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -25%;
|
||||
top: 10%;
|
||||
}
|
||||
|
||||
.jsxc_noRemoteVideo > div > div:last-child {
|
||||
position: absolute;
|
||||
bottom: -50%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.jsxc_webrtc .jsxc_status {
|
||||
z-index: 9999;
|
||||
border-radius: 20px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 50%;
|
||||
background-color: lightgrey;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
color: white;
|
||||
padding: 15px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsxc_webrtc .slimScrollDiv {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
div:-moz-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:-ms-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:-webkit-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
}
|
||||
|
||||
div:-moz-full-screen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div:-webkit-full-screen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div:-ms-full-screen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div:fullscreen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.jsxc_fullscreen.jsxc_localvideo {
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.jsxc_controlbar {
|
||||
width: 640px;
|
||||
}
|
||||
|
||||
.jsxc_controlbar .jsxc_showchat {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.jsxc_multi>div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsxc_snapshotbar {
|
||||
width: 100%;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsxc_snapshotbar img {
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.jsxc_buttongroup {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.jsxc_buttongroup button:first-child {
|
||||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.jsxc_buttongroup button:last-child {
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.jsxc_chatarea {
|
||||
position: relative;
|
||||
float:right;
|
||||
height: 480px;
|
||||
width: 250px;
|
||||
background-color: #A4A4A4;
|
||||
}
|
||||
|
||||
.jsxc_chatarea > ul {
|
||||
width: 250px;
|
||||
height: 480px;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_settings {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_close {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_video {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_bar {
|
||||
|
||||
}
|
||||
|
||||
.jsxc_chatarea .jsxc_window {
|
||||
bottom: 0px;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.jsxc_videoSuitable .jsxc_name {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.jsxc_video {
|
||||
background-image: url('img/camera_icon_grey.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 15px 15px;
|
||||
}
|
||||
|
||||
div.jsxc_video:not(.jsxc_disabled):hover, #jsxc_buddylist .jsxc_options .jsxc_video {
|
||||
background-image: url('img/camera_icon_white.svg');
|
||||
}
|
||||
|
||||
#jsxc_buddylist .jsxc_options .jsxc_video.jsxc_disabled {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
.bubblingG {
|
||||
text-align: center;
|
||||
width:129px;
|
||||
height:80px;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
margin-left: -64px;
|
||||
}
|
||||
|
||||
.bubblingG span {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 40px auto;
|
||||
background: #000000;
|
||||
-moz-border-radius: 81px;
|
||||
-moz-animation: bubblingG 1.3s infinite alternate;
|
||||
-webkit-border-radius: 81px;
|
||||
-webkit-animation: bubblingG 1.3s infinite alternate;
|
||||
-ms-border-radius: 81px;
|
||||
-ms-animation: bubblingG 1.3s infinite alternate;
|
||||
-o-border-radius: 81px;
|
||||
-o-animation: bubblingG 1.3s infinite alternate;
|
||||
border-radius: 81px;
|
||||
animation: bubblingG 1.3s infinite alternate;
|
||||
}
|
||||
|
||||
#bubblingG_1 {
|
||||
-moz-animation-delay: 0s;
|
||||
-webkit-animation-delay: 0s;
|
||||
-ms-animation-delay: 0s;
|
||||
-o-animation-delay: 0s;
|
||||
animation-delay: 0s;
|
||||
}
|
||||
|
||||
#bubblingG_2 {
|
||||
-moz-animation-delay: 0.39s;
|
||||
-webkit-animation-delay: 0.39s;
|
||||
-ms-animation-delay: 0.39s;
|
||||
-o-animation-delay: 0.39s;
|
||||
animation-delay: 0.39s;
|
||||
}
|
||||
|
||||
#bubblingG_3 {
|
||||
-moz-animation-delay: 0.78s;
|
||||
-webkit-animation-delay: 0.78s;
|
||||
-ms-animation-delay: 0.78s;
|
||||
-o-animation-delay: 0.78s;
|
||||
animation-delay: 0.78s;
|
||||
}
|
||||
|
||||
@-moz-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-moz-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-moz-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-webkit-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-webkit-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-webkit-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-ms-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-ms-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-ms-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@-o-keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
-o-transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
-o-transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color:#000000;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color:#FFFFFF;
|
||||
transform: translateY(-34px);
|
||||
}
|
||||
|
||||
}
|
||||
Submódulo
+1
Submodule lib/i18next added at e51cad3c82
+1
-1
Submodule lib/otr updated: 1b34e35691...5831c5d49a
@@ -191,13 +191,18 @@
|
||||
* Returns: (Boolean) - false, to automatically remove the handler.
|
||||
*/
|
||||
_handleDiscoInfoReply: function(stanza) {
|
||||
var query = stanza.querySelector('query'), node = query.getAttribute('node').split('#'), ver = node[1], from = stanza.getAttribute('from');
|
||||
var query = stanza.querySelector('query');
|
||||
var from = stanza.getAttribute('from');
|
||||
var node = query.getAttribute('node');
|
||||
var ver = (node)? node.split('#')[1] : this._jidVerIndex[from]; //fix open prosody issue
|
||||
|
||||
if (!this._knownCapabilities[ver]) {
|
||||
var childNodes = query.childNodes, childNodesLen = childNodes.length;
|
||||
this._knownCapabilities[ver] = {
|
||||
features: [],
|
||||
identities: []
|
||||
};
|
||||
|
||||
for (var i = 0; i < childNodesLen; i++) {
|
||||
var node = childNodes[i];
|
||||
if (node.nodeName == 'feature') {
|
||||
@@ -205,10 +210,11 @@
|
||||
} else if (node.nodeName == 'identity') {
|
||||
this._knownCapabilities[ver]['identities'].push(this._attributesToJsObject(node.attributes));
|
||||
} else {
|
||||
if (_knownCapabilities[ver][node.nodeName])
|
||||
_knownCapabilities[ver][node.nodeName] = [];
|
||||
if (typeof this._knownCapabilities[ver][node.nodeName] === 'undefined')
|
||||
this._knownCapabilities[ver][node.nodeName] = [];
|
||||
this._knownCapabilities[ver][node.nodeName].push(this._attributesToJsObject(node.attributes));
|
||||
}
|
||||
|
||||
}
|
||||
this._jidVerIndex[from] = ver;
|
||||
} else if (!this._jidVerIndex[from] || !this._jidVerIndex[from] !== ver) {
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Login läuft…",
|
||||
"your_connection_is_unencrypted": "Deine Verbindung ist unverschlüsselt.",
|
||||
"your_connection_is_encrypted": "Deine Verbindung ist verschlüsselt.",
|
||||
"your_buddy_closed_the_private_connection": "Dein Kontakt hat die private Verbindung getrennt.",
|
||||
"start_private": "Privat starten",
|
||||
"close_private": "Privat abbrechen",
|
||||
"your_buddy_is_verificated": "Dein Kontakt ist verifiziert.",
|
||||
"you_have_only_a_subscription_in_one_way": "Der Kontaktstatus ist einseitig.",
|
||||
"authentication_query_sent": "Authentifizierungsanfrage gesendet.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.",
|
||||
"unencrypted_message_received": "Unverschlüsselte Nachricht erhalten.",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Deine Nachricht wurde nicht gesandt, da der Kontaktstatus einseitig ist.",
|
||||
"not_available": "Nicht verfügbar.",
|
||||
"no_connection": "Keine Verbindung.",
|
||||
"relogin": "Neu anmelden.",
|
||||
"trying_to_start_private_conversation": "Versuche private Konversation zu starten.",
|
||||
"Verified": "Verifiziert",
|
||||
"Unverified": "Unverifiziert",
|
||||
"private_conversation_started": "Private Konversation gestartet.",
|
||||
"private_conversation_aborted": "Private Konversation abgebrochen.",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!",
|
||||
"conversation_is_now_verified": "Konversation ist jetzt verifiziert",
|
||||
"authentication_failed": "Authentifizierung fehlgeschlagen.",
|
||||
"your_buddy_is_attempting_to_determine_": "Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet.",
|
||||
"to_authenticate_to_your_buddy": "Um dich gegenüber deinem Kontakt zu verifizieren ",
|
||||
"enter_the_answer_and_click_answer": "gib die Antwort ein und klick auf Antworten.",
|
||||
"enter_the_secret": "gib das Geheimnis ein.",
|
||||
"Creating_your_private_key_": "Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.",
|
||||
"Authenticating_a_buddy_helps_": "Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Wie willst du {{bid_name}} (<b>{{bid_jid}}</b>) authentifizieren?",
|
||||
"Select_method": "Wähle...",
|
||||
"Manual": "Manual",
|
||||
"Question": "Frage",
|
||||
"Secret": "Geheimnis",
|
||||
"To_verify_the_fingerprint_": "Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.",
|
||||
"Your_fingerprint": "Dein Fingerprint",
|
||||
"Buddy_fingerprint": "Sein/Ihr Fingerprint",
|
||||
"Close": "Schließen",
|
||||
"Compared": "Verglichen",
|
||||
"To_authenticate_using_a_question_": "Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.",
|
||||
"Ask": "Frage",
|
||||
"To_authenticate_pick_a_secret_": "Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.",
|
||||
"Compare": "Vergleiche",
|
||||
"Fingerprints": "Fingerprints",
|
||||
"Authentication": "Authentifizierung",
|
||||
"Message": "Nachricht",
|
||||
"Add_buddy": "Kontakt hinzufügen",
|
||||
"rename_buddy": "Kontakt umbenennen",
|
||||
"delete_buddy": "Kontakt löschen",
|
||||
"Login": "Anmeldung",
|
||||
"Username": "Benutzername",
|
||||
"Password": "Passwort",
|
||||
"Cancel": "Abbrechen",
|
||||
"Connect": "Verbinden",
|
||||
"Type_in_the_full_username_": "Gib bitte den vollen Benutzernamen und optional ein Alias an.",
|
||||
"Alias": "Alias",
|
||||
"Add": "Hinzufügen",
|
||||
"Subscription_request": "Kontaktanfrage",
|
||||
"You_have_a_request_from": "Du hast eine Anfrage von",
|
||||
"Deny": "Ablehnen",
|
||||
"Approve": "Bestätigen",
|
||||
"Remove_buddy": "Kontakt entfernen",
|
||||
"You_are_about_to_remove_": "Du bist gerade dabei {{bid_name}} (<b>{{bid_jid}}</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.",
|
||||
"Continue_without_chat": "Weiter ohne Chat",
|
||||
"Please_wait": "Bitte warten",
|
||||
"Login_failed": "Chat-Anmeldung fehlgeschlagen",
|
||||
"Sorry_we_cant_authentikate_": "Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?",
|
||||
"Retry": "Zurück",
|
||||
"clear_history": "Lösche Verlauf",
|
||||
"New_message_from": "Neue Nachricht von",
|
||||
"Should_we_notify_you_": "Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?",
|
||||
"Please_accept_": "Bitte klick auf den \"Zulassen\" Button oben.",
|
||||
"Hide_offline": "Offline ausblenden",
|
||||
"Show_offline": "Offline einblenden",
|
||||
"About": "Über",
|
||||
"dnd": "Beschäftigt",
|
||||
"Mute": "Ton aus",
|
||||
"Unmute": "Ton an",
|
||||
"Subscription": "Bezug",
|
||||
"both": "beidseitig",
|
||||
"Status": "Status",
|
||||
"online": "online",
|
||||
"chat": "chat",
|
||||
"away": "abwesend",
|
||||
"xa": "länger abwesend",
|
||||
"offline": "offline",
|
||||
"none": "keine",
|
||||
"Unknown_instance_tag": "Unbekannter instance tag.",
|
||||
"Not_one_of_our_latest_keys": "Nicht einer unserer letzten Schlüssel.",
|
||||
"Received_an_unreadable_encrypted_message": "Eine unlesbare verschlüsselte Nachricht erhalten.",
|
||||
"Online": "Online",
|
||||
"Chatty": "Gesprächig",
|
||||
"Away": "Abwesend",
|
||||
"Extended_away": "Länger abwesend",
|
||||
"Offline": "Offline",
|
||||
"Friendship_request": "Kontaktanfrage",
|
||||
"Confirm": "Bestätigen",
|
||||
"Dismiss": "Ablehnen",
|
||||
"Remove": "Löschen",
|
||||
"Online_help": "Online Hilfe",
|
||||
"FN": "Name",
|
||||
"N": " ",
|
||||
"FAMILY": "Familienname",
|
||||
"GIVEN": "Vorname",
|
||||
"NICKNAME": "Spitzname",
|
||||
"URL": "URL",
|
||||
"ADR": "Adresse",
|
||||
"STREET": "Straße",
|
||||
"EXTADD": "Zusätzliche Adresse",
|
||||
"LOCALITY": "Ortschaft",
|
||||
"REGION": "Region",
|
||||
"PCODE": "Postleitzahl",
|
||||
"CTRY": "Land",
|
||||
"TEL": "Telefon",
|
||||
"NUMBER": "Nummer",
|
||||
"EMAIL": "E-Mail",
|
||||
"USERID": " ",
|
||||
"ORG": "Organisation",
|
||||
"ORGNAME": "Name",
|
||||
"ORGUNIT": "Abteilung",
|
||||
"TITLE": "Titel",
|
||||
"ROLE": "Rolle",
|
||||
"BDAY": "Geburtstag",
|
||||
"DESC": "Beschreibung",
|
||||
"PHOTO": " ",
|
||||
"send_message": "Sende Nachricht",
|
||||
"get_info": "Benutzerinformationen",
|
||||
"Settings": "Einstellungen",
|
||||
"Priority": "Priorität",
|
||||
"Save": "Speichern",
|
||||
"User_settings": "Benutzereinstellungen",
|
||||
"A_fingerprint_": "Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.",
|
||||
"Your_roster_is_empty_add_a": "Deine Kontaktliste ist leer, füge einen neuen Kontakt ",
|
||||
"new_buddy": "hinzu",
|
||||
"is": "ist",
|
||||
"Login_options": "Anmeldeoptionen",
|
||||
"BOSH_url": "BOSH url",
|
||||
"Domain": "Domain",
|
||||
"Resource": "Ressource",
|
||||
"On_login": "Beim Anmelden",
|
||||
"Received_an_unencrypted_message": "Unverschlüsselte Nachricht empfangen",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Dein Kontakt stellt leider keine Informationen bereit.",
|
||||
"Info_about": "Info über",
|
||||
"Authentication_aborted": "Authentifizierung abgebrochen.",
|
||||
"Authentication_request_received": "Authentifizierungsanfrage empfangen.",
|
||||
"Do_you_want_to_display_them": "Möchtest du sie sehen?",
|
||||
"Log_in_without_chat": "Anmelden ohne Chat",
|
||||
"has_come_online": "ist online gekommen",
|
||||
"Unknown_sender": "Unbekannter Sender",
|
||||
"You_received_a_message_from_an_unknown_sender": "Du hast eine Nachricht von einem unbekannten Sender erhalten",
|
||||
"Please_allow_access_to_microphone_and_camera": "Bitte klick auf den \"Zulassen\" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.",
|
||||
"Incoming_call": "Eingehender Anruf",
|
||||
"from": "von",
|
||||
"Do_you_want_to_accept_the_call_from": "Möchtest Du den Anruf annehmen von",
|
||||
"Reject": "Ablehnen",
|
||||
"Accept": "Annehmen",
|
||||
"hang_up": "Auflegen",
|
||||
"snapshot": "Schnappschuss",
|
||||
"mute_my_audio": "Mein Ton aus",
|
||||
"pause_my_video": "Mein Video pausieren",
|
||||
"fullscreen": "Vollbild",
|
||||
"Info": "Info",
|
||||
"Local_IP": "Lokale IP",
|
||||
"Remote_IP": "Remote IP",
|
||||
"Local_Fingerprint": "Lokaler Fingerprint",
|
||||
"Remote_Fingerprint": "Remote Fingerprint",
|
||||
"Video_call_not_possible": "Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.",
|
||||
"Start_video_call": "Starte Videoanruf",
|
||||
"Join_chat": "Gruppe beitreten",
|
||||
"Join": "Betreten",
|
||||
"Room": "Gruppe",
|
||||
"Nickname": "Nickname",
|
||||
"left_the_building": "__nickname__ hat die Gruppe verlassen",
|
||||
"entered_the_room": "__nickname__ ist der Gruppe beigetreten",
|
||||
"is_now_known_as": "__oldNickname__ ist nun unter __newNickname__ bekannt",
|
||||
"This_room_is": "Diese Gruppe ist",
|
||||
"muc_hidden": {
|
||||
"keyword": "versteckt",
|
||||
"description": "kann durch die Suche nicht gefunden werden"
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": "nur für Mitglieder",
|
||||
"description": "du musst auf der Mitgliederliste stehen"
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": "moderiert",
|
||||
"description": "Nur Personen die \"Mitspracherecht\" haben dürfen Nachrichten senden"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": "nicht anonym",
|
||||
"description": "deine Jabber ID wird für alle Mitglieder sichtbar sein"
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": "offen",
|
||||
"description": "jeder darf dieser Gruppe beitreten"
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": "passwortgeschützt",
|
||||
"description": "du benötigst das korrekte Passwort"
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": "permanent",
|
||||
"description": "wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": "öffentlich",
|
||||
"description": "kann durch die Suche gefunden werden"
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": "teilweise anonym",
|
||||
"description": "deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": "temporär",
|
||||
"description": "wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": "nicht moderiert",
|
||||
"description": "jeder darf Nachrichten senden"
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": "ungesichert",
|
||||
"description": "es wird kein Passwort benötigt"
|
||||
},
|
||||
"Continue": "Weiter",
|
||||
"Server": "Server",
|
||||
"Rooms_are_loaded": "Gruppen werden geladen",
|
||||
"Could_load_only": "Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden",
|
||||
"muc_explanation": "Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten",
|
||||
"You_already_joined_this_room": "Du bist dieser Gruppe bereits beigetreten",
|
||||
"This_room_will_be_closed": "Diese Gruppe wird geschlossen",
|
||||
"Room_not_found_": "Es wird eine neue Gruppe erstellt",
|
||||
"Loading_room_information": "Informationen über Gruppe werden geladen",
|
||||
"Destroy": "Auflösen",
|
||||
"Leave": "Verlassen",
|
||||
"changed_subject_to": "__nickname__ hat das Thema auf __subject__ geändert",
|
||||
"muc_removed_kicked": "Du wurdest aus der Gruppe entfernt",
|
||||
"muc_removed_info_kicked": "__nickname__ wurde aus der Gruppe entfernt",
|
||||
"muc_removed_banned": "Du wurdest aus der Gruppe ausgeschlossen",
|
||||
"muc_removed_info_banned": "__nickname__ wurde aus der Gruppe ausgeschlossen",
|
||||
"muc_removed_affiliation": "Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus",
|
||||
"muc_removed_info_affiliation": "__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus",
|
||||
"muc_removed_membersonly": "Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt",
|
||||
"muc_removed_info_membersonly": "Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt",
|
||||
"muc_removed_shutdown": "Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird",
|
||||
"Reason": "Grund",
|
||||
"message_not_send": "Deine Nachricht wurde aufgrund eines Fehlers nicht versandt",
|
||||
"message_not_send_item-not-found": "Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert",
|
||||
"message_not_send_forbidden": "Deine Nachricht wurde nicht versandt, da du kein \"Mitspracherecht\" hast",
|
||||
"message_not_send_not-acceptable": "Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist",
|
||||
"This_room_has_been_closed": "Diese Gruppe wurde geschlossen",
|
||||
"Room_logging_is_enabled": "Gesprächsverlauf kann öffentlich einsehbar sein",
|
||||
"A_password_is_required": "Es wird ein Passwort benötigt",
|
||||
"You_are_not_on_the_member_list": "Du bist kein eingetragenes Mitglied",
|
||||
"You_are_banned_from_this_room": "Du wurdest von dieser Gruppe ausgeschlossen",
|
||||
"Your_desired_nickname_": "Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.",
|
||||
"The_maximum_number_": "Die maximale Anzahl der Mitglieder wurde erreicht.",
|
||||
"This_room_is_locked_": "Diese Gruppe ist gesperrt",
|
||||
"You_are_not_allowed_to_create_": "Du darfst keine neue Gruppe erstellen",
|
||||
"Carbon_copy": null,
|
||||
"Enable": "Aktivieren"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": null,
|
||||
"your_connection_is_unencrypted": null,
|
||||
"your_connection_is_encrypted": null,
|
||||
"your_buddy_closed_the_private_connection": null,
|
||||
"start_private": null,
|
||||
"close_private": null,
|
||||
"your_buddy_is_verificated": null,
|
||||
"you_have_only_a_subscription_in_one_way": null,
|
||||
"authentication_query_sent": null,
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": null,
|
||||
"unencrypted_message_received": null,
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": null,
|
||||
"not_available": null,
|
||||
"no_connection": null,
|
||||
"relogin": null,
|
||||
"trying_to_start_private_conversation": null,
|
||||
"Verified": null,
|
||||
"Unverified": null,
|
||||
"private_conversation_started": null,
|
||||
"private_conversation_aborted": null,
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": null,
|
||||
"conversation_is_now_verified": null,
|
||||
"authentication_failed": null,
|
||||
"your_buddy_is_attempting_to_determine_": null,
|
||||
"to_authenticate_to_your_buddy": null,
|
||||
"enter_the_answer_and_click_answer": null,
|
||||
"enter_the_secret": null,
|
||||
"Creating_your_private_key_": null,
|
||||
"Authenticating_a_buddy_helps_": null,
|
||||
"How_do_you_want_to_authenticate_your_buddy": null,
|
||||
"Select_method": null,
|
||||
"Manual": null,
|
||||
"Question": null,
|
||||
"Secret": null,
|
||||
"To_verify_the_fingerprint_": null,
|
||||
"Your_fingerprint": null,
|
||||
"Buddy_fingerprint": null,
|
||||
"Close": null,
|
||||
"Compared": null,
|
||||
"To_authenticate_using_a_question_": null,
|
||||
"Ask": null,
|
||||
"To_authenticate_pick_a_secret_": null,
|
||||
"Compare": null,
|
||||
"Fingerprints": null,
|
||||
"Authentication": null,
|
||||
"Message": null,
|
||||
"Add_buddy": null,
|
||||
"rename_buddy": null,
|
||||
"delete_buddy": null,
|
||||
"Login": null,
|
||||
"Username": null,
|
||||
"Password": null,
|
||||
"Cancel": null,
|
||||
"Connect": null,
|
||||
"Type_in_the_full_username_": null,
|
||||
"Alias": null,
|
||||
"Add": null,
|
||||
"Subscription_request": null,
|
||||
"You_have_a_request_from": null,
|
||||
"Deny": null,
|
||||
"Approve": null,
|
||||
"Remove_buddy": null,
|
||||
"You_are_about_to_remove_": null,
|
||||
"Continue_without_chat": null,
|
||||
"Please_wait": null,
|
||||
"Login_failed": null,
|
||||
"Sorry_we_cant_authentikate_": null,
|
||||
"Retry": null,
|
||||
"clear_history": null,
|
||||
"New_message_from": null,
|
||||
"Should_we_notify_you_": null,
|
||||
"Please_accept_": null,
|
||||
"Hide_offline": null,
|
||||
"Show_offline": null,
|
||||
"About": null,
|
||||
"dnd": null,
|
||||
"Mute": null,
|
||||
"Unmute": null,
|
||||
"Subscription": null,
|
||||
"both": null,
|
||||
"Status": null,
|
||||
"online": null,
|
||||
"chat": null,
|
||||
"away": null,
|
||||
"xa": null,
|
||||
"offline": null,
|
||||
"none": null,
|
||||
"Unknown_instance_tag": null,
|
||||
"Not_one_of_our_latest_keys": null,
|
||||
"Received_an_unreadable_encrypted_message": null,
|
||||
"Online": null,
|
||||
"Chatty": null,
|
||||
"Away": null,
|
||||
"Extended_away": null,
|
||||
"Offline": null,
|
||||
"Friendship_request": null,
|
||||
"Confirm": null,
|
||||
"Dismiss": null,
|
||||
"Remove": null,
|
||||
"Online_help": null,
|
||||
"FN": null,
|
||||
"N": null,
|
||||
"FAMILY": null,
|
||||
"GIVEN": null,
|
||||
"NICKNAME": null,
|
||||
"URL": null,
|
||||
"ADR": null,
|
||||
"STREET": null,
|
||||
"EXTADD": null,
|
||||
"LOCALITY": null,
|
||||
"REGION": null,
|
||||
"PCODE": null,
|
||||
"CTRY": null,
|
||||
"TEL": null,
|
||||
"NUMBER": null,
|
||||
"EMAIL": null,
|
||||
"USERID": null,
|
||||
"ORG": null,
|
||||
"ORGNAME": null,
|
||||
"ORGUNIT": null,
|
||||
"TITLE": null,
|
||||
"ROLE": null,
|
||||
"BDAY": null,
|
||||
"DESC": null,
|
||||
"PHOTO": null,
|
||||
"send_message": null,
|
||||
"get_info": null,
|
||||
"Settings": null,
|
||||
"Priority": null,
|
||||
"Save": null,
|
||||
"User_settings": null,
|
||||
"A_fingerprint_": null,
|
||||
"Your_roster_is_empty_add_a": null,
|
||||
"new_buddy": null,
|
||||
"is": null,
|
||||
"Login_options": null,
|
||||
"BOSH_url": null,
|
||||
"Domain": null,
|
||||
"Resource": null,
|
||||
"On_login": null,
|
||||
"Received_an_unencrypted_message": null,
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": null,
|
||||
"Info_about": null,
|
||||
"Authentication_aborted": null,
|
||||
"Authentication_request_received": null,
|
||||
"Do_you_want_to_display_them": null,
|
||||
"Log_in_without_chat": null,
|
||||
"has_come_online": null,
|
||||
"Unknown_sender": null,
|
||||
"You_received_a_message_from_an_unknown_sender": null,
|
||||
"Please_allow_access_to_microphone_and_camera": null,
|
||||
"Incoming_call": null,
|
||||
"from": null,
|
||||
"Do_you_want_to_accept_the_call_from": null,
|
||||
"Reject": null,
|
||||
"Accept": null,
|
||||
"hang_up": null,
|
||||
"snapshot": null,
|
||||
"mute_my_audio": null,
|
||||
"pause_my_video": null,
|
||||
"fullscreen": null,
|
||||
"Info": null,
|
||||
"Local_IP": null,
|
||||
"Remote_IP": null,
|
||||
"Local_Fingerprint": null,
|
||||
"Remote_Fingerprint": null,
|
||||
"Video_call_not_possible": null,
|
||||
"Start_video_call": null,
|
||||
"Join_chat": null,
|
||||
"Join": null,
|
||||
"Room": null,
|
||||
"Nickname": null,
|
||||
"left_the_building": null,
|
||||
"entered_the_room": null,
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": null,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"Carbon_copy": null,
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Logging in…",
|
||||
"your_connection_is_unencrypted": "Your connection is unencrypted.",
|
||||
"your_connection_is_encrypted": "Your connection is encrypted.",
|
||||
"your_buddy_closed_the_private_connection": "Your contact closed the private connection.",
|
||||
"start_private": "Start private",
|
||||
"close_private": "Close private",
|
||||
"your_buddy_is_verificated": "Your contact is verified.",
|
||||
"you_have_only_a_subscription_in_one_way": "You only have a one-way subscription.",
|
||||
"authentication_query_sent": "Authentication query sent.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Your message was not sent. Please end your private conversation.",
|
||||
"unencrypted_message_received": "Unencrypted message received",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Your message was not sent because you have no valid subscription.",
|
||||
"not_available": "Not available",
|
||||
"no_connection": "No connection!",
|
||||
"relogin": "relogin",
|
||||
"trying_to_start_private_conversation": "Trying to start private conversation!",
|
||||
"Verified": "Verified",
|
||||
"Unverified": "Unverified",
|
||||
"private_conversation_started": "Private conversation started.",
|
||||
"private_conversation_aborted": "Private conversation aborted!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Your contact closed the private conversation! You should do the same.",
|
||||
"conversation_is_now_verified": "Conversation is now verified.",
|
||||
"authentication_failed": "Authentication failed.",
|
||||
"your_buddy_is_attempting_to_determine_": "You contact is attempting to determine if they are really talking to you.",
|
||||
"to_authenticate_to_your_buddy": "To authenticate to your contact, ",
|
||||
"enter_the_answer_and_click_answer": "enter the answer and click Answer.",
|
||||
"enter_the_secret": "enter the secret.",
|
||||
"Creating_your_private_key_": "Creating your private key; this may take a while.",
|
||||
"Authenticating_a_buddy_helps_": "Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "How do you want to authenticate {{bid_name}} (<b>{{bid_jid}}</b>)?",
|
||||
"Select_method": "Select method...",
|
||||
"Manual": "Manual",
|
||||
"Question": "Question",
|
||||
"Secret": "Secret",
|
||||
"To_verify_the_fingerprint_": "To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.",
|
||||
"Your_fingerprint": "Your fingerprint",
|
||||
"Buddy_fingerprint": "Contact fingerprint",
|
||||
"Close": "Close",
|
||||
"Compared": "Compared",
|
||||
"To_authenticate_using_a_question_": "To authenticate using a question, pick a question whose answer is known only you and your contact.",
|
||||
"Ask": "Ask",
|
||||
"To_authenticate_pick_a_secret_": "To authenticate, pick a secret known only to you and your contact.",
|
||||
"Compare": "Compare",
|
||||
"Fingerprints": "Fingerprints",
|
||||
"Authentication": "Authentication",
|
||||
"Message": "Message",
|
||||
"Add_buddy": "Add contact",
|
||||
"rename_buddy": "rename contact",
|
||||
"delete_buddy": "delete contact",
|
||||
"Login": "Login",
|
||||
"Username": "Username",
|
||||
"Password": "Password",
|
||||
"Cancel": "Cancel",
|
||||
"Connect": "Connect",
|
||||
"Type_in_the_full_username_": "Type in the full username and an optional alias.",
|
||||
"Alias": "Alias",
|
||||
"Add": "Add",
|
||||
"Subscription_request": "Subscription request",
|
||||
"You_have_a_request_from": "You have a request from",
|
||||
"Deny": "Deny",
|
||||
"Approve": "Approve",
|
||||
"Remove_buddy": "Remove contact",
|
||||
"You_are_about_to_remove_": "You are about to remove {{bid_name}} (<b>{{bid_jid}}</b>) from your contact list. All related chats will be closed.",
|
||||
"Continue_without_chat": "Continue without chat",
|
||||
"Please_wait": "Please wait",
|
||||
"Login_failed": "Chat login failed",
|
||||
"Sorry_we_cant_authentikate_": "Authentication failed with the chat server. Maybe the password is wrong?",
|
||||
"Retry": "Back",
|
||||
"clear_history": "Clear history",
|
||||
"New_message_from": "New message from",
|
||||
"Should_we_notify_you_": "Should we notify you about new messages in the future?",
|
||||
"Please_accept_": "Please click the \"Allow\" button at the top.",
|
||||
"Hide_offline": "Hide offline contacts",
|
||||
"Show_offline": "Show offline contacts",
|
||||
"About": "About",
|
||||
"dnd": "Do Not Disturb",
|
||||
"Mute": "Mute",
|
||||
"Unmute": "Unmute",
|
||||
"Subscription": "Subscription",
|
||||
"both": "both",
|
||||
"Status": "Status",
|
||||
"online": "online",
|
||||
"chat": "chat",
|
||||
"away": "away",
|
||||
"xa": "extended away",
|
||||
"offline": "offline",
|
||||
"none": "none",
|
||||
"Unknown_instance_tag": "Unknown instance tag.",
|
||||
"Not_one_of_our_latest_keys": "Not one of our latest keys.",
|
||||
"Received_an_unreadable_encrypted_message": "Received an unreadable encrypted message.",
|
||||
"Online": "Online",
|
||||
"Chatty": "Chatty",
|
||||
"Away": "Away",
|
||||
"Extended_away": "Extended away",
|
||||
"Offline": "Offline",
|
||||
"Friendship_request": "Contact request",
|
||||
"Confirm": "Confirm",
|
||||
"Dismiss": "Dismiss",
|
||||
"Remove": "Remove",
|
||||
"Online_help": "Online help",
|
||||
"FN": "Full name",
|
||||
"N": " ",
|
||||
"FAMILY": "Family name",
|
||||
"GIVEN": "Given name",
|
||||
"NICKNAME": "Nickname",
|
||||
"URL": "URL",
|
||||
"ADR": "Address",
|
||||
"STREET": "Street Address",
|
||||
"EXTADD": "Extended Address",
|
||||
"LOCALITY": "Locality",
|
||||
"REGION": "Region",
|
||||
"PCODE": "Postal Code",
|
||||
"CTRY": "Country",
|
||||
"TEL": "Telephone",
|
||||
"NUMBER": "Number",
|
||||
"EMAIL": "Email",
|
||||
"USERID": " ",
|
||||
"ORG": "Organization",
|
||||
"ORGNAME": "Name",
|
||||
"ORGUNIT": "Unit",
|
||||
"TITLE": "Job title",
|
||||
"ROLE": "Role",
|
||||
"BDAY": "Birthday",
|
||||
"DESC": "Description",
|
||||
"PHOTO": " ",
|
||||
"send_message": "Send message",
|
||||
"get_info": "Show information",
|
||||
"Settings": "Settings",
|
||||
"Priority": "Priority",
|
||||
"Save": "Save",
|
||||
"User_settings": "User settings",
|
||||
"A_fingerprint_": "A fingerprint is used to make sure that the person you are talking to is who he or she is saying.",
|
||||
"Your_roster_is_empty_add_a": "Your roster is empty, add a ",
|
||||
"new_buddy": "new contact",
|
||||
"is": "is",
|
||||
"Login_options": "Login options",
|
||||
"BOSH_url": "BOSH URL",
|
||||
"Domain": "Domain",
|
||||
"Resource": "Resource",
|
||||
"On_login": "On login",
|
||||
"Received_an_unencrypted_message": "Received an unencrypted message",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Sorry, your contact does not provide any information.",
|
||||
"Info_about": "Info about",
|
||||
"Authentication_aborted": "Authentication aborted.",
|
||||
"Authentication_request_received": "Authentication request received.",
|
||||
"Do_you_want_to_display_them": "Do you want to display them?",
|
||||
"Log_in_without_chat": "Log in without chat",
|
||||
"has_come_online": "has come online",
|
||||
"Unknown_sender": "Unknown sender",
|
||||
"You_received_a_message_from_an_unknown_sender": "You received a message from an unknown sender",
|
||||
"Please_allow_access_to_microphone_and_camera": "Please click the \"Allow\" button at the top, to allow access to microphone and camera.",
|
||||
"Incoming_call": "Incoming call",
|
||||
"from": "from",
|
||||
"Do_you_want_to_accept_the_call_from": "Do you want to accept the call from",
|
||||
"Reject": "Reject",
|
||||
"Accept": "Accept",
|
||||
"hang_up": "hang up",
|
||||
"snapshot": "snapshot",
|
||||
"mute_my_audio": "mute my audio",
|
||||
"pause_my_video": "pause my video",
|
||||
"fullscreen": "fullscreen",
|
||||
"Info": "Info",
|
||||
"Local_IP": "Local IP",
|
||||
"Remote_IP": "Remote IP",
|
||||
"Local_Fingerprint": "Local fingerprint",
|
||||
"Remote_Fingerprint": "Remote fingerprint",
|
||||
"Video_call_not_possible": "Video call not possible. Your contact does not support video calls.",
|
||||
"Start_video_call": "Start video call",
|
||||
"Join_chat": "Join chat",
|
||||
"Join": "Join",
|
||||
"Room": "Room",
|
||||
"Nickname": "Nickname",
|
||||
"left_the_building": "__nickname__ left the building",
|
||||
"entered_the_room": "__nickname__ entered the room",
|
||||
"is_now_known_as": "__oldNickname__ is now known as __newNickname__",
|
||||
"This_room_is": "This room is",
|
||||
"muc_hidden": {
|
||||
"keyword": "hidden",
|
||||
"description": "can not be found through search"
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": "members-only",
|
||||
"description": "you need to be on the member list"
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": "moderated",
|
||||
"description": "only persons with \"voice\" are allowed to send messages"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": "non-anonymous",
|
||||
"description": "your jabber id is exposed to all other occupants"
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": "open",
|
||||
"description": "everyone is allowed to join"
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": "password-protected",
|
||||
"description": "you need to provide the correct password"
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": "persistent",
|
||||
"description": "will not be destroyed if the last occupant left"
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": "public",
|
||||
"description": "can be found through search"
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": "semi-anonymous",
|
||||
"description": "your jabber id is only exposed to room admins"
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": "temporary",
|
||||
"description": "will be destroyed if the last occupant left"
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": "unmoderated",
|
||||
"description": "everyone is allowed to send messages"
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": "unsecured",
|
||||
"description": "you need no password to enter"
|
||||
},
|
||||
"Continue": "Continue",
|
||||
"Server": "Server",
|
||||
"Rooms_are_loaded": "Rooms are loaded",
|
||||
"Could_load_only": "Could load only __count__ rooms for autocomplete",
|
||||
"muc_explanation": "Please enter room name and optional a nickname and password to join a chat",
|
||||
"You_already_joined_this_room": "You already joined this room",
|
||||
"This_room_will_be_closed": "This room will be closed",
|
||||
"Room_not_found_": "A new room will be created",
|
||||
"Loading_room_information": "Loading room information",
|
||||
"Destroy": "Destroy",
|
||||
"Leave": "Leave",
|
||||
"changed_subject_to": "__nickname__ changed the room subject to \"__subject__\"",
|
||||
"muc_removed_kicked": "You have been kicked from the room",
|
||||
"muc_removed_info_kicked": "__nickname__ has been kicked from the room",
|
||||
"muc_removed_banned": "You have been banned from the room",
|
||||
"muc_removed_info_banned": "__nickname__ has been banned from the room",
|
||||
"muc_removed_affiliation": "You have been removed from the room, because of an affiliation change",
|
||||
"muc_removed_info_affiliation": "__nickname__ has been removed from the room, because of an affiliation change",
|
||||
"muc_removed_membersonly": "You have been removed from the room, because the room has been changed to members-only and you are no member",
|
||||
"muc_removed_info_membersonly": "__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member",
|
||||
"muc_removed_shutdown": "You have been removed from the room, because the MUC service is being shut down",
|
||||
"Reason": "Reason",
|
||||
"message_not_send": "Your message was not send because of an error",
|
||||
"message_not_send_item-not-found": "Your message was not send because this room does not exist",
|
||||
"message_not_send_forbidden": "Your message was not send because you have no voice in this room",
|
||||
"message_not_send_not-acceptable": "Your message was not send because you are no occupant of this room",
|
||||
"This_room_has_been_closed": "This room has been closed",
|
||||
"Room_logging_is_enabled": "Room logging is enabled",
|
||||
"A_password_is_required": "A password is required",
|
||||
"You_are_not_on_the_member_list": "You are not on the member list",
|
||||
"You_are_banned_from_this_room": "You are banned from this room",
|
||||
"Your_desired_nickname_": "Your desired nickname is already in use. Please choose another",
|
||||
"The_maximum_number_": "The maximum number of user is reached in this room",
|
||||
"This_room_is_locked_": "This room is locked",
|
||||
"You_are_not_allowed_to_create_": "You are not allowed to create a room",
|
||||
"Carbon_copy": "Carbon copy",
|
||||
"Enable": "Enable"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Por favor, espere...",
|
||||
"your_connection_is_unencrypted": "Su conexión no está cifrada.",
|
||||
"your_connection_is_encrypted": "Su conexión está cifrada.",
|
||||
"your_buddy_closed_the_private_connection": "Su amigo ha cerrado la conexión privada.",
|
||||
"start_private": "Iniciar privado",
|
||||
"close_private": "Cerrar privado",
|
||||
"your_buddy_is_verificated": "Tu amigo está verificado.",
|
||||
"you_have_only_a_subscription_in_one_way": "Sólo tienes una suscripción de un modo.",
|
||||
"authentication_query_sent": "Consulta de verificación enviada.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Su mensaje no fue enviado. Por favor, termine su conversación privada.",
|
||||
"unencrypted_message_received": "Mensaje no cifrado recibido:",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Su mensaje no se ha enviado, porque usted no tiene suscripción válida.",
|
||||
"not_available": "No disponible",
|
||||
"no_connection": "Sin conexión!",
|
||||
"relogin": "iniciar sesión nuevamente",
|
||||
"trying_to_start_private_conversation": "Intentando iniciar una conversación privada!",
|
||||
"Verified": "Verificado",
|
||||
"Unverified": "No verificado",
|
||||
"private_conversation_started": "se inició una conversación privada.",
|
||||
"private_conversation_aborted": "Conversación privada abortada!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Su amigo cerró la conversación privada! Usted debería hacer lo mismo.",
|
||||
"conversation_is_now_verified": "La conversación es ahora verificada.",
|
||||
"authentication_failed": "Fallo la verificación.",
|
||||
"your_buddy_is_attempting_to_determine_": "Tu amigo está tratando de determinar si él o ella está realmente hablando con usted.",
|
||||
"to_authenticate_to_your_buddy": "Para autenticar a su amigo, ",
|
||||
"enter_the_answer_and_click_answer": "introduce la respuesta y haga clic en Contestar.",
|
||||
"enter_the_secret": "especifique el secreto.",
|
||||
"Creating_your_private_key_": "Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.",
|
||||
"Authenticating_a_buddy_helps_": "Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "¿Cómo desea autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",
|
||||
"Select_method": "Escoja un método...",
|
||||
"Manual": "Manual",
|
||||
"Question": "Pregunta",
|
||||
"Secret": "Secreto",
|
||||
"To_verify_the_fingerprint_": "Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.",
|
||||
"Your_fingerprint": "Tu firma digital",
|
||||
"Buddy_fingerprint": "firma digital de tu amigo",
|
||||
"Close": "Cerrar",
|
||||
"Compared": "Comparado",
|
||||
"To_authenticate_using_a_question_": "Para autenticar mediante una pregunta, elegir una pregunta cuya respuesta se conoce sólo usted y su amigo.",
|
||||
"Ask": "Preguntar",
|
||||
"To_authenticate_pick_a_secret_": "Para autenticar, elija un secreto conocido sólo por usted y su amigo.",
|
||||
"Compare": "Comparar",
|
||||
"Fingerprints": "Firmas digitales",
|
||||
"Authentication": "Autenticación",
|
||||
"Message": "Mensaje",
|
||||
"Add_buddy": "Añadir amigo",
|
||||
"rename_buddy": "renombrar amigo",
|
||||
"delete_buddy": "eliminar amigo",
|
||||
"Login": "Iniciar Sesión",
|
||||
"Username": "Usuario",
|
||||
"Password": "Contraseña",
|
||||
"Cancel": "Cancelar",
|
||||
"Connect": "Conectar",
|
||||
"Type_in_the_full_username_": "Escriba el usuario completo y un alias opcional.",
|
||||
"Alias": "Alias",
|
||||
"Add": "Añadir",
|
||||
"Subscription_request": "Solicitud de suscripción",
|
||||
"You_have_a_request_from": "Tienes una petición de",
|
||||
"Deny": "Rechazar",
|
||||
"Approve": "Aprobar",
|
||||
"Remove_buddy": "Eliminar amigo",
|
||||
"You_are_about_to_remove_": "Vas a eliminar a {{bid_name}} (<b>{{bid_jid}}</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.",
|
||||
"Continue_without_chat": "Continuar",
|
||||
"Please_wait": "Espere por favor",
|
||||
"Login_failed": "Fallo el inicio de sesión",
|
||||
"Sorry_we_cant_authentikate_": "Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?",
|
||||
"Retry": "Reintentar",
|
||||
"clear_history": "Borrar el historial",
|
||||
"New_message_from": "Nuevo mensaje de",
|
||||
"Should_we_notify_you_": "¿Debemos notificarle sobre nuevos mensajes en el futuro?",
|
||||
"Please_accept_": "Por favor, haga clic en el botón \"Permitir\" en la parte superior.",
|
||||
"Hide_offline": "Ocultar contactos desconectados",
|
||||
"Show_offline": "Mostrar contactos desconectados",
|
||||
"About": "Acerca de",
|
||||
"dnd": "No Molestar",
|
||||
"Mute": "Desactivar sonido",
|
||||
"Unmute": "Activar sonido",
|
||||
"Subscription": "Suscripción",
|
||||
"both": "ambos",
|
||||
"Status": "Estado",
|
||||
"online": "en línea",
|
||||
"chat": "chat",
|
||||
"away": "ausente",
|
||||
"xa": "mas ausente",
|
||||
"offline": "desconectado",
|
||||
"none": "nadie",
|
||||
"Unknown_instance_tag": "Etiqueta de instancia desconocida.",
|
||||
"Not_one_of_our_latest_keys": "No de nuestra ultima tecla.",
|
||||
"Received_an_unreadable_encrypted_message": "Se recibió un mensaje cifrado ilegible.",
|
||||
"Online": "En linea",
|
||||
"Chatty": "Hablador",
|
||||
"Away": "Ausente",
|
||||
"Extended_away": "Mas ausente",
|
||||
"Offline": "Desconectado",
|
||||
"Friendship_request": "Solicitud de amistad",
|
||||
"Confirm": "Confirmar",
|
||||
"Dismiss": "Rechazar",
|
||||
"Remove": "Eliminar",
|
||||
"Online_help": "Ayuda en línea",
|
||||
"FN": "Nombre completo ",
|
||||
"N": " ",
|
||||
"FAMILY": "Apellido",
|
||||
"GIVEN": "Nombre",
|
||||
"NICKNAME": "Apodar",
|
||||
"URL": "URL",
|
||||
"ADR": "Dirección",
|
||||
"STREET": "Calle",
|
||||
"EXTADD": "Extendido dirección",
|
||||
"LOCALITY": "Población",
|
||||
"REGION": "Región",
|
||||
"PCODE": "Código postal",
|
||||
"CTRY": "País",
|
||||
"TEL": "Teléfono",
|
||||
"NUMBER": "Número",
|
||||
"EMAIL": "Emilio",
|
||||
"USERID": " ",
|
||||
"ORG": "Organización",
|
||||
"ORGNAME": "Nombre",
|
||||
"ORGUNIT": "Departamento",
|
||||
"TITLE": "Título",
|
||||
"ROLE": "Rol",
|
||||
"BDAY": "Cumpleaños",
|
||||
"DESC": "Descripción",
|
||||
"PHOTO": " ",
|
||||
"send_message": "mandar un texto",
|
||||
"get_info": "obtener información",
|
||||
"Settings": "Ajustes",
|
||||
"Priority": "Prioridad",
|
||||
"Save": "Guardar",
|
||||
"User_settings": "Configuración de usuario",
|
||||
"A_fingerprint_": "La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser",
|
||||
"Your_roster_is_empty_add_a": "Tu lista de amigos esta vacia",
|
||||
"new_buddy": "Nuevo amigo",
|
||||
"is": "es",
|
||||
"Login_options": "Opciones de login",
|
||||
"BOSH_url": "BOSH url",
|
||||
"Domain": "Dominio",
|
||||
"Resource": "Recurso",
|
||||
"On_login": "Iniciar sesión",
|
||||
"Received_an_unencrypted_message": "Recibe un mensaje no cifrado",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Lo sentimos, su amigo no provee ninguna información.",
|
||||
"Info_about": "Info acerca de",
|
||||
"Authentication_aborted": "Autenticación abortada",
|
||||
"Authentication_request_received": "Pedido de autenticación recibido.",
|
||||
"Do_you_want_to_display_them": "¿Quiere mostrarlos?",
|
||||
"Log_in_without_chat": "Ingresar sin chat",
|
||||
"has_come_online": "se ha conectado",
|
||||
"Unknown_sender": "Remitente desconocido",
|
||||
"You_received_a_message_from_an_unknown_sender": "Ha recibido un mensaje de un remitente desconocido",
|
||||
"Please_allow_access_to_microphone_and_camera": "Por favor, permitir el acceso al micrófono y la cámara.",
|
||||
"Incoming_call": "Llamada entrante",
|
||||
"from": "de",
|
||||
"Do_you_want_to_accept_the_call_from": "Desea aceptar la llamada de",
|
||||
"Reject": "Rechazar",
|
||||
"Accept": "Aceptar",
|
||||
"hang_up": "colgar",
|
||||
"snapshot": "instantánea",
|
||||
"mute_my_audio": "silenciar mi audio",
|
||||
"pause_my_video": "pausar mi vídeo",
|
||||
"fullscreen": "pantalla completa",
|
||||
"Info": "Info",
|
||||
"Local_IP": "IP local",
|
||||
"Remote_IP": "IP remota",
|
||||
"Local_Fingerprint": "Firma digital local",
|
||||
"Remote_Fingerprint": "Firma digital remota",
|
||||
"Video_call_not_possible": "Llamada de vídeo no es posible",
|
||||
"Start_video_call": "Iniciar llamada de vídeo",
|
||||
"Join_chat": null,
|
||||
"Join": null,
|
||||
"Room": null,
|
||||
"Nickname": null,
|
||||
"left_the_building": null,
|
||||
"entered_the_room": null,
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": null,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"Carbon_copy": null,
|
||||
"Enable": "Activar"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Connexion...",
|
||||
"your_connection_is_unencrypted": "Connexion non chiffrée.",
|
||||
"your_connection_is_encrypted": "Connexion chiffrée.",
|
||||
"your_buddy_closed_the_private_connection": "Votre ami a fermé la connexion privée.",
|
||||
"start_private": "Démarrer une conversation privé",
|
||||
"close_private": "Clôturer une conversation privée",
|
||||
"your_buddy_is_verificated": "Votre contact est vérifié.",
|
||||
"you_have_only_a_subscription_in_one_way": "Vous ne pouvez souscrire qu'une fois.",
|
||||
"authentication_query_sent": "Requête d’authentification envoyée.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.",
|
||||
"unencrypted_message_received": "Message non chiffré reçu",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Votre message n'a pas été envoyé car votre abonnement n'est pas valide.",
|
||||
"not_available": "Pas disponible",
|
||||
"no_connection": "Pas de connexion !",
|
||||
"relogin": "Re-connexion",
|
||||
"trying_to_start_private_conversation": "Essai de démarrage d'une conversation privée !",
|
||||
"Verified": "Vérifié",
|
||||
"Unverified": "Non vérifié",
|
||||
"private_conversation_started": "Conversation privé démarrée.",
|
||||
"private_conversation_aborted": "Conversation privée interrompue !",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Votre ami a fermé la conversation privée ! Vous devriez faire de même.",
|
||||
"conversation_is_now_verified": "La conversation est maintenant vérifiée.",
|
||||
"authentication_failed": "L'authentification a échoué.",
|
||||
"your_buddy_is_attempting_to_determine_": "Votre ami tente de déterminer si il ou elle parle vraiment à vous.",
|
||||
"to_authenticate_to_your_buddy": "Vous authentifier à votre ami, ",
|
||||
"enter_the_answer_and_click_answer": "Saisissez une réponse et cliquer sur Répondre.",
|
||||
"enter_the_secret": "Entrez le mot secret",
|
||||
"Creating_your_private_key_": "Création de votre clé privée; cela peut prendre un moment.",
|
||||
"Authenticating_a_buddy_helps_": "L'authentification d'un ami permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Comment voulez-vous vous authentifier {{bid_name}} (<b>{{bid_jid}}</b>)?",
|
||||
"Select_method": "Sélection de la méthode...",
|
||||
"Manual": "Manuel",
|
||||
"Question": "Question",
|
||||
"Secret": "Sécurité",
|
||||
"To_verify_the_fingerprint_": "Pour vérifier l'empreinte, contactez votre ami via un autre canal digne de confiance, tel que le téléphone.",
|
||||
"Your_fingerprint": "Votre empreinte",
|
||||
"Buddy_fingerprint": "Empreinte de l'ami",
|
||||
"Close": "Fermer",
|
||||
"Compared": "Comparé",
|
||||
"To_authenticate_using_a_question_": "Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre ami.",
|
||||
"Ask": "Demander",
|
||||
"To_authenticate_pick_a_secret_": "Pour vous authentifier, choisissez un secret connu seulement de vous et de votre ami.",
|
||||
"Compare": "Comparer",
|
||||
"Fingerprints": "Empreintes",
|
||||
"Authentication": "Authentification",
|
||||
"Message": "Message",
|
||||
"Add_buddy": "Ajouter comme ami",
|
||||
"rename_buddy": "Renommer l'ami",
|
||||
"delete_buddy": "Supprimer l'ami",
|
||||
"Login": "Connexion",
|
||||
"Username": "Nom d'utilisateur",
|
||||
"Password": "Mot de passe",
|
||||
"Cancel": "Annuler",
|
||||
"Connect": "Connecter",
|
||||
"Type_in_the_full_username_": "Tapez un nom d'utilisateur complet et un alias(optionnel).",
|
||||
"Alias": "Alias",
|
||||
"Add": "Ajouter",
|
||||
"Subscription_request": "Demande d'abonnement",
|
||||
"You_have_a_request_from": "Vous avez une requête de ",
|
||||
"Deny": "Refuser",
|
||||
"Approve": "Approuver",
|
||||
"Remove_buddy": "Supprimer l'ami",
|
||||
"You_are_about_to_remove_": "Vous allez retirer {{bid_name}} (<b>{{bid_jid}}</b>) de votre liste d'amis. Toutes les fenêtres de chat en lien avec celui-ci seront fermées.",
|
||||
"Continue_without_chat": "Continuer sans tchat",
|
||||
"Please_wait": "Merci de patienter",
|
||||
"Login_failed": "Authentification échouée",
|
||||
"Sorry_we_cant_authentikate_": "La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.",
|
||||
"Retry": "Retour",
|
||||
"clear_history": "Effacer l’historique",
|
||||
"New_message_from": "Nouveau message de",
|
||||
"Should_we_notify_you_": "Dans le futur, devrons-nous vous notifier les nouveaux messages ?",
|
||||
"Please_accept_": "Merci de cliquer sur le bouton \"autoriser\" en haut de page",
|
||||
"Hide_offline": "Masquer les contacts non connectés",
|
||||
"Show_offline": "Afficher les contacts non connectés",
|
||||
"About": "À propos",
|
||||
"dnd": "Ne pas déranger",
|
||||
"Mute": "Muet",
|
||||
"Unmute": "Son actif",
|
||||
"Subscription": "Abonnement",
|
||||
"both": "Les deux",
|
||||
"Status": "Status",
|
||||
"online": "En ligne",
|
||||
"chat": "tchat",
|
||||
"away": "Absent",
|
||||
"xa": "Options étendues",
|
||||
"offline": "Hors ligne",
|
||||
"none": "Aucun",
|
||||
"Unknown_instance_tag": "Tag inconnu",
|
||||
"Not_one_of_our_latest_keys": "Ce n'est pas l'une des dernières touches",
|
||||
"Received_an_unreadable_encrypted_message": "Message chiffré non lisible",
|
||||
"Online": "En ligne",
|
||||
"Chatty": "tchatty",
|
||||
"Away": "Absent",
|
||||
"Extended_away": "Options étendues",
|
||||
"Offline": "Hors ligne",
|
||||
"Friendship_request": "Demande d'amitié",
|
||||
"Confirm": "Valider",
|
||||
"Dismiss": "Rejeter",
|
||||
"Remove": "Supprimer",
|
||||
"Online_help": "Aide en ligne",
|
||||
"FN": "Nom",
|
||||
"N": " N ",
|
||||
"FAMILY": "Nom de famille",
|
||||
"GIVEN": "prénom",
|
||||
"NICKNAME": "Surnom",
|
||||
"URL": "URL",
|
||||
"ADR": "Adresse",
|
||||
"STREET": "Rue",
|
||||
"EXTADD": "Adresse (suite)",
|
||||
"LOCALITY": "Localité",
|
||||
"REGION": "Région",
|
||||
"PCODE": "Code Postal",
|
||||
"CTRY": "Pays",
|
||||
"TEL": "Téléphone",
|
||||
"NUMBER": "Numéro",
|
||||
"EMAIL": "Courriel",
|
||||
"USERID": " USERID ",
|
||||
"ORG": "Organisation",
|
||||
"ORGNAME": "Nom",
|
||||
"ORGUNIT": "Unité",
|
||||
"TITLE": "Qualité:",
|
||||
"ROLE": "Rôle",
|
||||
"BDAY": "Date de naissance",
|
||||
"DESC": "Description",
|
||||
"PHOTO": "Photo",
|
||||
"send_message": "Envoyer le message",
|
||||
"get_info": "Montrer les informations",
|
||||
"Settings": "Réglages",
|
||||
"Priority": "Priorité",
|
||||
"Save": "Enregistrer",
|
||||
"User_settings": "Paramètres utilisateur",
|
||||
"A_fingerprint_": "Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez",
|
||||
"Your_roster_is_empty_add_a": "Votre liste est vide, ajouter ",
|
||||
"new_buddy": "Nouvel ami",
|
||||
"is": "est",
|
||||
"Login_options": "Options d'identification",
|
||||
"BOSH_url": "URL BOSH",
|
||||
"Domain": "Domaine",
|
||||
"Resource": "Ressource",
|
||||
"On_login": "Après authentification",
|
||||
"Received_an_unencrypted_message": "Reçu un message non chiffré",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Désolé, votre ami n'a pas fourni d'informations",
|
||||
"Info_about": "A propos de",
|
||||
"Authentication_aborted": "Authentification interrompue.",
|
||||
"Authentication_request_received": "Requête d'authentification reçue.",
|
||||
"Do_you_want_to_display_them": "Voulez-vous les afficher ?",
|
||||
"Log_in_without_chat": "S'identifier sans tchat",
|
||||
"has_come_online": "vient d'arriver",
|
||||
"Unknown_sender": "Expéditeur inconnu",
|
||||
"You_received_a_message_from_an_unknown_sender": "Vous avez reçu un message d'un expéditeur inconnu",
|
||||
"Please_allow_access_to_microphone_and_camera": "Veuillez cliquez sur le bouton \"Autoriser\" en haut, pour permettre l'accès au micro et à la caméra.",
|
||||
"Incoming_call": "Appel entrant",
|
||||
"from": "de",
|
||||
"Do_you_want_to_accept_the_call_from": "Voulez-vous accepter l'appel de",
|
||||
"Reject": "Rejeté",
|
||||
"Accept": "Accepté",
|
||||
"hang_up": "Décrochez",
|
||||
"snapshot": "Capture d’écran",
|
||||
"mute_my_audio": "Couper l'audio",
|
||||
"pause_my_video": "Mettre ma vidéo en pause",
|
||||
"fullscreen": "Plein écran",
|
||||
"Info": "Info",
|
||||
"Local_IP": "IP locale",
|
||||
"Remote_IP": "IP distante",
|
||||
"Local_Fingerprint": "Empreinte locale",
|
||||
"Remote_Fingerprint": "Empreinte distante",
|
||||
"Video_call_not_possible": "L'appel vidéo n'est possible. Votre ami ne supporte pas les appels vidéo.",
|
||||
"Start_video_call": "Démarrer l'appel vidéo",
|
||||
"Join_chat": "Joindre la discution",
|
||||
"Join": "Joindre",
|
||||
"Room": "Salon",
|
||||
"Nickname": "Surnom",
|
||||
"left_the_building": "__nickname__ a quitté l'immeuble",
|
||||
"entered_the_room": "__nickname__ entre dans le salon",
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": "Ce salon est",
|
||||
"muc_hidden": {
|
||||
"keyword": "caché",
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": "pour les membres seulement",
|
||||
"description": "Vous devez être sur la liste des membres"
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": "modéré",
|
||||
"description": "Seulement les personnes avec la \"voix\" sont autorisés à envoyer des messages"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": "non anonyme",
|
||||
"description": "Votre identifiant Jabber est visible de tous les autres occupants"
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": "ouvert",
|
||||
"description": "Tout le monde est autorisé à se connecter"
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": "protégé par un mot de passe",
|
||||
"description": "Vous devez fournir un mot de passe correct"
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": "persistent",
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": "public",
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": "semi-anonyme",
|
||||
"description": "Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": "temporaire",
|
||||
"description": "sera détruit au départ de son dernier occupant"
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": "non modéré",
|
||||
"description": "Tout le monde est autorisé à envoyer des messages"
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": "non sécurisé",
|
||||
"description": "un mot de passe n'est pas nécessaire pour entrer"
|
||||
},
|
||||
"Continue": "Continuer",
|
||||
"Server": "Serveur",
|
||||
"Rooms_are_loaded": "Les salons sont chargés",
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": "Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation",
|
||||
"You_already_joined_this_room": "Vous avez déjà rejoins ce salon",
|
||||
"This_room_will_be_closed": "Ce salon va être fermé",
|
||||
"Room_not_found_": "Un nouveau salon va être créé",
|
||||
"Loading_room_information": "Chargement des informations du salon",
|
||||
"Destroy": "Détruire",
|
||||
"Leave": "Quitter",
|
||||
"changed_subject_to": "__nickname__ a changé le sujet du salon à \"__subject__\"",
|
||||
"muc_removed_kicked": "Vous avez été éjecté de ce salon",
|
||||
"muc_removed_info_kicked": "__nickname__ a été éjecté de ce salon",
|
||||
"muc_removed_banned": "Vous avez été banni de ce salon",
|
||||
"muc_removed_info_banned": "__nickname__ a été banni de ce salon",
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": "Raison",
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": "Votre message n'a pas été envoyé car il n'y a personne dans ce salon",
|
||||
"This_room_has_been_closed": "Ce salon a été fermé",
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": "Un mot de passe est requis",
|
||||
"You_are_not_on_the_member_list": "Vous n'êtes pas sur la liste des membres",
|
||||
"You_are_banned_from_this_room": "Vous avez été banni de ce salon",
|
||||
"Your_desired_nickname_": "Votre Surnom souhaité est déjà utilisé.Veuillez en choisir un autre",
|
||||
"The_maximum_number_": "Le nombre maximum d'utilisateur est atteint dans ce salon",
|
||||
"This_room_is_locked_": "Ce salon est vérouillé",
|
||||
"You_are_not_allowed_to_create_": "Vous n'êtes pas autorisé à créer un salon",
|
||||
"Carbon_copy": null,
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "login…",
|
||||
"your_connection_is_unencrypted": "La sua connessione è non cifrata.",
|
||||
"your_connection_is_encrypted": "La sua connessione è cifrata.",
|
||||
"your_buddy_closed_the_private_connection": "La sua connessione privata è stato chiuso dal suo compagno.",
|
||||
"start_private": "Inizia privata",
|
||||
"close_private": "Chiude privata",
|
||||
"your_buddy_is_verificated": "Il tuo compagno è stato verificato",
|
||||
"you_have_only_a_subscription_in_one_way": "Hai solo una one-way inscrizione.",
|
||||
"authentication_query_sent": "Domanda d'autenticità inviata.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.",
|
||||
"unencrypted_message_received": "Messaggio non cifrato ricevuto",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Il tuo messaggio non è stato inviato perché non hai una sottoscrizione valida.",
|
||||
"not_available": "non disponibile",
|
||||
"no_connection": "nessun collegamento!",
|
||||
"relogin": "nuovo login",
|
||||
"trying_to_start_private_conversation": "Cercando di avviare una conversazione privata!",
|
||||
"Verified": "verificato",
|
||||
"Unverified": "non verificato",
|
||||
"private_conversation_started": "Conversazione privata iniziato.",
|
||||
"private_conversation_aborted": "Conversazione privata abortito!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.",
|
||||
"conversation_is_now_verified": "Conversazione è ora verificato.",
|
||||
"authentication_failed": "autenticazione fallita.",
|
||||
"your_buddy_is_attempting_to_determine_": "Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te.",
|
||||
"to_authenticate_to_your_buddy": "Per autenticare a il tuo compagno. ",
|
||||
"enter_the_answer_and_click_answer": "inserisci la risposta e fare click su risposta.",
|
||||
"enter_the_secret": "inserire il segreto.",
|
||||
"Creating_your_private_key_": "Creare la propria chiave privata; questo potrebbe richiedere un po'.",
|
||||
"Authenticating_a_buddy_helps_": "Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Come si desidera autenticare {{bid_name}} (<b>{{bid_jid}}</b>)?",
|
||||
"Select_method": "Seleziona metodo ..",
|
||||
"Manual": "manuale",
|
||||
"Question": "domanda",
|
||||
"Secret": "segreto",
|
||||
"To_verify_the_fingerprint_": "Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.",
|
||||
"Your_fingerprint": "il tuo impronta digitale",
|
||||
"Buddy_fingerprint": "impronta digitale da compagno",
|
||||
"Close": "chiude",
|
||||
"Compared": "comparato",
|
||||
"To_authenticate_using_a_question_": "Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno",
|
||||
"Ask": "chiedi",
|
||||
"To_authenticate_pick_a_secret_": "Per autenticare, scegli un segreto noto solo a te e il tuo compagno.",
|
||||
"Compare": "Comparare",
|
||||
"Fingerprints": "Impronta digitale",
|
||||
"Authentication": "Autenticazione",
|
||||
"Message": "Messagio",
|
||||
"Add_buddy": "Aggiungi un compagno",
|
||||
"rename_buddy": "rinomina compagno",
|
||||
"delete_buddy": "elimina compagno",
|
||||
"Login": "Login",
|
||||
"Username": "Identificazione dell'utente",
|
||||
"Password": "Password",
|
||||
"Cancel": "Cancella",
|
||||
"Connect": "Collega",
|
||||
"Type_in_the_full_username_": "Digita l'identificazione utente completo e un alias opzionale.",
|
||||
"Alias": "Alias",
|
||||
"Add": "Aggiungi",
|
||||
"Subscription_request": "Rrichiesta di sottoscrizione",
|
||||
"You_have_a_request_from": "Hai una richiesta da",
|
||||
"Deny": "Refiuta",
|
||||
"Approve": "Approva",
|
||||
"Remove_buddy": "Rimuova il compagno",
|
||||
"You_are_about_to_remove_": "Stai rimovendo {{bid_name}} (<b>{{bid_jid}}</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.",
|
||||
"Continue_without_chat": "Continua senza chat",
|
||||
"Please_wait": "Si prega d'attendere",
|
||||
"Login_failed": "Chat login è fallito",
|
||||
"Sorry_we_cant_authentikate_": "Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?",
|
||||
"Retry": "Indietro",
|
||||
"clear_history": "Cancella la cronologia",
|
||||
"New_message_from": "Nuovo messaggio da",
|
||||
"Should_we_notify_you_": "Vuoi ricevere una notifica di nuovi messaggi in futuro?",
|
||||
"Please_accept_": "Si prega di fare clic sul bottone \"Autorizzazione\" sopra.",
|
||||
"Hide_offline": "Nascondere i contatti non in linea",
|
||||
"Show_offline": "Mostra i contatti non in linea",
|
||||
"About": "Informazione legale",
|
||||
"dnd": "Non disturbare",
|
||||
"Mute": "Muto attivo",
|
||||
"Unmute": "Muto inattivo",
|
||||
"Subscription": "Sottoscrizione",
|
||||
"both": "etrambi",
|
||||
"Status": "Status",
|
||||
"online": "In linea",
|
||||
"chat": "chat",
|
||||
"away": "via",
|
||||
"xa": "via estensivo",
|
||||
"offline": "non in linea",
|
||||
"none": "nessuno",
|
||||
"Unknown_instance_tag": "Instance tag sconosciuta.",
|
||||
"Not_one_of_our_latest_keys": "Non è una delle nostre ultime chiavi.",
|
||||
"Received_an_unreadable_encrypted_message": "Ricevuto un messaggio crittografato illeggibile.",
|
||||
"Online": "In linea",
|
||||
"Chatty": "Chiacchierino",
|
||||
"Away": "Via",
|
||||
"Extended_away": "Via estensivo",
|
||||
"Offline": "Non in linea",
|
||||
"Friendship_request": "Amicizia richiesto",
|
||||
"Confirm": "Conferma",
|
||||
"Dismiss": "Rifiuta",
|
||||
"Remove": "Rimuovi",
|
||||
"Online_help": "Guida in linea",
|
||||
"FN": "Nome e cognome",
|
||||
"N": null,
|
||||
"FAMILY": "Cognome",
|
||||
"GIVEN": "Nome",
|
||||
"NICKNAME": "Soprannome",
|
||||
"URL": "URL",
|
||||
"ADR": "Indirizzo",
|
||||
"STREET": "Via",
|
||||
"EXTADD": "Esteso Indirizzo",
|
||||
"LOCALITY": "Località",
|
||||
"REGION": "Regione",
|
||||
"PCODE": "Codice Postale",
|
||||
"CTRY": "Paese",
|
||||
"TEL": "Telefono",
|
||||
"NUMBER": "Numero",
|
||||
"EMAIL": "E-mail",
|
||||
"USERID": null,
|
||||
"ORG": "Organizzazione",
|
||||
"ORGNAME": "Nome",
|
||||
"ORGUNIT": "Unità",
|
||||
"TITLE": "Titolo di lavoro",
|
||||
"ROLE": "Funzione",
|
||||
"BDAY": "Compleanno",
|
||||
"DESC": "Descrizione",
|
||||
"PHOTO": null,
|
||||
"send_message": "Messagio inviato",
|
||||
"get_info": "Mostra informazioni",
|
||||
"Settings": "Impostazione",
|
||||
"Priority": "Priorità",
|
||||
"Save": "Salva",
|
||||
"User_settings": "Impostazione dell'utente",
|
||||
"A_fingerprint_": "Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.",
|
||||
"Your_roster_is_empty_add_a": "Il suo elenco è vuoto, aggiungi un ",
|
||||
"new_buddy": "compagno nuovo",
|
||||
"is": "è",
|
||||
"Login_options": "Opzioni di login",
|
||||
"BOSH_url": "BOSH URL",
|
||||
"Domain": "Domain",
|
||||
"Resource": "Risorsa",
|
||||
"On_login": "Login on",
|
||||
"Received_an_unencrypted_message": "Ricevuto un messaggio non crittografato",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Spiace, il tuo compagno non fornisce alcuna informazione.",
|
||||
"Info_about": "Informazioni",
|
||||
"Authentication_aborted": "Autenticazione interrotta",
|
||||
"Authentication_request_received": "Richiesta di autenticazione ricevuto.",
|
||||
"Do_you_want_to_display_them": "Vuoi che venga visualizzato?",
|
||||
"Log_in_without_chat": "Log in senza chat",
|
||||
"has_come_online": "È venuto in linea",
|
||||
"Unknown_sender": "Mittente sconosciuto",
|
||||
"You_received_a_message_from_an_unknown_sender": "Hai ricevuto un messaggio da un mittente sconosciuto",
|
||||
"Please_allow_access_to_microphone_and_camera": "Si prega di fare clic sul bottone \"Autorizzazione\" sopra per autorizzazione del l'accesso al microfono e fotocamera.",
|
||||
"Incoming_call": "Chiamata in arrivo",
|
||||
"from": "di",
|
||||
"Do_you_want_to_accept_the_call_from": "Vuoi accettare la chiamata di",
|
||||
"Reject": "Rifiuta",
|
||||
"Accept": "Accetta",
|
||||
"hang_up": "Riattacca",
|
||||
"snapshot": "istantanea",
|
||||
"mute_my_audio": "disattiva il mio audio",
|
||||
"pause_my_video": "pausa il mio audio",
|
||||
"fullscreen": "schermo intero",
|
||||
"Info": "Informazione",
|
||||
"Local_IP": "IP locale",
|
||||
"Remote_IP": "IP remoto",
|
||||
"Local_Fingerprint": "Impronta digitale locale",
|
||||
"Remote_Fingerprint": "Impronta digitale remoto",
|
||||
"Video_call_not_possible": "Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.",
|
||||
"Start_video_call": "Inizia videochiamata",
|
||||
"Join_chat": null,
|
||||
"Join": null,
|
||||
"Room": null,
|
||||
"Nickname": null,
|
||||
"left_the_building": null,
|
||||
"entered_the_room": null,
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": null,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"Carbon_copy": null,
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": null,
|
||||
"your_connection_is_unencrypted": null,
|
||||
"your_connection_is_encrypted": null,
|
||||
"your_buddy_closed_the_private_connection": null,
|
||||
"start_private": null,
|
||||
"close_private": null,
|
||||
"your_buddy_is_verificated": null,
|
||||
"you_have_only_a_subscription_in_one_way": null,
|
||||
"authentication_query_sent": null,
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": null,
|
||||
"unencrypted_message_received": null,
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": null,
|
||||
"not_available": null,
|
||||
"no_connection": null,
|
||||
"relogin": null,
|
||||
"trying_to_start_private_conversation": null,
|
||||
"Verified": null,
|
||||
"Unverified": null,
|
||||
"private_conversation_started": null,
|
||||
"private_conversation_aborted": null,
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": null,
|
||||
"conversation_is_now_verified": null,
|
||||
"authentication_failed": null,
|
||||
"your_buddy_is_attempting_to_determine_": null,
|
||||
"to_authenticate_to_your_buddy": null,
|
||||
"enter_the_answer_and_click_answer": null,
|
||||
"enter_the_secret": null,
|
||||
"Creating_your_private_key_": null,
|
||||
"Authenticating_a_buddy_helps_": null,
|
||||
"How_do_you_want_to_authenticate_your_buddy": null,
|
||||
"Select_method": null,
|
||||
"Manual": null,
|
||||
"Question": null,
|
||||
"Secret": null,
|
||||
"To_verify_the_fingerprint_": null,
|
||||
"Your_fingerprint": null,
|
||||
"Buddy_fingerprint": null,
|
||||
"Close": null,
|
||||
"Compared": null,
|
||||
"To_authenticate_using_a_question_": null,
|
||||
"Ask": null,
|
||||
"To_authenticate_pick_a_secret_": null,
|
||||
"Compare": null,
|
||||
"Fingerprints": null,
|
||||
"Authentication": null,
|
||||
"Message": null,
|
||||
"Add_buddy": null,
|
||||
"rename_buddy": null,
|
||||
"delete_buddy": null,
|
||||
"Login": null,
|
||||
"Username": null,
|
||||
"Password": null,
|
||||
"Cancel": null,
|
||||
"Connect": null,
|
||||
"Type_in_the_full_username_": null,
|
||||
"Alias": null,
|
||||
"Add": null,
|
||||
"Subscription_request": null,
|
||||
"You_have_a_request_from": null,
|
||||
"Deny": null,
|
||||
"Approve": null,
|
||||
"Remove_buddy": null,
|
||||
"You_are_about_to_remove_": null,
|
||||
"Continue_without_chat": null,
|
||||
"Please_wait": null,
|
||||
"Login_failed": null,
|
||||
"Sorry_we_cant_authentikate_": null,
|
||||
"Retry": null,
|
||||
"clear_history": null,
|
||||
"New_message_from": null,
|
||||
"Should_we_notify_you_": null,
|
||||
"Please_accept_": null,
|
||||
"Hide_offline": null,
|
||||
"Show_offline": null,
|
||||
"About": null,
|
||||
"dnd": null,
|
||||
"Mute": null,
|
||||
"Unmute": null,
|
||||
"Subscription": null,
|
||||
"both": null,
|
||||
"Status": null,
|
||||
"online": null,
|
||||
"chat": null,
|
||||
"away": null,
|
||||
"xa": null,
|
||||
"offline": null,
|
||||
"none": null,
|
||||
"Unknown_instance_tag": null,
|
||||
"Not_one_of_our_latest_keys": null,
|
||||
"Received_an_unreadable_encrypted_message": null,
|
||||
"Online": null,
|
||||
"Chatty": null,
|
||||
"Away": null,
|
||||
"Extended_away": null,
|
||||
"Offline": null,
|
||||
"Friendship_request": null,
|
||||
"Confirm": null,
|
||||
"Dismiss": null,
|
||||
"Remove": null,
|
||||
"Online_help": null,
|
||||
"FN": null,
|
||||
"N": null,
|
||||
"FAMILY": null,
|
||||
"GIVEN": null,
|
||||
"NICKNAME": null,
|
||||
"URL": null,
|
||||
"ADR": null,
|
||||
"STREET": null,
|
||||
"EXTADD": null,
|
||||
"LOCALITY": null,
|
||||
"REGION": null,
|
||||
"PCODE": null,
|
||||
"CTRY": null,
|
||||
"TEL": null,
|
||||
"NUMBER": null,
|
||||
"EMAIL": null,
|
||||
"USERID": null,
|
||||
"ORG": null,
|
||||
"ORGNAME": null,
|
||||
"ORGUNIT": null,
|
||||
"TITLE": null,
|
||||
"ROLE": null,
|
||||
"BDAY": null,
|
||||
"DESC": null,
|
||||
"PHOTO": null,
|
||||
"send_message": null,
|
||||
"get_info": null,
|
||||
"Settings": null,
|
||||
"Priority": null,
|
||||
"Save": null,
|
||||
"User_settings": null,
|
||||
"A_fingerprint_": null,
|
||||
"Your_roster_is_empty_add_a": null,
|
||||
"new_buddy": null,
|
||||
"is": null,
|
||||
"Login_options": null,
|
||||
"BOSH_url": null,
|
||||
"Domain": null,
|
||||
"Resource": null,
|
||||
"On_login": null,
|
||||
"Received_an_unencrypted_message": null,
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": null,
|
||||
"Info_about": null,
|
||||
"Authentication_aborted": null,
|
||||
"Authentication_request_received": null,
|
||||
"Do_you_want_to_display_them": null,
|
||||
"Log_in_without_chat": null,
|
||||
"has_come_online": null,
|
||||
"Unknown_sender": null,
|
||||
"You_received_a_message_from_an_unknown_sender": null,
|
||||
"Please_allow_access_to_microphone_and_camera": null,
|
||||
"Incoming_call": null,
|
||||
"from": null,
|
||||
"Do_you_want_to_accept_the_call_from": null,
|
||||
"Reject": null,
|
||||
"Accept": null,
|
||||
"hang_up": null,
|
||||
"snapshot": null,
|
||||
"mute_my_audio": null,
|
||||
"pause_my_video": null,
|
||||
"fullscreen": null,
|
||||
"Info": null,
|
||||
"Local_IP": null,
|
||||
"Remote_IP": null,
|
||||
"Local_Fingerprint": null,
|
||||
"Remote_Fingerprint": null,
|
||||
"Video_call_not_possible": null,
|
||||
"Start_video_call": null,
|
||||
"Join_chat": null,
|
||||
"Join": null,
|
||||
"Room": null,
|
||||
"Nickname": null,
|
||||
"left_the_building": null,
|
||||
"entered_the_room": null,
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": null,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"Carbon_copy": null,
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Logowanie...",
|
||||
"your_connection_is_unencrypted": "Twoje połączenie nie jest szyfrowane.",
|
||||
"your_connection_is_encrypted": "Twoje połączenie jest szyfrowane.",
|
||||
"your_buddy_closed_the_private_connection": "Twój rozmówca zamknął połączenie.",
|
||||
"start_private": "Rozpocznij rozmowę.",
|
||||
"close_private": "Zakończ rozmowę.",
|
||||
"your_buddy_is_verificated": "Twój rozmówca został zweryfikowany.",
|
||||
"you_have_only_a_subscription_in_one_way": "Masz jednostronną subskrypcję.",
|
||||
"authentication_query_sent": "Wysłano proźbę o autentykację.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.",
|
||||
"unencrypted_message_received": "Zwrotna niezaszyfrowana wiadomość.",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Wiadomość nie została wysłana ponieważ nie posiadasz subskrybcji u rozmówcy.",
|
||||
"not_available": "Niedostępny.",
|
||||
"no_connection": "Brak połączenia!",
|
||||
"relogin": "Połącz ponownie",
|
||||
"trying_to_start_private_conversation": "Rozpocznij rozmowę!",
|
||||
"Verified": "Zweryfikowano",
|
||||
"Unverified": "Niezweryfikowano",
|
||||
"private_conversation_started": "Rozmowa prywatna rozpoczęta.",
|
||||
"private_conversation_aborted": "Anulowano rozmowę!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Rozmówca przerwał połączenie!",
|
||||
"conversation_is_now_verified": "Zweryfikowano połączenie.",
|
||||
"authentication_failed": "Weryfikacja się nie powiodła.",
|
||||
"your_buddy_is_attempting_to_determine_": "Twój rozmówca próbuje się z Tobą połączyć.",
|
||||
"to_authenticate_to_your_buddy": "Autoryzacja z rozmówcą, ",
|
||||
"enter_the_answer_and_click_answer": "napisz odpowiedź.",
|
||||
"enter_the_secret": "wpisz hasło.",
|
||||
"Creating_your_private_key_": "Tworzenie klucza prywatnego; może to chwilę potrwać",
|
||||
"Authenticating_a_buddy_helps_": "Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Jakiej autoryzacji chcesz użyć {{bid_name}} (<b>{{bid_jid}}</b>)?",
|
||||
"Select_method": "Wybierz sposób...",
|
||||
"Manual": "Ręcznie",
|
||||
"Question": "Pytanie",
|
||||
"Secret": "Hasło",
|
||||
"To_verify_the_fingerprint_": "Aby zweryfikować kod najpierw skontaktuj się z rozmówcą np. za pomocą telefonu.",
|
||||
"Your_fingerprint": "Twój kod:",
|
||||
"Buddy_fingerprint": "Kod rozmówcy",
|
||||
"Close": "Zamknij",
|
||||
"Compared": "Porównano",
|
||||
"To_authenticate_using_a_question_": "Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko Twój rozmówca zna odpowiedź.",
|
||||
"Ask": "Zadaj pytanie",
|
||||
"To_authenticate_pick_a_secret_": "Aby autoryzować za pomocą hasła, wybierz hasło na które zna tylko Twój rozmówca.",
|
||||
"Compare": "Dopasuj",
|
||||
"Fingerprints": "Kody autoryzacyjne",
|
||||
"Authentication": "Autoryzacja",
|
||||
"Message": "Wiadomość",
|
||||
"Add_buddy": "Dodaj kontakt",
|
||||
"rename_buddy": "Zmień nazwę",
|
||||
"delete_buddy": "Usuń kontakt",
|
||||
"Login": "Login",
|
||||
"Username": "Nazwa Użytkownika",
|
||||
"Password": "Hasło",
|
||||
"Cancel": "Anuluj",
|
||||
"Connect": "Połączenie",
|
||||
"Type_in_the_full_username_": "Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).",
|
||||
"Alias": "Alias",
|
||||
"Add": "Dodaj",
|
||||
"Subscription_request": "Potwierdzenie subskrypcji",
|
||||
"You_have_a_request_from": "Masz potwierdzenie od",
|
||||
"Deny": "Odmów",
|
||||
"Approve": "Zatwierdź",
|
||||
"Remove_buddy": "Usuń rozmówcę",
|
||||
"You_are_about_to_remove_": "Twój rozmówca {{bid_name}} (<b>{{bid_jid}}</b>) usunął Cię ze swojej listy kontaktów.",
|
||||
"Continue_without_chat": "Kontynuuj bez komunikatora",
|
||||
"Please_wait": "Proszę czekać",
|
||||
"Login_failed": "Błędne logowanie",
|
||||
"Sorry_we_cant_authentikate_": "Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?",
|
||||
"Retry": "Powrót",
|
||||
"clear_history": "Wyczyść historię",
|
||||
"New_message_from": "Nowa wiadomość od",
|
||||
"Should_we_notify_you_": "Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?",
|
||||
"Please_accept_": "Kliknij \"Zezwól\" na górze.",
|
||||
"Hide_offline": "Schowaj niedostępne kontakty",
|
||||
"Show_offline": "Pokaż niedostępne kontakty",
|
||||
"About": "Info",
|
||||
"dnd": "Nie przeszkadzać",
|
||||
"Mute": "Wycisz",
|
||||
"Unmute": "Włącz dźwięk",
|
||||
"Subscription": "Subskrybcja",
|
||||
"both": "obustronna",
|
||||
"Status": "Status",
|
||||
"online": "Dostępny",
|
||||
"chat": "czat",
|
||||
"away": "z dala od kompa",
|
||||
"xa": "hen hen...",
|
||||
"offline": "niedostępny",
|
||||
"none": "brak",
|
||||
"Unknown_instance_tag": "Nieznany przypadek.",
|
||||
"Not_one_of_our_latest_keys": "Not one of our latest keys.",
|
||||
"Received_an_unreadable_encrypted_message": "Otrzymano nieczytelną, zaszyfrowaną wiadomość.",
|
||||
"Online": "Połączony",
|
||||
"Chatty": "Pogawędzimy?",
|
||||
"Away": "Daleko",
|
||||
"Extended_away": "Hen Hen...",
|
||||
"Offline": "Niedostępny",
|
||||
"Friendship_request": "Zapytanie od znajomego?",
|
||||
"Confirm": "Potwierdzenie",
|
||||
"Dismiss": "Odwołaj",
|
||||
"Remove": "Usuń",
|
||||
"Online_help": "Pomoc Online",
|
||||
"FN": "Pełna nazwa",
|
||||
"N": " ",
|
||||
"FAMILY": "Nazwisko",
|
||||
"GIVEN": "Imię",
|
||||
"NICKNAME": "Pseudonim",
|
||||
"URL": "Strona WWW",
|
||||
"ADR": "Adres",
|
||||
"STREET": "Ulica",
|
||||
"EXTADD": "Pełny adres",
|
||||
"LOCALITY": "Lokalizacja",
|
||||
"REGION": "Region",
|
||||
"PCODE": "Kod pocztowy",
|
||||
"CTRY": "Kraj",
|
||||
"TEL": "Telefon",
|
||||
"NUMBER": "Numer",
|
||||
"EMAIL": "Email",
|
||||
"USERID": " ",
|
||||
"ORG": "Organizacja",
|
||||
"ORGNAME": "Nazwa",
|
||||
"ORGUNIT": "Jednostka",
|
||||
"TITLE": "Stanowisko",
|
||||
"ROLE": "Rola",
|
||||
"BDAY": "Data urodzin",
|
||||
"DESC": "Opis",
|
||||
"PHOTO": " ",
|
||||
"send_message": "Wyślij wiadomość",
|
||||
"get_info": "Pokaż informację",
|
||||
"Settings": "Ustawienia",
|
||||
"Priority": "Priorytet",
|
||||
"Save": "Zapisz",
|
||||
"User_settings": "Ustawienia Użytkownika",
|
||||
"A_fingerprint_": "Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.",
|
||||
"Your_roster_is_empty_add_a": "Twoja lista jest pusta, dodaj kontakty ",
|
||||
"new_buddy": "Nowy kontakt",
|
||||
"is": "jest",
|
||||
"Login_options": "opcje logowania",
|
||||
"BOSH_url": "Adres BOSH",
|
||||
"Domain": "Domena",
|
||||
"Resource": "Źródło",
|
||||
"On_login": "Na login",
|
||||
"Received_an_unencrypted_message": "Zatwierdzono nieszyfrowaną wiadomość.",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Twój rozmówca nie posiada żadnych informacji.",
|
||||
"Info_about": "Informacja o...",
|
||||
"Authentication_aborted": "Autoryzacja anulowana.",
|
||||
"Authentication_request_received": "Prośba o autoryzację została przyjęta.",
|
||||
"Do_you_want_to_display_them": "Chcesz to wyświetlić?",
|
||||
"Log_in_without_chat": "Zaloguj bez komunikatora",
|
||||
"has_come_online": "jest teraz dostępny",
|
||||
"Unknown_sender": "Nieznany nadawca",
|
||||
"You_received_a_message_from_an_unknown_sender": "Masz wiadomość od nieznanego nadawcy.",
|
||||
"Please_allow_access_to_microphone_and_camera": "Kliknij \"Potwierdź\" na górze, aby móc korzystać z mikrofonu oraz kamery.",
|
||||
"Incoming_call": "Przychodzące połączenie",
|
||||
"from": "z",
|
||||
"Do_you_want_to_accept_the_call_from": "Akceptujesz połączenie od",
|
||||
"Reject": "Odrzuć",
|
||||
"Accept": "Zaakceptuj",
|
||||
"hang_up": "odbierz",
|
||||
"snapshot": "zrób zdjęcie",
|
||||
"mute_my_audio": "wycisz dźwięk",
|
||||
"pause_my_video": "zatrzymaj moje wideo",
|
||||
"fullscreen": "Pełny ekran",
|
||||
"Info": "Informacja",
|
||||
"Local_IP": "Adres IP",
|
||||
"Remote_IP": "Zdalny adres IP",
|
||||
"Local_Fingerprint": "Kod lokalny",
|
||||
"Remote_Fingerprint": "Zdalny kod",
|
||||
"Video_call_not_possible": "Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.",
|
||||
"Start_video_call": "Rozpocznij rozmowę wideo",
|
||||
"Join_chat": "Dołącz do czata",
|
||||
"Join": "Dołącz",
|
||||
"Room": "Pokój",
|
||||
"Nickname": "Nazwa użytkownika",
|
||||
"left_the_building": "__nickname__ wyszedł",
|
||||
"entered_the_room": "__nickname__ wszedł do pokoju",
|
||||
"is_now_known_as": "__oldNickname__ zmienił nazwę na __newNickname__",
|
||||
"This_room_is": "Ten pokój jest",
|
||||
"muc_hidden": {
|
||||
"keyword": "ukryty",
|
||||
"description": "nie można odnaleźć elementów wyszukiwania"
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": "tylko zalogowani",
|
||||
"description": "musisz być członkiem listy"
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": "moderowano",
|
||||
"description": "tylko osoby z opcją \"głos\" mogą wysyłać wiadomość"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": "nie-anonimowy",
|
||||
"description": "Twój identyfikator jabber jest widoczny dla wszystkich innych osób"
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": "otwarty",
|
||||
"description": "wszyscy mają pozwolenie aby dołączyć"
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": "ograniczone hasłem",
|
||||
"description": "musisz wpisać prawidłowe hasło"
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": "trwale",
|
||||
"description": "nie zostaną zniszczone, jeśli ostatnia osoba wyszła"
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": "publiczny",
|
||||
"description": "wyszukawno"
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": "pół-anonimowy",
|
||||
"description": "Twój identyfikator jabber jest widoczny w pokoju adminów"
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": "tymczasowy",
|
||||
"description": "zostanie usunięty jeżeli ostatnia osoba wyjdzie"
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": "niemoderowany",
|
||||
"description": "wszyscy są uprawnieni do pisania wiadomości"
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": "niezabezpieczone",
|
||||
"description": "nie musisz wpisywać hasła"
|
||||
},
|
||||
"Continue": "Kontynuuj",
|
||||
"Server": "Serwer",
|
||||
"Rooms_are_loaded": "Pokoje zostały załadowane",
|
||||
"Could_load_only": "Nie załadowano __count__ pokoi",
|
||||
"muc_explanation": "Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło",
|
||||
"You_already_joined_this_room": "Już dołączyłeś do tego pokoju",
|
||||
"This_room_will_be_closed": "Ten pokój będzie zamknięty",
|
||||
"Room_not_found_": "Nowy pokój będzie stworzony",
|
||||
"Loading_room_information": "Ładowani informacji o pokoju",
|
||||
"Destroy": "Zniszczony",
|
||||
"Leave": "Opuść",
|
||||
"changed_subject_to": "__nickname__ zmienił temat pokoju na \"__subject__\"",
|
||||
"muc_removed_kicked": "Zostałeś wyrzucony z pokoju",
|
||||
"muc_removed_info_kicked": "__nickname__ został wyrzucony z pokoju",
|
||||
"muc_removed_banned": "Zostałeś zbanowany",
|
||||
"muc_removed_info_banned": "__nickname__ został zbanowany",
|
||||
"muc_removed_affiliation": "Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci",
|
||||
"muc_removed_info_affiliation": "__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci",
|
||||
"muc_removed_membersonly": "Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...",
|
||||
"muc_removed_info_membersonly": "__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków",
|
||||
"muc_removed_shutdown": "Zostałeś usunięty z pokoju ze względu na zamknięcie usługi",
|
||||
"Reason": "Powód",
|
||||
"message_not_send": "Wystąpił błąd i twoja wiadomość nie została wysłana.",
|
||||
"message_not_send_item-not-found": "Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje",
|
||||
"message_not_send_forbidden": "Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju",
|
||||
"message_not_send_not-acceptable": "Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju",
|
||||
"This_room_has_been_closed": "Ten pokój został zamknięty",
|
||||
"Room_logging_is_enabled": "Logowanie do pokoju jest włączone",
|
||||
"A_password_is_required": "Hasło jest wymagane",
|
||||
"You_are_not_on_the_member_list": "Nie jesteś na liście członków",
|
||||
"You_are_banned_from_this_room": "Zostałeś zbanowany w tym pokoju",
|
||||
"Your_desired_nickname_": "Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną",
|
||||
"The_maximum_number_": "Została osiągnięta maksymalna liczba użytkowników w tym pokoju",
|
||||
"This_room_is_locked_": "Ten pokój jest zablokowany",
|
||||
"You_are_not_allowed_to_create_": "Nie masz uprawnień do tworzenia pokoju",
|
||||
"Carbon_copy": "Do wiadomości",
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Entrando...",
|
||||
"your_connection_is_unencrypted": "Sua conexão não é encriptada",
|
||||
"your_connection_is_encrypted": "Sua conexão é encriptada",
|
||||
"your_buddy_closed_the_private_connection": "Seu contato fechou a conexão privada",
|
||||
"start_private": "Iniciar conversa privada",
|
||||
"close_private": "Fechar conversa privada",
|
||||
"your_buddy_is_verificated": "Seu contato está verificado",
|
||||
"you_have_only_a_subscription_in_one_way": "Você só tem a inscrição one-way",
|
||||
"authentication_query_sent": "Pergunta de autenticação enviada",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Sua mensagem não foi enviada. Por favor finalize sua conversa privada",
|
||||
"unencrypted_message_received": "Mensagem não encriptada recebida",
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": "Sua mensagem não foi enviada porque sua inscrição não é válida",
|
||||
"not_available": "Indisponível",
|
||||
"no_connection": "Sem conexão!",
|
||||
"relogin": "reentrar",
|
||||
"trying_to_start_private_conversation": "Tentando iniciar conversa privada",
|
||||
"Verified": "Verificado",
|
||||
"Unverified": "Não verificado",
|
||||
"private_conversation_started": "Conversa privada iniciada.",
|
||||
"private_conversation_aborted": "Conversa privada abortada!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.",
|
||||
"conversation_is_now_verified": "Conversa verificada.",
|
||||
"authentication_failed": "Autenticação falhou.",
|
||||
"your_buddy_is_attempting_to_determine_": "Seu contato está tentando determinar se ele realmente está falando contigo.",
|
||||
"to_authenticate_to_your_buddy": "Para autenticar seu contato, ",
|
||||
"enter_the_answer_and_click_answer": "entre com a resposta e clique em Responder.",
|
||||
"enter_the_secret": "escreva a senha.",
|
||||
"Creating_your_private_key_": "Criando sua chave privada: isso pode demorar um pouco.",
|
||||
"Authenticating_a_buddy_helps_": "Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Como você gostaria de se autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",
|
||||
"Select_method": "Selecione o método...",
|
||||
"Manual": "Manual",
|
||||
"Question": "Pergunta",
|
||||
"Secret": "Senha",
|
||||
"To_verify_the_fingerprint_": "Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.",
|
||||
"Your_fingerprint": "Seu fingerprint",
|
||||
"Buddy_fingerprint": "Fingerprint do contato",
|
||||
"Close": "Fechar",
|
||||
"Compared": "Comparado",
|
||||
"To_authenticate_using_a_question_": "Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.",
|
||||
"Ask": "Pergunta",
|
||||
"To_authenticate_pick_a_secret_": "Para autenticar, escolha um segredo que somente você e seu contato saibam.",
|
||||
"Compare": "Compare",
|
||||
"Fingerprints": "Fingerprints",
|
||||
"Authentication": "Autenticação",
|
||||
"Message": "Mensagem",
|
||||
"Add_buddy": "Adicionar contato",
|
||||
"rename_buddy": "renomear contato",
|
||||
"delete_buddy": "remover contato",
|
||||
"Login": "Entrar",
|
||||
"Username": "Usuário",
|
||||
"Password": "Senha",
|
||||
"Cancel": "Cancelar",
|
||||
"Connect": "Conectar",
|
||||
"Type_in_the_full_username_": "Digite seu nome completo e um apelido opcional.",
|
||||
"Alias": "Apelido",
|
||||
"Add": "Adicionar",
|
||||
"Subscription_request": "Pedido de inscrição",
|
||||
"You_have_a_request_from": "Você tem um pedido de",
|
||||
"Deny": "Negar",
|
||||
"Approve": "Aprovar",
|
||||
"Remove_buddy": "Remover contato",
|
||||
"You_are_about_to_remove_": "Você está prestes a remover {{bid_name}} (<b>{{bid_jid}}</b>) de sua lista de contatos. Todas as conversas serão fechadas.",
|
||||
"Continue_without_chat": "Continue sem converar",
|
||||
"Please_wait": "Por favor aguarde",
|
||||
"Login_failed": "Autenticação da conversa falhou",
|
||||
"Sorry_we_cant_authentikate_": "A autenticação com o servidor falhou. Talvez seja a senha errada?",
|
||||
"Retry": "Voltar",
|
||||
"clear_history": "Limpar histórico",
|
||||
"New_message_from": "Nova mensagem de",
|
||||
"Should_we_notify_you_": "Devemos continuar notificando sobre novas mensagens no futuro?",
|
||||
"Please_accept_": "Por favor clique no botão \"Permitir\" na parte superior.",
|
||||
"Hide_offline": "Esconder contatos desconectados",
|
||||
"Show_offline": "Mostrar contatos desconectados",
|
||||
"About": "Sobre",
|
||||
"dnd": "Não perturbe",
|
||||
"Mute": "Mudo",
|
||||
"Unmute": "Ligar",
|
||||
"Subscription": "Inscrição",
|
||||
"both": "ambos",
|
||||
"Status": "Status",
|
||||
"online": "online",
|
||||
"chat": "conversa",
|
||||
"away": "ausente",
|
||||
"xa": "ausente por mais tempo",
|
||||
"offline": "desativado",
|
||||
"none": "nenhum",
|
||||
"Unknown_instance_tag": "Marcação desconhecida da instância",
|
||||
"Not_one_of_our_latest_keys": "Nenhuma de nossas ultimas chaves.",
|
||||
"Received_an_unreadable_encrypted_message": "Mensagem encriptada ilegível foi recebida.",
|
||||
"Online": "Online",
|
||||
"Chatty": "Tagarela",
|
||||
"Away": "Ausente",
|
||||
"Extended_away": "Ausente por mais tempo",
|
||||
"Offline": "Desativado",
|
||||
"Friendship_request": "Pedido de amizade",
|
||||
"Confirm": "Confirmar",
|
||||
"Dismiss": "Ignorar",
|
||||
"Remove": "Remover",
|
||||
"Online_help": "Ajuda online",
|
||||
"FN": "Nome completo",
|
||||
"N": " ",
|
||||
"FAMILY": "Sobrenome",
|
||||
"GIVEN": "Nome",
|
||||
"NICKNAME": "Apelido",
|
||||
"URL": "URL",
|
||||
"ADR": "Endereço",
|
||||
"STREET": "Rua, Av, etc",
|
||||
"EXTADD": "Complemento",
|
||||
"LOCALITY": "Localidade",
|
||||
"REGION": "Região",
|
||||
"PCODE": "CEP",
|
||||
"CTRY": "País",
|
||||
"TEL": "Telefone",
|
||||
"NUMBER": "Número",
|
||||
"EMAIL": "Email",
|
||||
"USERID": " ",
|
||||
"ORG": "Empresa",
|
||||
"ORGNAME": "Nome",
|
||||
"ORGUNIT": "Unidade",
|
||||
"TITLE": "Cargo",
|
||||
"ROLE": "Rol",
|
||||
"BDAY": "Data de nascimento",
|
||||
"DESC": "Descrição",
|
||||
"PHOTO": " ",
|
||||
"send_message": "Enviar mensagem",
|
||||
"get_info": "Exibir informações",
|
||||
"Settings": "Configurações",
|
||||
"Priority": "Prioridade",
|
||||
"Save": "Salvar",
|
||||
"User_settings": "Configurações do usuário",
|
||||
"A_fingerprint_": "O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.",
|
||||
"Your_roster_is_empty_add_a": "Sua lista está vazia, adicione um ",
|
||||
"new_buddy": "novo contato",
|
||||
"is": "é",
|
||||
"Login_options": "Opções de login",
|
||||
"BOSH_url": "BOSH URL",
|
||||
"Domain": "Domínio",
|
||||
"Resource": "Recurso",
|
||||
"On_login": "Ao autenticar",
|
||||
"Received_an_unencrypted_message": "Mensagem não encriptada recebida",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Desculpe, seu contato não forneceu nenhuma informação",
|
||||
"Info_about": "Informações sobre",
|
||||
"Authentication_aborted": "Autenticação encerrada.",
|
||||
"Authentication_request_received": "Pedido de autenticação recebido",
|
||||
"Do_you_want_to_display_them": "Você quer mostrá-los?",
|
||||
"Log_in_without_chat": "Entrar sem conversar",
|
||||
"has_come_online": "ficou online",
|
||||
"Unknown_sender": "Emissor desconhecido",
|
||||
"You_received_a_message_from_an_unknown_sender": "Você recebeu uma mensagem de um emissor desconhecido",
|
||||
"Please_allow_access_to_microphone_and_camera": "Por favor clique no botão \"Permitir\" no topo, para conceder acesso ao seu microfone e câmera.",
|
||||
"Incoming_call": "Recebendo chamada",
|
||||
"from": "de",
|
||||
"Do_you_want_to_accept_the_call_from": "Você aceita a chamada de",
|
||||
"Reject": "Negar",
|
||||
"Accept": "Aceitar",
|
||||
"hang_up": "desligar",
|
||||
"snapshot": "registrar imagem",
|
||||
"mute_my_audio": "mudo",
|
||||
"pause_my_video": "pausar vídeo",
|
||||
"fullscreen": "tela cheia",
|
||||
"Info": "Informações",
|
||||
"Local_IP": "IP local",
|
||||
"Remote_IP": "IP remoto",
|
||||
"Local_Fingerprint": "Fingerprint local",
|
||||
"Remote_Fingerprint": "Fingerprint remoto",
|
||||
"Video_call_not_possible": "Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.",
|
||||
"Start_video_call": "Iniciar chamada de vídeo",
|
||||
"Join_chat": null,
|
||||
"Join": null,
|
||||
"Room": null,
|
||||
"Nickname": null,
|
||||
"left_the_building": null,
|
||||
"entered_the_room": null,
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": null,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"Carbon_copy": null,
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": null,
|
||||
"your_connection_is_unencrypted": null,
|
||||
"your_connection_is_encrypted": null,
|
||||
"your_buddy_closed_the_private_connection": null,
|
||||
"start_private": null,
|
||||
"close_private": null,
|
||||
"your_buddy_is_verificated": null,
|
||||
"you_have_only_a_subscription_in_one_way": null,
|
||||
"authentication_query_sent": null,
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": null,
|
||||
"unencrypted_message_received": null,
|
||||
"your_message_wasnt_send_because_you_have_no_valid_subscription": null,
|
||||
"not_available": null,
|
||||
"no_connection": null,
|
||||
"relogin": null,
|
||||
"trying_to_start_private_conversation": null,
|
||||
"Verified": null,
|
||||
"Unverified": null,
|
||||
"private_conversation_started": null,
|
||||
"private_conversation_aborted": null,
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": null,
|
||||
"conversation_is_now_verified": null,
|
||||
"authentication_failed": null,
|
||||
"your_buddy_is_attempting_to_determine_": null,
|
||||
"to_authenticate_to_your_buddy": null,
|
||||
"enter_the_answer_and_click_answer": null,
|
||||
"enter_the_secret": null,
|
||||
"Creating_your_private_key_": null,
|
||||
"Authenticating_a_buddy_helps_": null,
|
||||
"How_do_you_want_to_authenticate_your_buddy": null,
|
||||
"Select_method": null,
|
||||
"Manual": null,
|
||||
"Question": null,
|
||||
"Secret": null,
|
||||
"To_verify_the_fingerprint_": null,
|
||||
"Your_fingerprint": null,
|
||||
"Buddy_fingerprint": null,
|
||||
"Close": null,
|
||||
"Compared": null,
|
||||
"To_authenticate_using_a_question_": null,
|
||||
"Ask": null,
|
||||
"To_authenticate_pick_a_secret_": null,
|
||||
"Compare": null,
|
||||
"Fingerprints": null,
|
||||
"Authentication": null,
|
||||
"Message": null,
|
||||
"Add_buddy": null,
|
||||
"rename_buddy": null,
|
||||
"delete_buddy": null,
|
||||
"Login": null,
|
||||
"Username": null,
|
||||
"Password": null,
|
||||
"Cancel": null,
|
||||
"Connect": null,
|
||||
"Type_in_the_full_username_": null,
|
||||
"Alias": null,
|
||||
"Add": null,
|
||||
"Subscription_request": null,
|
||||
"You_have_a_request_from": null,
|
||||
"Deny": null,
|
||||
"Approve": null,
|
||||
"Remove_buddy": null,
|
||||
"You_are_about_to_remove_": null,
|
||||
"Continue_without_chat": null,
|
||||
"Please_wait": null,
|
||||
"Login_failed": null,
|
||||
"Sorry_we_cant_authentikate_": null,
|
||||
"Retry": null,
|
||||
"clear_history": null,
|
||||
"New_message_from": null,
|
||||
"Should_we_notify_you_": null,
|
||||
"Please_accept_": null,
|
||||
"Hide_offline": null,
|
||||
"Show_offline": null,
|
||||
"About": null,
|
||||
"dnd": null,
|
||||
"Mute": null,
|
||||
"Unmute": null,
|
||||
"Subscription": null,
|
||||
"both": null,
|
||||
"Status": null,
|
||||
"online": null,
|
||||
"chat": null,
|
||||
"away": null,
|
||||
"xa": null,
|
||||
"offline": null,
|
||||
"none": null,
|
||||
"Unknown_instance_tag": null,
|
||||
"Not_one_of_our_latest_keys": null,
|
||||
"Received_an_unreadable_encrypted_message": null,
|
||||
"Online": null,
|
||||
"Chatty": null,
|
||||
"Away": null,
|
||||
"Extended_away": null,
|
||||
"Offline": null,
|
||||
"Friendship_request": null,
|
||||
"Confirm": null,
|
||||
"Dismiss": null,
|
||||
"Remove": null,
|
||||
"Online_help": null,
|
||||
"FN": null,
|
||||
"N": null,
|
||||
"FAMILY": null,
|
||||
"GIVEN": null,
|
||||
"NICKNAME": null,
|
||||
"URL": null,
|
||||
"ADR": null,
|
||||
"STREET": null,
|
||||
"EXTADD": null,
|
||||
"LOCALITY": null,
|
||||
"REGION": null,
|
||||
"PCODE": null,
|
||||
"CTRY": null,
|
||||
"TEL": null,
|
||||
"NUMBER": null,
|
||||
"EMAIL": null,
|
||||
"USERID": null,
|
||||
"ORG": null,
|
||||
"ORGNAME": null,
|
||||
"ORGUNIT": null,
|
||||
"TITLE": null,
|
||||
"ROLE": null,
|
||||
"BDAY": null,
|
||||
"DESC": null,
|
||||
"PHOTO": null,
|
||||
"send_message": null,
|
||||
"get_info": null,
|
||||
"Settings": null,
|
||||
"Priority": null,
|
||||
"Save": null,
|
||||
"User_settings": null,
|
||||
"A_fingerprint_": null,
|
||||
"Your_roster_is_empty_add_a": null,
|
||||
"new_buddy": null,
|
||||
"is": null,
|
||||
"Login_options": null,
|
||||
"BOSH_url": null,
|
||||
"Domain": null,
|
||||
"Resource": null,
|
||||
"On_login": null,
|
||||
"Received_an_unencrypted_message": null,
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": null,
|
||||
"Info_about": null,
|
||||
"Authentication_aborted": null,
|
||||
"Authentication_request_received": null,
|
||||
"Do_you_want_to_display_them": null,
|
||||
"Log_in_without_chat": null,
|
||||
"has_come_online": null,
|
||||
"Unknown_sender": null,
|
||||
"You_received_a_message_from_an_unknown_sender": null,
|
||||
"Please_allow_access_to_microphone_and_camera": null,
|
||||
"Incoming_call": null,
|
||||
"from": null,
|
||||
"Do_you_want_to_accept_the_call_from": null,
|
||||
"Reject": null,
|
||||
"Accept": null,
|
||||
"hang_up": null,
|
||||
"snapshot": null,
|
||||
"mute_my_audio": null,
|
||||
"pause_my_video": null,
|
||||
"fullscreen": null,
|
||||
"Info": null,
|
||||
"Local_IP": null,
|
||||
"Remote_IP": null,
|
||||
"Local_Fingerprint": null,
|
||||
"Remote_Fingerprint": null,
|
||||
"Video_call_not_possible": null,
|
||||
"Start_video_call": null,
|
||||
"Join_chat": null,
|
||||
"Join": null,
|
||||
"Room": null,
|
||||
"Nickname": null,
|
||||
"left_the_building": null,
|
||||
"entered_the_room": null,
|
||||
"is_now_known_as": null,
|
||||
"This_room_is": null,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"Carbon_copy": null,
|
||||
"Enable": null
|
||||
}
|
||||
}
|
||||
+13
-5
@@ -1,28 +1,36 @@
|
||||
{
|
||||
"name": "jsxc",
|
||||
"version": "1.0.0",
|
||||
"version": "2.0.0",
|
||||
"description": "Real-time chat app",
|
||||
"homepage": "http://www.jsxc.org/",
|
||||
"bugs": "https://github.com/sualko/jsxc/issues",
|
||||
"bugs": "https://github.com/jsxc/jsxc/issues",
|
||||
"license": "MIT",
|
||||
"author": "Klaus Herberth <klaus@jsxc.org>",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sualko/jsxc"
|
||||
"url": "https://github.com/jsxc/jsxc"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "~0.4.4",
|
||||
"autoprefixer-core": "^4.0.2",
|
||||
"grunt": "^0.4.5",
|
||||
"grunt-autoprefixer": "^2.1.0",
|
||||
"grunt-banner": "~0.2.2",
|
||||
"grunt-cli": "~0.1.13",
|
||||
"grunt-contrib-clean": "~0.5.0",
|
||||
"grunt-contrib-compress": "^0.10.0",
|
||||
"grunt-contrib-concat": "^0.5.0",
|
||||
"grunt-contrib-copy": "~0.5.0",
|
||||
"grunt-contrib-csslint": "^0.3.1",
|
||||
"grunt-contrib-jshint": "~0.9.2",
|
||||
"grunt-contrib-uglify": "^0.6.0",
|
||||
"grunt-contrib-watch": "^0.6.1",
|
||||
"grunt-data-uri": "^0.2.0",
|
||||
"grunt-jsdoc": "^0.5.7",
|
||||
"grunt-merge-data": "^0.4.3",
|
||||
"grunt-postcss": "^0.2.0",
|
||||
"grunt-sass": "^0.17.0",
|
||||
"grunt-search": "^0.1.6",
|
||||
"grunt-shell": "^1.1.1",
|
||||
"grunt-text-replace": "~0.3.11"
|
||||
"grunt-text-replace": "~0.4.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
@import 'modules';
|
||||
|
||||
#jsxc_buddylist {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: 204px;
|
||||
li {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: 30px;
|
||||
border-bottom: 1px solid $roster_bottom_border_top;
|
||||
cursor: pointer;
|
||||
width: 200px;
|
||||
position: relative;
|
||||
color: $roster_color;
|
||||
font-family: $font_sans;
|
||||
line-height: 30px;
|
||||
padding-left: 3px;
|
||||
z-index: 85;
|
||||
overflow: hidden;
|
||||
&.jsxc_expand {
|
||||
height: 54px;
|
||||
.jsxc_avatar {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
}
|
||||
}
|
||||
}
|
||||
&:hover .jsxc_avatar {
|
||||
@extend %avatar-icon;
|
||||
}
|
||||
.jsxc_name:before {
|
||||
content: ' ';
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: inline-block;
|
||||
opacity: 0.0;
|
||||
transition: width 0.5s, opacity 0.5s;
|
||||
}
|
||||
&.jsxc_unreadMsg .jsxc_name:before {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 6px;
|
||||
background-color: $roster_unread_bg;
|
||||
margin-right: 3px;
|
||||
opacity: 1.0;
|
||||
transition: width 0.5s, opacity 0.5s;
|
||||
}
|
||||
}
|
||||
.jsxc_name {
|
||||
padding-right: 30px;
|
||||
}
|
||||
.jsxc_oneway {
|
||||
opacity: 0.7;
|
||||
}
|
||||
.jsxc_right {
|
||||
float: right;
|
||||
margin-right: 6px;
|
||||
div {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
color: $white;
|
||||
&:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_control {
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
top: 0;
|
||||
right: 0;
|
||||
cursor: pointer;
|
||||
&:after {
|
||||
content: '▾';
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 15px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
margin-left: -8px;
|
||||
margin-top: -8px;
|
||||
border-radius: 8px;
|
||||
color: $roster_icon_color;
|
||||
background-color: $roster_icon_bg;
|
||||
opacity: 0.6;
|
||||
transition: transform 0.5s;
|
||||
}
|
||||
&:hover:after {
|
||||
color: $white;
|
||||
opacity: 1.0;
|
||||
}
|
||||
}
|
||||
.jsxc_options {
|
||||
height: 20px;
|
||||
float: left;
|
||||
border-radius: 2px;
|
||||
background-color: $roster_icon_bg;
|
||||
> div {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
float: left;
|
||||
margin-right: 0 1px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
opacity: 0.6;
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_chaticon {
|
||||
background-image: image-url('speech_balloon_white.svg');
|
||||
background-size: 15px 15px;
|
||||
}
|
||||
.jsxc_videoicon {
|
||||
background-image: image-url('camera_icon_white.svg');
|
||||
background-size: 13px 13px;
|
||||
}
|
||||
.jsxc_vcardicon {
|
||||
font-size: 15px;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
color: $white;
|
||||
font-weight: bold;
|
||||
font-family: $font_serif;
|
||||
}
|
||||
li.jsxc_expand .jsxc_control:after {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
&.jsxc_hideOffline {
|
||||
.jsxc_offline {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
$black: #000;
|
||||
$gray10: lighten($black, 10%);
|
||||
$gray20: lighten($black, 20%);
|
||||
$gray30: lighten($black, 30%);
|
||||
$gray40: lighten($black, 40%);
|
||||
$gray50: lighten($black, 50%);
|
||||
$gray60: lighten($black, 60%);
|
||||
$gray70: lighten($black, 70%);
|
||||
$gray80: lighten($black, 80%);
|
||||
$gray90: lighten($black, 90%);
|
||||
$white: #fff;
|
||||
$orange: #ffa500;
|
||||
$red: #f00;
|
||||
$blue: #00f;
|
||||
|
||||
|
||||
$shadow: $black;
|
||||
$separator: $black;
|
||||
$invalid_border: $red;
|
||||
$name_hover: $white;
|
||||
$dialog_fieldset_border: $gray80;
|
||||
$dialog_input_invalid: $red;
|
||||
$dialog_input_readonly_bg: $gray90;
|
||||
$spot_bg: $white;
|
||||
$spot_border: $black;
|
||||
$state_online: #00bfff;
|
||||
$state_chat: #00bfff;
|
||||
$state_away: $orange;
|
||||
$state_xa: $orange;
|
||||
$state_dnd: $red;
|
||||
$state_offline: $gray60;
|
||||
$notice_bg: $orange;
|
||||
$notice_color: $black;
|
||||
$window_unread_cycle: $orange;
|
||||
$window_bar_bg: $gray10;
|
||||
$window_bar_color: $gray50;
|
||||
$window_bg: $gray60;
|
||||
$window_gradient: $gray60;
|
||||
$window_placeholder: $black;
|
||||
|
||||
$tools_color: $gray50;
|
||||
$window_close_hover: $white;
|
||||
|
||||
$chatmessage_bg: $white;
|
||||
$chatmessage_a: $blue;
|
||||
$chatmessage_timestamp: $gray60;
|
||||
$chatmessage_in_bg: #f1f7fd;
|
||||
$chatmessage_in_border: #a6b8c9;
|
||||
$chatmessage_out_bg: #e6ffd1;
|
||||
$chatmessage_out_border: #b4d89f;
|
||||
$chatmessage_received: #008000;
|
||||
|
||||
$window_settings_bg: $gray10;
|
||||
$window_settings_border_top: $gray80;
|
||||
$window_settings_disabled: $gray30;
|
||||
$window_settings_bg_hover: #3f8fba;
|
||||
$window_settings_color_hover: $white;
|
||||
|
||||
$windowListSB_bg: $gray80;
|
||||
$windowListSB_color: $gray50;
|
||||
$windowListSB_bg_hover: $gray70;
|
||||
$windowListSB_bg_disabled: $gray90;
|
||||
$windowListSB_color_disabled: $gray80;
|
||||
|
||||
$emoticon_selection_bg: rgba($gray20, 0.8);
|
||||
$emoticon_selection_hover: rgba($white, 0.8);
|
||||
|
||||
$roster_bg: $gray20;
|
||||
$roster_input_bg: $white;
|
||||
$roster_input_shadow: $gray40;
|
||||
$roster_color: $gray50;
|
||||
$roster_a: $gray70;
|
||||
$roster_unread_bg: $orange;
|
||||
$roster_icon_bg: rgba($gray40, 0.5);
|
||||
$roster_icon_color: $gray70;
|
||||
|
||||
$roster_toggle_hover: rgba($gray60, 0.5);
|
||||
|
||||
$roster_border_left: $gray60;
|
||||
$roster_bottom_border_top: $gray50;
|
||||
$roster_bottom_bg: $gray10;
|
||||
$roster_bottom_color: $gray50;
|
||||
$roster_bottom_disabled: $gray20;
|
||||
$roster_bottom_bg_hover: #3f8fba;
|
||||
$roster_bottom_color_hover: $white;
|
||||
|
||||
$fullscreen_bg: $gray60;
|
||||
$video_status_bg: rgba($black, 0.5);
|
||||
$video_status_color: $white;
|
||||
$video_bg: $gray60;
|
||||
|
||||
$novideo_color: $white;
|
||||
$novideo_bg: $gray30;
|
||||
|
||||
$bubbling_bg: $black;
|
||||
$bubbling_start_bg: $black;
|
||||
$bubbling_end_bg: $white;
|
||||
|
||||
$avatar_bg: $gray60;
|
||||
$avatar_color: $gray70;
|
||||
|
||||
$loginForm_bg: #5cb85c;
|
||||
$loginForm_border: #4cae4c;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,709 @@
|
||||
.jsxc_right {
|
||||
text-align: right;
|
||||
}
|
||||
.jsxc_center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsxc_sep {
|
||||
border-top: 1px solid $separator;
|
||||
}
|
||||
.jsxc_name {
|
||||
overflow: hidden;
|
||||
height: 30px;
|
||||
cursor: pointer;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
&:hover {
|
||||
color: $name_hover;
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_maxWidth {
|
||||
max-width: 500px;
|
||||
}
|
||||
|
||||
#jsxc_dialog {
|
||||
padding: 10px;
|
||||
min-width: 300px;
|
||||
display: inline-block;
|
||||
ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
p {
|
||||
margin-bottom: 1em;
|
||||
input {
|
||||
margin-bottom: 5px;
|
||||
width: 60%;
|
||||
outline: none;
|
||||
}
|
||||
input[type="submit"] {
|
||||
width: auto;
|
||||
}
|
||||
label {
|
||||
display: block;
|
||||
width: 30%;
|
||||
float: left;
|
||||
padding: 6px 0;
|
||||
}
|
||||
}
|
||||
h3 {
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.jsxc_right {
|
||||
margin-top: 20px;
|
||||
}
|
||||
fieldset {
|
||||
border: 2px solid $dialog_fieldset_border;
|
||||
}
|
||||
legend {
|
||||
padding: 0 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
input {
|
||||
outline: none;
|
||||
&:invalid {
|
||||
border: 1px solid $dialog_input_invalid;
|
||||
}
|
||||
}
|
||||
.jsxc_fieldset {
|
||||
width: 280px;
|
||||
padding: 10px;
|
||||
border-radius: 3px;
|
||||
label {
|
||||
display: inline-block;
|
||||
width: 100px;
|
||||
}
|
||||
input[type="Number"] {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
}
|
||||
}
|
||||
input[readonly] {
|
||||
background-color: $dialog_input_readonly_bg;
|
||||
}
|
||||
.jsxc_inputinfo {
|
||||
padding-left: 30%;
|
||||
font-style: italic;
|
||||
margin-top: -1em;
|
||||
}
|
||||
.jsxc_waiting {
|
||||
&:before {
|
||||
content: " ";
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
display: inline-block;
|
||||
background-size: 100%;
|
||||
margin: 0 3px 0 0;
|
||||
background-image: image-url('loading.gif');
|
||||
}
|
||||
}
|
||||
.jsxc_libraries {
|
||||
max-width: 300px;
|
||||
}
|
||||
}
|
||||
.jsxc_avatar {
|
||||
@extend %avatar-icon;
|
||||
img {
|
||||
display: block;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ul.jsxc_vCard {
|
||||
min-width: 400px;
|
||||
ul {
|
||||
margin-left: 20px;
|
||||
}
|
||||
li {
|
||||
cursor: default !important;
|
||||
}
|
||||
strong {
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_spot {
|
||||
display: inline-block;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background-color: $white;
|
||||
border-radius: 5px;
|
||||
text-indent: -99999em;
|
||||
margin-top: 3px;
|
||||
margin-right: 5px;
|
||||
border: 1px solid $spot_border !important;
|
||||
line-height: 100%;
|
||||
cursor: pointer;
|
||||
&.jsxc_online {
|
||||
background-color: $state_online;
|
||||
}
|
||||
&.jsxc_chat {
|
||||
background-color: $state_chat;
|
||||
}
|
||||
&.jsxc_away {
|
||||
background-color: $state_away;
|
||||
}
|
||||
&.jsxc_xa {
|
||||
background-color: $state_xa;
|
||||
}
|
||||
&.jsxc_dnd {
|
||||
background-color: $state_dnd;
|
||||
}
|
||||
&.jsxc_offline {
|
||||
background-color: $state_offline;
|
||||
}
|
||||
}
|
||||
|
||||
#jsxc_menu {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
text-align: center;
|
||||
&:hover>span {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
#jsxc_avatar {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
float: left;
|
||||
margin: 0 2px;
|
||||
}
|
||||
#jsxc_notice {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
float: right;
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
span {
|
||||
background-color: $notice_bg;
|
||||
border-radius: 11px;
|
||||
color: $notice_color;
|
||||
font-size: 80%;
|
||||
padding: 2px;
|
||||
position: relative;
|
||||
animation: bounce 2s 1s infinite;
|
||||
}
|
||||
}
|
||||
#jsxc_menu>span {
|
||||
opacity: 0.5;
|
||||
display: block;
|
||||
width: 25px;
|
||||
height: 30px;
|
||||
background-image: image-url('gear_white.svg');
|
||||
background-size: 18px 18px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
}
|
||||
@keyframes bounce {
|
||||
0% {
|
||||
bottom: 0;
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
12% {
|
||||
bottom: 5px;
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
25% {
|
||||
bottom: 0;
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
37% {
|
||||
bottom: 5px;
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
50% {
|
||||
bottom: 0;
|
||||
animation-timing-function: ease-in;
|
||||
}
|
||||
100% {
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
#jsxc_presence {
|
||||
cursor: pointer;
|
||||
padding-left: 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
#jsxc_windowList {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 210px;
|
||||
left: 0;
|
||||
z-index: 50;
|
||||
clip: rect(-10000px, 10000px, 30px, 30px);
|
||||
&>ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 30px;
|
||||
overflow: visible;
|
||||
white-space: nowrap;
|
||||
transition: right 0.5s;
|
||||
|
||||
&>li {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
width: 250px;
|
||||
height: 30px;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
margin-right: 5px;
|
||||
cursor: pointer;
|
||||
white-space: normal;
|
||||
&.jsxc_min {
|
||||
width: 200px !important;
|
||||
}
|
||||
&.jsxc_unreadMsg {
|
||||
.jsxc_name {
|
||||
font-style: italic;
|
||||
}
|
||||
.jsxc_cycle {
|
||||
background-color: $window_unread_cycle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#jsxc_windowListSB {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
> {
|
||||
div {
|
||||
box-sizing: border-box;
|
||||
width: 14px;
|
||||
height: 100%;
|
||||
background-color: $windowListSB_bg;
|
||||
color: $windowListSB_color;
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
&:hover {
|
||||
background-color: $windowListSB_bg_hover;
|
||||
}
|
||||
}
|
||||
.jsxc_disabled {
|
||||
background-color: $windowListSB_bg_disabled !important;
|
||||
color: $windowListSB_color_disabled;
|
||||
cursor: default !important;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_bar {
|
||||
background-color: $window_bar_bg;
|
||||
cursor: pointer;
|
||||
height: 30px;
|
||||
line-height: 26px;
|
||||
padding: 2px;
|
||||
color: $window_bar_color;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
.jsxc_cycle {
|
||||
position: absolute;
|
||||
bottom: 9px;
|
||||
right: 5px;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.jsxc_window {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: auto;
|
||||
background-color: $window_bg;
|
||||
z-index: 80;
|
||||
cursor: default;
|
||||
.jsxc_emoticons {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
position: absolute;
|
||||
top: 240px;
|
||||
right: 0;
|
||||
cursor: pointer;
|
||||
&:after {
|
||||
content: ' ';
|
||||
background-image: image-url('smiley.png');
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
opacity: 0.3;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
ul {
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: 33px;
|
||||
right: 3px;
|
||||
width: 210px;
|
||||
background-color: $emoticon_selection_bg;
|
||||
padding: 3px;
|
||||
border-radius: 3px;
|
||||
z-index: 200;
|
||||
list-style-type: none;
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
border-top: 6px solid $emoticon_selection_bg;
|
||||
display: block;
|
||||
width: 0;
|
||||
z-index: 1;
|
||||
right: 6px;
|
||||
bottom: -6px;
|
||||
}
|
||||
}
|
||||
li {
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
}
|
||||
div {
|
||||
cursor: pointer;
|
||||
border-radius: 3px;
|
||||
background-size: 30px 30px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
&:hover {
|
||||
background-color: $emoticon_selection_hover;
|
||||
}
|
||||
}
|
||||
&:hover:after {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
.jsxc_fade {
|
||||
position: relative;
|
||||
}
|
||||
.jsxc_gradient {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 15px;
|
||||
z-index: 100;
|
||||
background: linear-gradient(to bottom, $window_gradient 0, rgba(0, 0, 0, 0) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='$window_gradient', endColorstr='#00282323', GradientType=0);
|
||||
}
|
||||
.jsxc_avatar {
|
||||
margin-top: 1px;
|
||||
}
|
||||
.jsxc_textarea {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
padding: 3px;
|
||||
}
|
||||
.slimScrollDiv {
|
||||
margin: 0 0 6px 0;
|
||||
left: auto !important;
|
||||
top: auto !important;
|
||||
}
|
||||
input {
|
||||
&.jsxc_textinput {
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
margin: 0;
|
||||
padding: 3px;
|
||||
padding-right: 40px;
|
||||
outline: none;
|
||||
border-radius: 0;
|
||||
box-sizing: border-box;
|
||||
text-align: right;
|
||||
}
|
||||
&::placeholder {
|
||||
color: $window_placeholder;
|
||||
opacity: 0.3;
|
||||
}
|
||||
}
|
||||
.jsxc_tools {
|
||||
height: 26px;
|
||||
float: right;
|
||||
> div {
|
||||
width: 17px;
|
||||
height: 26px;
|
||||
display: block;
|
||||
float: left;
|
||||
color: $tools_color;
|
||||
font-family: $font_sans;
|
||||
line-height: 26px;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.jsxc_close {
|
||||
font-size: 20px;
|
||||
&:hover {
|
||||
color: $window_close_hover;
|
||||
}
|
||||
}
|
||||
.ui-resizable-w {
|
||||
left: 0;
|
||||
}
|
||||
.ui-resizable-nw {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
z-index: 95 !important;
|
||||
background-image: image-url('resize_gray.svg');
|
||||
}
|
||||
.ui-resizable-n {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 15px;
|
||||
z-index: 100;
|
||||
background: linear-gradient(to bottom, $window_gradient 0, rgba(40, 35, 35, 0) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='$window_gradient', endColorstr='#00282323', GradientType=0);
|
||||
}
|
||||
}
|
||||
.jsxc_chatmessage {
|
||||
margin: 3px;
|
||||
padding: 4px;
|
||||
padding-right: 10px;
|
||||
max-width: 76%;
|
||||
word-wrap: break-word;
|
||||
background-color: $chatmessage_bg;
|
||||
position: relative;
|
||||
outline: none;
|
||||
clear: both;
|
||||
a {
|
||||
color: $chatmessage_a;
|
||||
text-decoration: underline;
|
||||
}
|
||||
img {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background-size: 19px 19px;
|
||||
}
|
||||
.jsxc_avatar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.jsxc_timestamp {
|
||||
font-size: 8px;
|
||||
color: $chatmessage_timestamp;
|
||||
line-height: 8px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
max-width: 100%;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.jsxc_in {
|
||||
float: left;
|
||||
position: relative;
|
||||
margin-left: 10px;
|
||||
background: $chatmessage_in_bg;
|
||||
border: solid 1px $chatmessage_in_border;
|
||||
border-radius: 3px;
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
border-style: solid;
|
||||
border-width: 5px 6px 5px 0;
|
||||
border-color: transparent $chatmessage_in_bg;
|
||||
display: block;
|
||||
width: 0;
|
||||
z-index: 1;
|
||||
left: -6px;
|
||||
bottom: 10px;
|
||||
}
|
||||
.jsxc_timestamp {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
.jsxc_out {
|
||||
float: right;
|
||||
position: relative;
|
||||
margin-right: 10px;
|
||||
background: $chatmessage_out_bg;
|
||||
border: solid 1px $chatmessage_out_border;
|
||||
border-radius: 3px;
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
border-style: solid;
|
||||
border-width: 5px 0 5px 6px;
|
||||
border-color: transparent $chatmessage_out_bg;
|
||||
display: block;
|
||||
width: 0;
|
||||
z-index: 1;
|
||||
right: -6px;
|
||||
bottom: 10px;
|
||||
}
|
||||
&.jsxc_received{
|
||||
&:before {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
bottom: 2px;
|
||||
right: 2px;
|
||||
font-size: 12px;
|
||||
line-height: 12px;
|
||||
color: $chatmessage_received;
|
||||
}
|
||||
.jsxc_timestamp {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
.jsxc_timestamp {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
.jsxc_sys {
|
||||
width: auto;
|
||||
max-width: none;
|
||||
padding-right: 4px;
|
||||
box-sizing: border-box;
|
||||
margin-right: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
div.jsxc_settings {
|
||||
background-image: image-url('gear_grey.svg');
|
||||
background-size: 15px 15px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
overflow: visible;
|
||||
&:hover, .hover {
|
||||
background-image: image-url('gear_white.svg');
|
||||
}
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 0;
|
||||
box-shadow: 0 5px 5px -5px $shadow;
|
||||
z-index: 110;
|
||||
overflow: visible;
|
||||
background-color: $window_settings_bg;
|
||||
display: none;
|
||||
}
|
||||
li {
|
||||
width: 170px;
|
||||
margin-left: 20px;
|
||||
padding-left: 10px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
&:first-child {
|
||||
border-top: 1px solid $window_settings_border_top;
|
||||
}
|
||||
&.jsxc_disabled {
|
||||
color: $window_settings_disabled;
|
||||
cursor: default;
|
||||
}
|
||||
&:hover:not(.jsxc_disabled ) {
|
||||
color: $window_settings_color_hover;
|
||||
background-color: $window_settings_bg_hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
div.jsxc_transfer {
|
||||
@extend %padlock-icon;
|
||||
&:hover {
|
||||
background-image: image-url('padlock_open_white.svg');
|
||||
}
|
||||
&.jsxc_fin {
|
||||
background-image: image-url('padlock_close_grey.svg');
|
||||
}
|
||||
&.jsxc_enc {
|
||||
background-image: image-url('padlock_close_orange.svg');
|
||||
&.jsxc_trust {
|
||||
background-image: image-url('padlock_close_green.svg');
|
||||
}
|
||||
}
|
||||
&.jsxc_disabled:hover {
|
||||
@extend %padlock-icon;
|
||||
}
|
||||
}
|
||||
#colorbox {
|
||||
outline: none;
|
||||
}
|
||||
#cboxWrapper {
|
||||
outline: none;
|
||||
}
|
||||
.jsxc_loading {
|
||||
margin: 0 auto;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border: 0;
|
||||
background-size: 32px 32px !important;
|
||||
background: image-url('loading.gif');
|
||||
}
|
||||
/* @TODO: check */
|
||||
#jsxc_loginForm input[type="submit"] {
|
||||
height: 34px;
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
line-height: 1.428571429;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
user-select: none;
|
||||
color: $white;
|
||||
background-color: $loginForm_bg;
|
||||
border-color: $loginForm_border;
|
||||
}
|
||||
#jsxc_notice>span:empty {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_oneway .jsxc_avatar {
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
.jsxc_min .jsxc_tools {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_tools > .jsxc_disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default !important;
|
||||
}
|
||||
img.jsxc_vCard {
|
||||
float: right;
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
border: 5px solid $white;
|
||||
border-radius: 2px;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
%avatar-icon {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
margin-top: 2px;
|
||||
margin-right: 4px;
|
||||
background-color: $avatar_bg;
|
||||
border-radius: 2px;
|
||||
float: left;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 30px;
|
||||
color: $avatar_color;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
font-family: $font_sans;
|
||||
background-size: cover;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
%padlock-icon {
|
||||
background-image: image-url('padlock_open_grey.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 12px 12px;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
%muc-avatar-icon {
|
||||
text-indent: 999px;
|
||||
background-image: image-url('group_white.svg');
|
||||
background-size: 70% 70% !important;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.jsxc_windowItem {
|
||||
&.jsxc_groupchat {
|
||||
.jsxc_fade {
|
||||
padding-top: 30px;
|
||||
}
|
||||
.jsxc_video {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_transfer {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_fingerprints, .jsxc_verification, .jsxc_transfer {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_members {
|
||||
background-image: image-url('group_grey.svg');
|
||||
background-size: 90%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
&:hover {
|
||||
background-image: image-url('group_white.svg');
|
||||
}
|
||||
}
|
||||
.jsxc_chatmessage.jsxc_in {
|
||||
margin-left: 40px;
|
||||
.jsxc_avatar {
|
||||
display: block;
|
||||
position:absolute;
|
||||
bottom: 0px;
|
||||
left: -37px;
|
||||
background-color: #777;
|
||||
}
|
||||
}
|
||||
.jsxc_bar {
|
||||
.jsxc_avatar {
|
||||
@extend %muc-avatar-icon;
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_memberlist {
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
background-color: $window_bar_bg;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
transition: height 400ms;
|
||||
z-index: 100;
|
||||
ul {
|
||||
white-space: nowrap;
|
||||
position: absolute;
|
||||
background-color: $window_bar_bg;
|
||||
color: $window_bar_color;
|
||||
overflow: hidden;
|
||||
transition: left 400ms;
|
||||
padding: 0px;
|
||||
&>li {
|
||||
display: inline-block;
|
||||
white-space: normal;
|
||||
&:last-child {
|
||||
margin-right: 2px;
|
||||
}
|
||||
.jsxc_name {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_avatar {
|
||||
margin-left: 2px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.jsxc_expand {
|
||||
ul {
|
||||
white-space: normal;
|
||||
&>li {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
.jsxc_name {
|
||||
display: block;
|
||||
cursor: default;
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
.jsxc_avatar {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
li[data-type="groupchat"] {
|
||||
.jsxc_avatar {
|
||||
@extend %muc-avatar-icon;
|
||||
}
|
||||
.jsxc_video {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
#jsxc_roster {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
width: 200px;
|
||||
overflow: visible;
|
||||
border-left: 4px solid $roster_border_left;
|
||||
z-index: 80;
|
||||
margin-left: 10px;
|
||||
box-shadow: 0px 0px 7px $shadow;
|
||||
background-color: $roster_bg;
|
||||
a {
|
||||
cursor: pointer;
|
||||
}
|
||||
.slimScrollDiv {
|
||||
left: -4px;
|
||||
margin-bottom: 30px;
|
||||
z-index: 40;
|
||||
}
|
||||
.jsxc_wait {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 160px;
|
||||
padding: 20px;
|
||||
background-color: $white;
|
||||
z-index: 60;
|
||||
img {
|
||||
padding: 5px;
|
||||
}
|
||||
h3 {
|
||||
margin-bottom: 5px;
|
||||
font-size: 1.13em;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
input {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 31px;
|
||||
width: 157px;
|
||||
height: 18px;
|
||||
margin-top: -11px;
|
||||
padding: 2px;
|
||||
border: 0;
|
||||
background-image: none;
|
||||
background-color: $roster_input_bg;
|
||||
border-radius: 3px;
|
||||
box-shadow: inner 0 0 5px $roster_input_shadow;
|
||||
outline: none;
|
||||
}
|
||||
p {
|
||||
color: $roster_color;
|
||||
padding: 10px;
|
||||
a {
|
||||
color: $roster_a;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
.jsxc_avatar {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
img {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.jsxc_expand input {
|
||||
left: 51px;
|
||||
width: 137px;
|
||||
}
|
||||
&.jsxc_noConnection {
|
||||
.slimScrollDiv {
|
||||
display: none;
|
||||
}
|
||||
> .jsxc_bottom {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#jsxc_toggleRoster {
|
||||
width: 14px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: -14px !important;
|
||||
top: 0;
|
||||
z-index: 110;
|
||||
background-color: transparent;
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
background-color: $roster_toggle_hover;
|
||||
}
|
||||
}
|
||||
#jsxc_roster> {
|
||||
&.jsxc_bottom {
|
||||
position: absolute;
|
||||
left: -4px;
|
||||
bottom: 0;
|
||||
height: 30px;
|
||||
width: 200px;
|
||||
border-left: 4px solid $roster_border_left;
|
||||
border-top: 1px solid $roster_bottom_border_top;
|
||||
padding-left: 0;
|
||||
background-color: $roster_bottom_bg;
|
||||
color: $roster_color;
|
||||
cursor: pointer;
|
||||
line-height: 30px;
|
||||
z-index: 50;
|
||||
ul {
|
||||
width: 190px;
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
left: 0;
|
||||
display: none;
|
||||
border-top: 1px solid $roster_bottom_border_top;
|
||||
padding-left: 10px;
|
||||
background-color: $roster_bottom_bg;
|
||||
margin: 0;
|
||||
li:last-child {
|
||||
border-bottom: 1px solid $roster_bottom_border_top;
|
||||
}
|
||||
}
|
||||
li {
|
||||
height: 30px;
|
||||
background-color: $roster_bottom_bg;
|
||||
color: $roster_bottom_color;
|
||||
cursor: pointer;
|
||||
width: 180px;
|
||||
padding-left: 10px;
|
||||
line-height: 30px;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
&.jsxc_disabled {
|
||||
color: $roster_bottom_disabled;
|
||||
cursor: default;
|
||||
}
|
||||
&:hover:not(.jsxc_disabled) {
|
||||
color: $roster_bottom_color_hover;
|
||||
background-color: $roster_bottom_bg_hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.jsxc_bottom>div>span {
|
||||
cursor: pointer;
|
||||
}
|
||||
&.jsxc_bottom>div:hover {
|
||||
color: $roster_bottom_color_hover;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
.jsxc_online {
|
||||
border-left: 4px solid $state_online !important;
|
||||
}
|
||||
.jsxc_chat {
|
||||
border-left: 4px solid $state_chat !important;
|
||||
}
|
||||
.jsxc_away {
|
||||
border-left: 4px solid $state_away !important;
|
||||
}
|
||||
.jsxc_xa {
|
||||
border-left: 4px solid $state_xa !important;
|
||||
}
|
||||
.jsxc_dnd {
|
||||
border-left: 4px solid $state_dnd !important;
|
||||
}
|
||||
.jsxc_offline {
|
||||
border-left: 4px solid $state_offline !important;
|
||||
}
|
||||
.jsxc_hidden {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_invalid {
|
||||
border: 2px solid $invalid_border !important;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
@import 'colors';
|
||||
|
||||
%fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 9000;
|
||||
background-color: $fullscreen_bg;
|
||||
}
|
||||
|
||||
.jsxc_webrtc {
|
||||
width: 900px;
|
||||
.jsxc_status {
|
||||
z-index: 9999;
|
||||
border-radius: 20px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 50%;
|
||||
background-color: $video_status_bg;
|
||||
color: $video_status_color;
|
||||
padding: 15px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
.slimScrollDiv {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
li .jsxc_name {
|
||||
cursor: auto;
|
||||
&:hover {
|
||||
color: $window_bar_color;
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_videoContainer {
|
||||
width: 640px;
|
||||
height: 480px;
|
||||
position: relative;
|
||||
background-color: $video_bg;
|
||||
video {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_noRemoteVideo {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.jsxc_remotevideo {
|
||||
@extend %fullscreen;
|
||||
}
|
||||
.jsxc_noRemoteVideo {
|
||||
@extend %fullscreen;
|
||||
p {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
text-align: center;
|
||||
color: $novideo_color;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
}
|
||||
> div {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -100px;
|
||||
left: 50%;
|
||||
margin-left: -100px;
|
||||
> div {
|
||||
background-color: $novideo_bg;
|
||||
&:first-child {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -25%;
|
||||
top: 10%;
|
||||
}
|
||||
&:last-child {
|
||||
position: absolute;
|
||||
bottom: -50%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_localvideo {
|
||||
width: 160px;
|
||||
height: 120px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
z-index: 9990;
|
||||
background-color: $black;
|
||||
cursor: pointer;
|
||||
}
|
||||
div {
|
||||
&:full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: $black;
|
||||
&.jsxc_localvideo {
|
||||
border: 1px solid $white;
|
||||
}
|
||||
}
|
||||
&:fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: $black;
|
||||
&.jsxc_localvideo {
|
||||
border: 1px solid $white;
|
||||
}
|
||||
}
|
||||
&.jsxc_video {
|
||||
background-image: image-url('camera_icon_grey.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 15px 15px;
|
||||
&:not(.jsxc_disabled) {
|
||||
&:hover {
|
||||
background-image: image-url('camera_icon_white.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_controlbar {
|
||||
width: 640px;
|
||||
.jsxc_showchat {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
.jsxc_multi>div {
|
||||
display: none;
|
||||
}
|
||||
.jsxc_snapshotbar {
|
||||
width: 100%;
|
||||
display: none;
|
||||
img {
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
.jsxc_buttongroup {
|
||||
display: inline;
|
||||
button {
|
||||
&:first-child {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
&:last-child {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.jsxc_chatarea {
|
||||
position: relative;
|
||||
float: right;
|
||||
height: 480px;
|
||||
width: 250px;
|
||||
background-color: $window_bg;
|
||||
.jsxc_settings {
|
||||
display: none !important;
|
||||
}
|
||||
.jsxc_close {
|
||||
display: none !important;
|
||||
}
|
||||
.jsxc_video {
|
||||
display: none !important;
|
||||
}
|
||||
.jsxc_bar {
|
||||
}
|
||||
.jsxc_window {
|
||||
bottom: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
> ul {
|
||||
width: 250px;
|
||||
height: 480px;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.bubblingG {
|
||||
text-align: center;
|
||||
width: 129px;
|
||||
height: 80px;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
margin-left: -64px;
|
||||
span {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: 40px auto;
|
||||
background: $bubbling_bg;
|
||||
border-radius: 81px;
|
||||
animation: bubblingG 1.3s infinite alternate;
|
||||
}
|
||||
}
|
||||
#bubblingG_1 {
|
||||
animation-delay: 0s;
|
||||
}
|
||||
#bubblingG_2 {
|
||||
animation-delay: 0.39s;
|
||||
}
|
||||
#bubblingG_3 {
|
||||
animation-delay: 0.78s;
|
||||
}
|
||||
@keyframes bubblingG {
|
||||
0% {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color: $bubbling_start_bg;
|
||||
transform: translateY(0);
|
||||
}
|
||||
100% {
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
background-color: $white;
|
||||
transform: translateY(-34px);
|
||||
}
|
||||
}
|
||||
.jsxc_fullscreen.jsxc_localvideo {
|
||||
border: 1px solid $white;
|
||||
}
|
||||
.jsxc_videoSuitable .jsxc_name {
|
||||
font-style: italic;
|
||||
}
|
||||
#jsxc_buddylist .jsxc_options .jsxc_video {
|
||||
background-image: image-url('camera_icon_white.svg');
|
||||
&.jsxc_disabled {
|
||||
opacity: 0.2;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
.jsxc_emoticon {
|
||||
display: inline-block;
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background-size: 19px 19px !important;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
$emoticons: angel, angry, smile, grin, sad, wink, tonguesmile, surpised, kiss,
|
||||
sunglassess, crysad, doubt, zip, thumbsup, thumbsdown, beer, devil,
|
||||
kissing, rose, music, love, tired, surprised;
|
||||
|
||||
@each $emoticon in $emoticons {
|
||||
.jsxc_#{$emoticon} { background: image-url('emotions/#{$emoticon}.png'); }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
@import 'colors';
|
||||
|
||||
//fonts
|
||||
$font_sans: Arial, sans-serif;
|
||||
$font_serif: serif;
|
||||
|
||||
@import 'modules',
|
||||
'buddylist',
|
||||
'state',
|
||||
'emoticons',
|
||||
'roster',
|
||||
'muc';
|
||||
|
||||
@import 'jsxc';
|
||||
@@ -0,0 +1,3 @@
|
||||
@import 'colors';
|
||||
|
||||
@import 'webrtc';
|
||||
@@ -0,0 +1,4 @@
|
||||
var jsxc = null, RTC = null, RTCPeerconnection = null;
|
||||
|
||||
(function($) {
|
||||
"use strict";
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
Arquivo executável
+769
@@ -0,0 +1,769 @@
|
||||
/**
|
||||
* JavaScript Xmpp Chat namespace
|
||||
*
|
||||
* @namespace jsxc
|
||||
*/
|
||||
jsxc = {
|
||||
/** Version of jsxc */
|
||||
version: '< $ app.version $ >',
|
||||
|
||||
/** True if i'm the master */
|
||||
master: false,
|
||||
|
||||
/** True if the role allocation is finished */
|
||||
role_allocation: false,
|
||||
|
||||
/** Timeout for keepalive */
|
||||
to: null,
|
||||
|
||||
/** Timeout after normal keepalive starts */
|
||||
toBusy: null,
|
||||
|
||||
/** Timeout for notification */
|
||||
toNotification: null,
|
||||
|
||||
/** Timeout delay for notification */
|
||||
toNotificationDelay: 500,
|
||||
|
||||
/** Interval for keep-alive */
|
||||
keepalive: null,
|
||||
|
||||
/** True if last activity was 10 min ago */
|
||||
restore: false,
|
||||
|
||||
/** True if restore is complete */
|
||||
restoreCompleted: false,
|
||||
|
||||
/** True if login through box */
|
||||
triggeredFromBox: false,
|
||||
|
||||
/** True if logout through element click */
|
||||
triggeredFromElement: false,
|
||||
|
||||
/** True if logout through logout click */
|
||||
triggeredFromLogout: false,
|
||||
|
||||
/** last values which we wrote into localstorage (IE workaround) */
|
||||
ls: [],
|
||||
|
||||
/**
|
||||
* storage event is even fired if I write something into storage (IE
|
||||
* workaround) 0: conform, 1: not conform, 2: not shure
|
||||
*/
|
||||
storageNotConform: null,
|
||||
|
||||
/** Timeout for storageNotConform test */
|
||||
toSNC: null,
|
||||
|
||||
/** My bar id */
|
||||
bid: null,
|
||||
|
||||
/** Some constants */
|
||||
CONST: {
|
||||
NOTIFICATION_DEFAULT: 'default',
|
||||
NOTIFICATION_GRANTED: 'granted',
|
||||
NOTIFICATION_DENIED: 'denied',
|
||||
STATUS: [ 'offline', 'dnd', 'xa', 'away', 'chat', 'online' ],
|
||||
SOUNDS: {
|
||||
MSG: 'incomingMessage.wav',
|
||||
CALL: 'Rotary-Phone6.mp3',
|
||||
NOTICE: 'Ping1.mp3'
|
||||
},
|
||||
REGEX: {
|
||||
JID: new RegExp('\\b[^"&\'\\/:<>@\\s]+@[\\w-_.]+\\b', 'ig'),
|
||||
URL: new RegExp(/((?:https?:\/\/|www\.|([\w\-]+\.[a-zA-Z]{2,3})(?=\b))(?:(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*\)([\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|])?)|(?:[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|]))?)/gi)
|
||||
},
|
||||
NS: {
|
||||
CARBONS: 'urn:xmpp:carbons:2',
|
||||
FORWARD: 'urn:xmpp:forward:0'
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Parse a unix timestamp and return a formatted time string
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {Object} unixtime
|
||||
* @returns time of day and/or date
|
||||
*/
|
||||
getFormattedTime: function(unixtime) {
|
||||
var msgDate = new Date(parseInt(unixtime));
|
||||
var date = ('0' + msgDate.getDate()).slice(-2);
|
||||
var month = ('0' + (msgDate.getMonth() + 1)).slice(-2);
|
||||
var year = msgDate.getFullYear();
|
||||
var hours = ('0' + msgDate.getHours()).slice(-2);
|
||||
var minutes = ('0' + msgDate.getMinutes()).slice(-2);
|
||||
var dateNow = new Date(), time = hours + ':' + minutes;
|
||||
|
||||
// compare dates only
|
||||
dateNow.setHours(0, 0, 0, 0);
|
||||
msgDate.setHours(0, 0, 0, 0);
|
||||
|
||||
if (dateNow.getTime() !== msgDate.getTime()) {
|
||||
return date + '.' + month + '.' + year + ' ' + time;
|
||||
}
|
||||
return time;
|
||||
},
|
||||
|
||||
/**
|
||||
* Write debug message to console and to log.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {String} msg Debug message
|
||||
* @param {Object} data
|
||||
* @param {String} Could be warn|error|null
|
||||
*/
|
||||
debug: function(msg, data, level) {
|
||||
if (level) {
|
||||
msg = '[' + level + '] ' + msg;
|
||||
}
|
||||
|
||||
if (data) {
|
||||
if (jsxc.storage.getItem('debug') === true) {
|
||||
console.log(msg, data);
|
||||
}
|
||||
|
||||
// try to convert data to string
|
||||
var d;
|
||||
try {
|
||||
// clone html snippet
|
||||
d = $("<span>").prepend($(data).clone()).html();
|
||||
} catch (err) {
|
||||
try {
|
||||
d = JSON.stringify(data);
|
||||
} catch (err2) {
|
||||
d = 'see js console';
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.log = jsxc.log + msg + ': ' + d + '\n';
|
||||
} else {
|
||||
console.log(msg);
|
||||
jsxc.log = jsxc.log + msg + '\n';
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Write warn message.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {String} msg Warn message
|
||||
* @param {Object} data
|
||||
*/
|
||||
warn: function(msg, data) {
|
||||
jsxc.debug(msg, data, 'WARN');
|
||||
},
|
||||
|
||||
/**
|
||||
* Write error message.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {String} msg Error message
|
||||
* @param {Object} data
|
||||
*/
|
||||
error: function(msg, data) {
|
||||
jsxc.debug(msg, data, 'ERROR');
|
||||
},
|
||||
|
||||
/** debug log */
|
||||
log: '',
|
||||
|
||||
/**
|
||||
* Starts the action
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {object} options
|
||||
*/
|
||||
init: function(options) {
|
||||
|
||||
if (options) {
|
||||
// override default options
|
||||
$.extend(true, jsxc.options, options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter method for options. Saved options will override default one.
|
||||
*
|
||||
* @param {string} key option key
|
||||
* @returns default or saved option value
|
||||
*/
|
||||
jsxc.options.get = function(key) {
|
||||
var local = jsxc.storage.getUserItem('options') || {};
|
||||
|
||||
return local[key] || jsxc.options[key];
|
||||
};
|
||||
|
||||
/**
|
||||
* Setter method for options. Will write into localstorage.
|
||||
*
|
||||
* @param {string} key option key
|
||||
* @param {object} value option value
|
||||
*/
|
||||
jsxc.options.set = function(key, value) {
|
||||
jsxc.storage.updateItem('options', key, value, true);
|
||||
};
|
||||
|
||||
jsxc.storageNotConform = jsxc.storage.getItem('storageNotConform');
|
||||
if (jsxc.storageNotConform === null) {
|
||||
jsxc.storageNotConform = 2;
|
||||
}
|
||||
|
||||
// detect language
|
||||
var lang;
|
||||
if (jsxc.storage.getItem('lang') !== null) {
|
||||
lang = jsxc.storage.getItem('lang');
|
||||
} else if (jsxc.options.autoLang && navigator.language) {
|
||||
lang = navigator.language.substr(0, 2);
|
||||
} else {
|
||||
lang = jsxc.options.defaultLang;
|
||||
}
|
||||
|
||||
// initialize i18n translator
|
||||
$.i18n.init({
|
||||
lng: lang,
|
||||
fallbackLng: 'en',
|
||||
resStore: I18next,
|
||||
// use localStorage and set expiration to a day
|
||||
useLocalStorage: true,
|
||||
localStorageExpirationTime: 60 * 60 * 24 * 1000,
|
||||
});
|
||||
|
||||
// Check localStorage
|
||||
if (typeof (localStorage) === 'undefined') {
|
||||
jsxc.debug("Browser doesn't support localStorage.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.storage.getItem('debug') === true) {
|
||||
jsxc.options.otr.debug = true;
|
||||
}
|
||||
|
||||
// Register event listener for the storage event
|
||||
window.addEventListener('storage', jsxc.storage.onStorage, false);
|
||||
|
||||
var lastActivity = jsxc.storage.getItem('lastActivity') || 0;
|
||||
|
||||
if ((new Date()).getTime() - lastActivity < jsxc.options.loginTimeout) {
|
||||
jsxc.restore = true;
|
||||
}
|
||||
|
||||
$(document).on('connectionReady.jsxc', function() {
|
||||
// Looking for logout element
|
||||
if (jsxc.options.logoutElement !== null && jsxc.options.logoutElement.length > 0) {
|
||||
var logout = function() {
|
||||
jsxc.options.logoutElement = $(this);
|
||||
jsxc.triggeredFromLogout = true;
|
||||
return jsxc.xmpp.logout();
|
||||
};
|
||||
|
||||
jsxc.options.logoutElement.off('click', null, logout).one('click', logout);
|
||||
}
|
||||
});
|
||||
|
||||
// Check if we have to establish a new connection
|
||||
if (!jsxc.storage.getItem('rid') || !jsxc.storage.getItem('sid') || !jsxc.restore) {
|
||||
|
||||
// Looking for a login form
|
||||
if (!jsxc.options.loginForm.form || !(jsxc.el_exists(jsxc.options.loginForm.form) && jsxc.el_exists(jsxc.options.loginForm.jid) && jsxc.el_exists(jsxc.options.loginForm.pass))) {
|
||||
|
||||
if (jsxc.options.displayRosterMinimized()) {
|
||||
// Show minimized roster
|
||||
jsxc.storage.setUserItem('roster', 'hidden');
|
||||
jsxc.gui.roster.init();
|
||||
jsxc.gui.roster.noConnection();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof jsxc.options.formFound === 'function') {
|
||||
jsxc.options.formFound.call();
|
||||
}
|
||||
|
||||
// create jquery object
|
||||
var form = jsxc.options.loginForm.form = $(jsxc.options.loginForm.form);
|
||||
var events = form.data('events') || {
|
||||
submit: []
|
||||
};
|
||||
var submits = [];
|
||||
|
||||
// save attached submit events and remove them. Will be reattached
|
||||
// in jsxc.submitLoginForm
|
||||
$.each(events.submit, function(index, val) {
|
||||
submits.push(val.handler);
|
||||
});
|
||||
|
||||
form.data('submits', submits);
|
||||
form.off('submit');
|
||||
|
||||
// Add jsxc login action to form
|
||||
form.submit(function() {
|
||||
|
||||
var settings = jsxc.prepareLogin();
|
||||
|
||||
if (settings !== false && (settings.xmpp.onlogin === "true" || settings.xmpp.onlogin === true)) {
|
||||
jsxc.options.loginForm.triggered = true;
|
||||
|
||||
jsxc.xmpp.login();
|
||||
|
||||
// Trigger submit in jsxc.xmpp.connected()
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
// Restore old connection
|
||||
|
||||
jsxc.bid = jsxc.jidToBid(jsxc.storage.getItem('jid'));
|
||||
|
||||
jsxc.gui.init();
|
||||
|
||||
if (typeof (jsxc.storage.getItem('alive')) === 'undefined' || !jsxc.restore) {
|
||||
jsxc.onMaster();
|
||||
} else {
|
||||
jsxc.checkMaster();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Load settings and prepare jid.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @returns Loaded settings
|
||||
*/
|
||||
prepareLogin: function() {
|
||||
var username = $(jsxc.options.loginForm.jid).val();
|
||||
var password = $(jsxc.options.loginForm.pass).val();
|
||||
|
||||
if (typeof jsxc.options.loadSettings !== 'function') {
|
||||
jsxc.error('No loadSettings function given. Abort.');
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.gui.showWaitAlert($.t('Logging_in'));
|
||||
|
||||
var settings = jsxc.options.loadSettings.call(this, username, password);
|
||||
|
||||
if (settings === false || settings === null || typeof settings === 'undefined') {
|
||||
jsxc.warn('No settings provided');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeof settings.xmpp.username === 'string') {
|
||||
username = settings.xmpp.username;
|
||||
}
|
||||
|
||||
var resource = (settings.xmpp.resource) ? '/' + settings.xmpp.resource : '';
|
||||
var domain = settings.xmpp.domain;
|
||||
var jid;
|
||||
|
||||
if (username.match(/@(.*)$/)) {
|
||||
jid = (username.match(/\/(.*)$/)) ? username : username + resource;
|
||||
} else {
|
||||
jid = username + '@' + domain + resource;
|
||||
}
|
||||
|
||||
if (typeof jsxc.options.loginForm.preJid === 'function') {
|
||||
jid = jsxc.options.loginForm.preJid(jid);
|
||||
}
|
||||
|
||||
jsxc.bid = jsxc.jidToBid(jid);
|
||||
|
||||
settings.xmpp.username = jid.split('@')[0];
|
||||
settings.xmpp.domain = jid.split('@')[1].split('/')[0];
|
||||
settings.xmpp.resource = jid.split('@')[1].split('/')[1] || "";
|
||||
|
||||
$.each(settings, function(key, val) {
|
||||
jsxc.options.set(key, val);
|
||||
});
|
||||
|
||||
jsxc.options.xmpp.jid = jid;
|
||||
jsxc.options.xmpp.password = password;
|
||||
|
||||
return settings;
|
||||
},
|
||||
|
||||
/**
|
||||
* Called if the script is a slave
|
||||
*/
|
||||
onSlave: function() {
|
||||
jsxc.debug('I am the slave.');
|
||||
|
||||
jsxc.role_allocation = true;
|
||||
|
||||
jsxc.restoreRoster();
|
||||
jsxc.restoreWindows();
|
||||
jsxc.restoreCompleted = true;
|
||||
|
||||
$(document).trigger('restoreCompleted.jsxc');
|
||||
},
|
||||
|
||||
/**
|
||||
* Called if the script is the master
|
||||
*/
|
||||
onMaster: function() {
|
||||
jsxc.debug('I am master.');
|
||||
|
||||
jsxc.master = true;
|
||||
|
||||
// Init local storage
|
||||
jsxc.storage.setItem('alive', 0);
|
||||
jsxc.storage.setItem('alive_busy', 0);
|
||||
if (!jsxc.storage.getUserItem('windowlist')) {
|
||||
jsxc.storage.setUserItem('windowlist', []);
|
||||
}
|
||||
|
||||
// Sending keepalive signal
|
||||
jsxc.startKeepAlive();
|
||||
|
||||
if (jsxc.options.get('otr').enable) {
|
||||
// create or load DSA key and call _onMaster
|
||||
jsxc.otr.createDSA();
|
||||
} else {
|
||||
jsxc._onMaster();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Second half of the onMaster routine
|
||||
*/
|
||||
_onMaster: function() {
|
||||
|
||||
// create otr objects, if we lost the master
|
||||
if (jsxc.role_allocation) {
|
||||
$.each(jsxc.storage.getUserItem('windowlist'), function(index, val) {
|
||||
jsxc.otr.create(val);
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.role_allocation = true;
|
||||
|
||||
if (jsxc.restore && !jsxc.restoreCompleted) {
|
||||
jsxc.restoreRoster();
|
||||
jsxc.restoreWindows();
|
||||
jsxc.restoreCompleted = true;
|
||||
|
||||
$(document).trigger('restoreCompleted.jsxc');
|
||||
}
|
||||
|
||||
// Prepare notifications
|
||||
if (jsxc.restore) {
|
||||
var noti = jsxc.storage.getUserItem('notification');
|
||||
noti = (typeof noti === 'number')? noti : 2;
|
||||
if (jsxc.options.notification && noti > 0 && jsxc.notification.hasSupport()) {
|
||||
if (jsxc.notification.hasPermission()) {
|
||||
jsxc.notification.init();
|
||||
} else {
|
||||
jsxc.notification.prepareRequest();
|
||||
}
|
||||
} else {
|
||||
// No support => disable
|
||||
jsxc.options.notification = false;
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('connectionReady.jsxc', function() {
|
||||
jsxc.gui.updateAvatar($('#jsxc_avatar'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
});
|
||||
|
||||
jsxc.xmpp.login();
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if there is a master
|
||||
*/
|
||||
checkMaster: function() {
|
||||
jsxc.debug('check master');
|
||||
|
||||
jsxc.to = window.setTimeout(jsxc.onMaster, 1000);
|
||||
jsxc.storage.ink('alive');
|
||||
},
|
||||
|
||||
/**
|
||||
* Start sending keep-alive signal
|
||||
*/
|
||||
startKeepAlive: function() {
|
||||
jsxc.keepalive = window.setInterval(jsxc.keepAlive, jsxc.options.timeout - 1000);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends the keep-alive signal to signal that the master is still there.
|
||||
*/
|
||||
keepAlive: function() {
|
||||
jsxc.storage.ink('alive');
|
||||
|
||||
if (jsxc.role_allocation) {
|
||||
jsxc.storage.setItem('lastActivity', (new Date()).getTime());
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Send one keep-alive signal with higher timeout, and than resume with
|
||||
* normal signal
|
||||
*/
|
||||
keepBusyAlive: function() {
|
||||
if (jsxc.toBusy) {
|
||||
window.clearTimeout(jsxc.toBusy);
|
||||
}
|
||||
|
||||
if (jsxc.keepalive) {
|
||||
window.clearInterval(jsxc.keepalive);
|
||||
}
|
||||
|
||||
jsxc.storage.ink('alive_busy');
|
||||
jsxc.toBusy = window.setTimeout(jsxc.startKeepAlive, jsxc.options.busyTimeout - 1000);
|
||||
},
|
||||
|
||||
/**
|
||||
* Generates a random integer number between 0 and max
|
||||
*
|
||||
* @param {Integer} max
|
||||
* @return {Integer} random integer between 0 and max
|
||||
*/
|
||||
random: function(max) {
|
||||
return Math.floor(Math.random() * max);
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if there is a element with the given selector
|
||||
*
|
||||
* @param {String} selector jQuery selector
|
||||
* @return {Boolean}
|
||||
*/
|
||||
el_exists: function(selector) {
|
||||
return $(selector).length > 0;
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a CSS compatible string from a JID
|
||||
*
|
||||
* @param {type} jid Valid Jabber ID
|
||||
* @returns {String} css Compatible string
|
||||
*/
|
||||
jidToCid: function(jid) {
|
||||
jsxc.warn('jsxc.jidToCid is deprecated!');
|
||||
|
||||
var cid = Strophe.getBareJidFromJid(jid).replace('@', '-').replace(/\./g, '-').toLowerCase();
|
||||
|
||||
return cid;
|
||||
},
|
||||
|
||||
/**
|
||||
* Create comparable bar jid.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param jid
|
||||
* @returns comparable bar jid
|
||||
*/
|
||||
jidToBid: function(jid) {
|
||||
return Strophe.getBareJidFromJid(jid).toLowerCase();
|
||||
},
|
||||
|
||||
/**
|
||||
* Restore roster
|
||||
*/
|
||||
restoreRoster: function() {
|
||||
var buddies = jsxc.storage.getUserItem('buddylist');
|
||||
|
||||
if (!buddies || buddies.length === 0) {
|
||||
jsxc.debug('No saved buddylist.');
|
||||
|
||||
jsxc.gui.roster.empty();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(buddies, function(index, value) {
|
||||
jsxc.gui.roster.add(value);
|
||||
});
|
||||
|
||||
$(document).trigger('cloaded.roster.jsxc');
|
||||
},
|
||||
|
||||
/**
|
||||
* Restore all windows
|
||||
*/
|
||||
restoreWindows: function() {
|
||||
var windows = jsxc.storage.getUserItem('windowlist');
|
||||
|
||||
if (windows === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(windows, function(index, bid) {
|
||||
var window = jsxc.storage.getUserItem('window', bid);
|
||||
|
||||
if (!window) {
|
||||
jsxc.debug('Associated window-element is missing: ' + bid);
|
||||
return true;
|
||||
}
|
||||
|
||||
jsxc.gui.window.init(bid);
|
||||
|
||||
if (!window.minimize) {
|
||||
jsxc.gui.window.show(bid);
|
||||
} else {
|
||||
jsxc.gui.window.hide(bid);
|
||||
}
|
||||
|
||||
jsxc.gui.window.setText(bid, window.text);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* This method submits the specified login form.
|
||||
*/
|
||||
submitLoginForm: function() {
|
||||
var form = jsxc.options.loginForm.form.off('submit');
|
||||
|
||||
// Attach original events
|
||||
var submits = form.data('submits') || [];
|
||||
$.each(submits, function(index, val) {
|
||||
form.submit(val);
|
||||
});
|
||||
|
||||
if (form.find('#submit').length > 0) {
|
||||
form.find('#submit').click();
|
||||
} else {
|
||||
form.submit();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Escapes some characters to HTML character
|
||||
*/
|
||||
escapeHTML: function(text) {
|
||||
text = text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
||||
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes all html tags.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param text
|
||||
* @returns stripped text
|
||||
*/
|
||||
removeHTML: function(text) {
|
||||
return $('<span>').html(text).text();
|
||||
},
|
||||
|
||||
/**
|
||||
* Executes only one of the given events
|
||||
*
|
||||
* @param {string} obj.key event name
|
||||
* @param {function} obj.value function to execute
|
||||
* @returns {string} namespace of all events
|
||||
*/
|
||||
switchEvents: function(obj) {
|
||||
var ns = Math.random().toString(36).substr(2, 12);
|
||||
var self = this;
|
||||
|
||||
$.each(obj, function(key, val) {
|
||||
$(document).one(key + '.' + ns, function() {
|
||||
$(document).off('.' + ns);
|
||||
|
||||
val.apply(self, arguments);
|
||||
});
|
||||
});
|
||||
|
||||
return ns;
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if tab is hidden.
|
||||
*
|
||||
* @returns {boolean} True if tab is hidden
|
||||
*/
|
||||
isHidden: function() {
|
||||
var hidden = false;
|
||||
|
||||
if (typeof document.hidden !== 'undefined') {
|
||||
hidden = document.hidden;
|
||||
} else if (typeof document.webkitHidden !== 'undefined') {
|
||||
hidden = document.webkitHidden;
|
||||
} else if (typeof document.mozHidden !== 'undefined') {
|
||||
hidden = document.mozHidden;
|
||||
} else if (typeof document.msHidden !== 'undefined') {
|
||||
hidden = document.msHidden;
|
||||
}
|
||||
|
||||
// handle multiple tabs
|
||||
if (hidden && jsxc.master) {
|
||||
jsxc.storage.ink('hidden', 0);
|
||||
} else if (!hidden && !jsxc.master) {
|
||||
jsxc.storage.ink('hidden');
|
||||
}
|
||||
|
||||
return hidden;
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if tab has focus.
|
||||
*
|
||||
* @returns {boolean} True if tabs has focus
|
||||
*/
|
||||
hasFocus: function() {
|
||||
var focus = true;
|
||||
|
||||
if (typeof document.hasFocus === 'function') {
|
||||
focus = document.hasFocus();
|
||||
}
|
||||
|
||||
if (!focus && jsxc.master) {
|
||||
jsxc.storage.ink('focus', 0);
|
||||
} else if (focus && !jsxc.master) {
|
||||
jsxc.storage.ink('focus');
|
||||
}
|
||||
|
||||
return focus;
|
||||
},
|
||||
|
||||
/**
|
||||
* Executes the given function in jsxc namespace.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {string} fnName Function name
|
||||
* @param {array} fnParams Function parameters
|
||||
* @returns Function return value
|
||||
*/
|
||||
exec: function(fnName, fnParams) {
|
||||
var fnList = fnName.split('.');
|
||||
var fn = jsxc[fnList[0]];
|
||||
var i;
|
||||
for (i = 1; i < fnList.length; i++) {
|
||||
fn = fn[fnList[i]];
|
||||
}
|
||||
|
||||
if (typeof fn === 'function') {
|
||||
return fn.apply(null, fnParams);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Hash string into 32-bit signed integer.
|
||||
*
|
||||
* @memberOf jsxc
|
||||
* @param {string} str input string
|
||||
* @returns {integer} 32-bit signed integer
|
||||
*/
|
||||
hashStr: function(str) {
|
||||
var hash = 0, i;
|
||||
|
||||
if (str.length === 0) {
|
||||
return hash;
|
||||
}
|
||||
|
||||
for (i = 0; i < str.length; i++) {
|
||||
hash = ((hash << 5) - hash) + str.charCodeAt(i);
|
||||
hash |= 0; // Convert to 32bit integer
|
||||
}
|
||||
|
||||
return hash;
|
||||
}
|
||||
};
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* This namespace handle the notice system.
|
||||
*
|
||||
* @namspace jsxc.notice
|
||||
* @memberOf jsxc
|
||||
*/
|
||||
jsxc.notice = {
|
||||
/** Number of notices. */
|
||||
_num: 0,
|
||||
|
||||
/**
|
||||
* Loads the saved notices.
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
*/
|
||||
load: function() {
|
||||
// reset list
|
||||
$('#jsxc_notice ul li').remove();
|
||||
$('#jsxc_notice > span').text('');
|
||||
jsxc.notice._num = 0;
|
||||
|
||||
var saved = jsxc.storage.getUserItem('notices') || [];
|
||||
var key = null;
|
||||
|
||||
for (key in saved) {
|
||||
if (saved.hasOwnProperty(key)) {
|
||||
var val = saved[key];
|
||||
|
||||
jsxc.notice.add(val.msg, val.description, val.fnName, val.fnParams, key);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a new notice to the stack;
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param msg Header message
|
||||
* @param description Notice description
|
||||
* @param fnName Function name to be called if you open the notice
|
||||
* @param fnParams Array of params for function
|
||||
* @param id Notice id
|
||||
*/
|
||||
add: function(msg, description, fnName, fnParams, id) {
|
||||
var nid = id || Date.now();
|
||||
var list = $('#jsxc_notice ul');
|
||||
var notice = $('<li/>');
|
||||
|
||||
notice.click(function() {
|
||||
jsxc.notice.remove(nid);
|
||||
|
||||
jsxc.exec(fnName, fnParams);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
notice.text(msg);
|
||||
notice.attr('title', description || '');
|
||||
notice.attr('data-nid', nid);
|
||||
list.append(notice);
|
||||
|
||||
$('#jsxc_notice > span').text(++jsxc.notice._num);
|
||||
|
||||
if (!id) {
|
||||
var saved = jsxc.storage.getUserItem('notices') || {};
|
||||
saved[nid] = {
|
||||
msg: msg,
|
||||
description: description,
|
||||
fnName: fnName,
|
||||
fnParams: fnParams
|
||||
};
|
||||
jsxc.storage.setUserItem('notices', saved);
|
||||
|
||||
jsxc.notification.notify(msg, description || '', null, true, jsxc.CONST.SOUNDS.NOTICE);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes notice from stack
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param nid The notice id
|
||||
*/
|
||||
remove: function(nid) {
|
||||
var el = $('#jsxc_notice li[data-nid=' + nid + ']');
|
||||
|
||||
el.remove();
|
||||
$('#jsxc_notice > span').text(--jsxc.notice._num || '');
|
||||
|
||||
var s = jsxc.storage.getUserItem('notices');
|
||||
delete s[nid];
|
||||
jsxc.storage.setUserItem('notices', s);
|
||||
},
|
||||
|
||||
/**
|
||||
* Check if there is already a notice for the given function name.
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param {string} fnName Function name
|
||||
* @returns {boolean} True if there is >0 functions with the given name
|
||||
*/
|
||||
has: function(fnName) {
|
||||
var saved = jsxc.storage.getUserItem('notices') || [];
|
||||
var has = false;
|
||||
|
||||
$.each(saved, function(index, val){
|
||||
if (val.fnName === fnName) {
|
||||
has = true;
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return has;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,272 @@
|
||||
/**
|
||||
* This namespace handles the Notification API.
|
||||
*
|
||||
* @namespace jsxc.notification
|
||||
*/
|
||||
jsxc.notification = {
|
||||
|
||||
/** Current audio file. */
|
||||
audio: null,
|
||||
|
||||
/**
|
||||
* Register notification on incoming messages.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
*/
|
||||
init: function() {
|
||||
$(document).on('postmessagein.jsxc', function(event, bid, msg) {
|
||||
msg = (msg.match(/^\?OTR/)) ? $.t('Encrypted_message') : msg;
|
||||
var data = jsxc.storage.getUserItem('buddy', bid);
|
||||
|
||||
jsxc.notification.notify({
|
||||
title: $.t('New_message_from') + ' ' + data.name,
|
||||
msg: msg,
|
||||
soundFile: jsxc.CONST.SOUNDS.MSG,
|
||||
source: bid
|
||||
});
|
||||
});
|
||||
|
||||
$(document).on('callincoming.jingle', function() {
|
||||
jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL, true, true);
|
||||
});
|
||||
|
||||
$(document).on('accept.call.jsxc reject.call.jsxc', function() {
|
||||
jsxc.notification.stopSound();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Shows a pop up notification and optional play sound.
|
||||
*
|
||||
* @param title Title
|
||||
* @param msg Message
|
||||
* @param d Duration
|
||||
* @param force Should message also shown, if tab is visible?
|
||||
* @param soundFile Playing given sound file
|
||||
* @param loop Loop sound file?
|
||||
* @param source Bid which triggered this notification
|
||||
*/
|
||||
notify: function(title, msg, d, force, soundFile, loop, source) {
|
||||
if (!jsxc.options.notification || !jsxc.notification.hasPermission()) {
|
||||
return; // notifications disabled
|
||||
}
|
||||
|
||||
var o;
|
||||
|
||||
if (title !== null && typeof title === 'object') {
|
||||
o = title;
|
||||
} else {
|
||||
o = {
|
||||
title: title,
|
||||
msg: msg,
|
||||
duration: d,
|
||||
force: force,
|
||||
soundFile: soundFile,
|
||||
loop: loop,
|
||||
source: source
|
||||
};
|
||||
}
|
||||
|
||||
if (jsxc.hasFocus() && !o.force) {
|
||||
return; // Tab is visible
|
||||
}
|
||||
|
||||
var icon = o.icon || jsxc.options.root + '/img/XMPP_logo.png';
|
||||
|
||||
if (typeof o.source === 'string') {
|
||||
var data = jsxc.storage.getUserItem('buddy', o.source);
|
||||
var src = jsxc.storage.getUserItem('avatar', data.avatar);
|
||||
|
||||
if (typeof src === 'string' && src !== '0') {
|
||||
icon = src;
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.toNotification = setTimeout(function() {
|
||||
|
||||
if (typeof o.soundFile === 'string') {
|
||||
jsxc.notification.playSound(o.soundFile, o.loop, o.force);
|
||||
}
|
||||
|
||||
var popup = new Notification($.t(o.title), {
|
||||
body: $.t(o.msg),
|
||||
icon: icon
|
||||
});
|
||||
|
||||
var duration = o.duration || jsxc.options.popupDuration;
|
||||
|
||||
if (duration > 0) {
|
||||
setTimeout(function() {
|
||||
popup.close();
|
||||
}, duration);
|
||||
}
|
||||
}, jsxc.toNotificationDelay);
|
||||
},
|
||||
|
||||
/**
|
||||
* Checks if browser has support for notifications and add on chrome to the
|
||||
* default api.
|
||||
*
|
||||
* @returns {Boolean} True if the browser has support.
|
||||
*/
|
||||
hasSupport: function() {
|
||||
if (window.webkitNotifications) {
|
||||
// prepare chrome
|
||||
|
||||
window.Notification = function(title, opt) {
|
||||
var popup = window.webkitNotifications.createNotification(null, title, opt.body);
|
||||
popup.show();
|
||||
|
||||
popup.close = function() {
|
||||
popup.cancel();
|
||||
};
|
||||
|
||||
return popup;
|
||||
};
|
||||
|
||||
var permission;
|
||||
switch (window.webkitNotifications.checkPermission()) {
|
||||
case 0:
|
||||
permission = jsxc.CONST.NOTIFICATION_GRANTED;
|
||||
break;
|
||||
case 2:
|
||||
permission = jsxc.CONST.NOTIFICATION_DENIED;
|
||||
break;
|
||||
default: // 1
|
||||
permission = jsxc.CONST.NOTIFICATION_DEFAULT;
|
||||
}
|
||||
window.Notification.permission = permission;
|
||||
|
||||
window.Notification.requestPermission = function(func) {
|
||||
window.webkitNotifications.requestPermission(func);
|
||||
};
|
||||
|
||||
return true;
|
||||
} else if (window.Notification) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Ask user on first incoming message if we should inform him about new
|
||||
* messages.
|
||||
*/
|
||||
prepareRequest: function() {
|
||||
|
||||
if (jsxc.notice.has('gui.showRequestNotification')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$(document).one('postmessagein.jsxc', function() {
|
||||
setTimeout(function() {
|
||||
jsxc.notice.add($.t('Notifications') + '?', $.t('Should_we_notify_you_'), 'gui.showRequestNotification');
|
||||
}, 1000);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Request notification permission.
|
||||
*/
|
||||
requestPermission: function() {
|
||||
window.Notification.requestPermission(function(status) {
|
||||
if (window.Notification.permission !== status) {
|
||||
window.Notification.permission = status;
|
||||
}
|
||||
|
||||
if (jsxc.notification.hasPermission()) {
|
||||
$(document).trigger('notificationready.jsxc');
|
||||
} else {
|
||||
$(document).trigger('notificationfailure.jsxc');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Check permission.
|
||||
*
|
||||
* @returns {Boolean} True if we have the permission
|
||||
*/
|
||||
hasPermission: function() {
|
||||
return window.Notification.permission === jsxc.CONST.NOTIFICATION_GRANTED;
|
||||
},
|
||||
|
||||
/**
|
||||
* Plays the given file.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {string} soundFile File relative to the sound directory
|
||||
* @param {boolean} loop True for loop
|
||||
* @param {boolean} force Play even if a tab is visible. Default: false.
|
||||
*/
|
||||
playSound: function(soundFile, loop, force) {
|
||||
if (!jsxc.master) {
|
||||
// only master plays sound
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.options.get('muteNotification') || jsxc.storage.getUserItem('presence') === 'dnd') {
|
||||
// sound mute or own presence is dnd
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.hasFocus() && !force) {
|
||||
// tab is visible
|
||||
return;
|
||||
}
|
||||
|
||||
// stop current audio file
|
||||
jsxc.notification.stopSound();
|
||||
|
||||
var audio = new Audio(jsxc.options.root + '/sound/' + soundFile);
|
||||
audio.loop = loop || false;
|
||||
audio.play();
|
||||
|
||||
jsxc.notification.audio = audio;
|
||||
},
|
||||
|
||||
/**
|
||||
* Stop/remove current sound.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
*/
|
||||
stopSound: function() {
|
||||
var audio = jsxc.notification.audio;
|
||||
|
||||
if (typeof audio !== 'undefined' && audio !== null) {
|
||||
audio.pause();
|
||||
jsxc.notification.audio = null;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Mute sound.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {boolean} external True if triggered from external tab. Default:
|
||||
* false.
|
||||
*/
|
||||
muteSound: function(external) {
|
||||
$('#jsxc_menu .jsxc_muteNotification').text($.t('Unmute'));
|
||||
|
||||
if (external !== true) {
|
||||
jsxc.options.set('muteNotification', true);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Unmute sound.
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {boolean} external True if triggered from external tab. Default:
|
||||
* false.
|
||||
*/
|
||||
unmuteSound: function(external) {
|
||||
$('#jsxc_menu .jsxc_muteNotification').text($.t('Mute'));
|
||||
|
||||
if (external !== true) {
|
||||
jsxc.options.set('muteNotification', false);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,169 @@
|
||||
/**
|
||||
* Set some options for the chat.
|
||||
*
|
||||
* @namespace jsxc.options
|
||||
*/
|
||||
jsxc.options = {
|
||||
|
||||
/** name of container application (e.g. owncloud or SOGo) */
|
||||
app_name: 'web applications',
|
||||
|
||||
/** Timeout for the keepalive signal */
|
||||
timeout: 3000,
|
||||
|
||||
/** Timeout for the keepalive signal if the master is busy */
|
||||
busyTimeout: 15000,
|
||||
|
||||
/** OTR options */
|
||||
otr: {
|
||||
enable: true,
|
||||
ERROR_START_AKE: false,
|
||||
debug: false,
|
||||
SEND_WHITESPACE_TAG: true,
|
||||
WHITESPACE_START_AKE: true
|
||||
},
|
||||
|
||||
/** xmpp options */
|
||||
xmpp: {
|
||||
url: null,
|
||||
jid: null,
|
||||
domain: null,
|
||||
password: null,
|
||||
overwrite: false,
|
||||
onlogin: true
|
||||
},
|
||||
|
||||
/** default xmpp priorities */
|
||||
priority: {
|
||||
online: 0,
|
||||
chat: 0,
|
||||
away: 0,
|
||||
xa: 0,
|
||||
dnd: 0
|
||||
},
|
||||
|
||||
/** If all 3 properties are set, the login form is used */
|
||||
loginForm: {
|
||||
/** jquery object from form */
|
||||
form: null,
|
||||
|
||||
/** jquery object from input element which contains the jid */
|
||||
jid: null,
|
||||
|
||||
/** jquery object from input element which contains the password */
|
||||
pass: null,
|
||||
|
||||
/** manipulate JID from input element */
|
||||
preJid: function(jid) {
|
||||
return jid;
|
||||
},
|
||||
|
||||
/**
|
||||
* Action after connected: submit [String] Submit form, false [boolean] Do
|
||||
* nothing, continue [String] Start chat
|
||||
*/
|
||||
onConnected: 'submit',
|
||||
|
||||
/**
|
||||
* Action after auth fail: submit [String] Submit form, false [boolean] Do
|
||||
* nothing, ask [String] Show auth fail dialog
|
||||
*/
|
||||
onAuthFail: 'submit'
|
||||
},
|
||||
|
||||
/** jquery object from logout element */
|
||||
logoutElement: null,
|
||||
|
||||
/** How many messages should be logged? */
|
||||
numberOfMsg: 10,
|
||||
|
||||
/** Default language */
|
||||
defaultLang: 'en',
|
||||
|
||||
/** auto language detection */
|
||||
autoLang: true,
|
||||
|
||||
/** Place for roster */
|
||||
rosterAppend: 'body',
|
||||
|
||||
/** Should we use the HTML5 notification API? */
|
||||
notification: true,
|
||||
|
||||
/** duration for notification */
|
||||
popupDuration: 6000,
|
||||
|
||||
/** Absolute path root of JSXC installation */
|
||||
root: '',
|
||||
|
||||
/** Timeout for restore in ms */
|
||||
loginTimeout: 1000 * 60 * 10,
|
||||
|
||||
/**
|
||||
* This function decides wether the roster will be displayed or not if no
|
||||
* connection is found.
|
||||
*/
|
||||
displayRosterMinimized: function() {
|
||||
return false;
|
||||
},
|
||||
|
||||
/** Set to true if you want to hide offline buddies. */
|
||||
hideOffline: false,
|
||||
|
||||
/** Mute notification sound? */
|
||||
muteNotification: false,
|
||||
|
||||
/**
|
||||
* If no avatar is found, this function is called.
|
||||
*
|
||||
* @param jid Jid of that user.
|
||||
* @this {jQuery} Elements to update with probable .jsxc_avatar elements
|
||||
*/
|
||||
defaultAvatar: function(jid) {
|
||||
jsxc.gui.avatarPlaceholder($(this).find('.jsxc_avatar'), jid);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns permanent saved settings and overwrite default jsxc.options.
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @param username String username
|
||||
* @param password String password
|
||||
* @returns {object} at least xmpp.url
|
||||
*/
|
||||
loadSettings: function() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Call this function to save user settings permanent.
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @param data Holds all data as key/value
|
||||
* @returns {boolean} false if function failes
|
||||
*/
|
||||
saveSettinsPermanent: function() {
|
||||
|
||||
},
|
||||
|
||||
carbons: {
|
||||
/** Enable carbon copies? */
|
||||
enable: false
|
||||
},
|
||||
|
||||
/**
|
||||
* Processes user list.
|
||||
*
|
||||
* @callback getUsers-cb
|
||||
* @param {object} list List of users, key: username, value: alias
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns a list of usernames and aliases
|
||||
*
|
||||
* @function getUsers
|
||||
* @memberOf jsxc.options
|
||||
* @param {string} search Search token (start with)
|
||||
* @param {getUsers-cb} cb Called with list of users
|
||||
*/
|
||||
getUsers: null
|
||||
};
|
||||
@@ -0,0 +1,462 @@
|
||||
|
||||
/**
|
||||
* @namespace jsxc.otr
|
||||
*/
|
||||
jsxc.otr = {
|
||||
/** list of otr objects */
|
||||
objects: {},
|
||||
|
||||
dsaFallback: null,
|
||||
/**
|
||||
* Handler for otr receive event
|
||||
*
|
||||
* @memberOf jsxc.otr
|
||||
* @param {Object} d
|
||||
* @param {string} d.bid
|
||||
* @param {string} d.msg received message
|
||||
* @param {boolean} d.encrypted True, if msg was encrypted.
|
||||
* @param {boolean} d.forwarded
|
||||
* @param {string} d.stamp timestamp
|
||||
*/
|
||||
receiveMessage: function(d) {
|
||||
var bid = d.bid;
|
||||
|
||||
if (jsxc.otr.objects[bid].msgstate !== OTR.CONST.MSGSTATE_PLAINTEXT) {
|
||||
jsxc.otr.backup(bid);
|
||||
}
|
||||
|
||||
if (jsxc.otr.objects[bid].msgstate !== OTR.CONST.MSGSTATE_PLAINTEXT && !d.encrypted) {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Received_an_unencrypted_message') + '. [' + d.msg + ']', d.encrypted, d.forwarded, d.stamp);
|
||||
} else {
|
||||
jsxc.gui.window.postMessage(bid, 'in', d.msg, d.encrypted, d.forwarded, d.stamp);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handler for otr send event
|
||||
*
|
||||
* @param {string} jid
|
||||
* @param {string} msg message to be send
|
||||
*/
|
||||
sendMessage: function(jid, msg, uid) {
|
||||
if (jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate !== 0) {
|
||||
jsxc.otr.backup(jsxc.jidToBid(jid));
|
||||
}
|
||||
|
||||
jsxc.xmpp._sendMessage(jid, msg, uid);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create new otr instance
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
create: function(bid) {
|
||||
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!jsxc.options.otr.priv) {
|
||||
return;
|
||||
}
|
||||
|
||||
// save list of otr objects
|
||||
var ol = jsxc.storage.getUserItem('otrlist') || [];
|
||||
if (ol.indexOf(bid) < 0) {
|
||||
ol.push(bid);
|
||||
jsxc.storage.setUserItem('otrlist', ol);
|
||||
}
|
||||
|
||||
jsxc.otr.objects[bid] = new OTR(jsxc.options.otr);
|
||||
|
||||
if (jsxc.options.otr.SEND_WHITESPACE_TAG) {
|
||||
jsxc.otr.objects[bid].SEND_WHITESPACE_TAG = true;
|
||||
}
|
||||
|
||||
if (jsxc.options.otr.WHITESPACE_START_AKE) {
|
||||
jsxc.otr.objects[bid].WHITESPACE_START_AKE = true;
|
||||
}
|
||||
|
||||
jsxc.otr.objects[bid].on('status', function(status) {
|
||||
var data = jsxc.storage.getUserItem('buddy', bid);
|
||||
|
||||
if (data === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case OTR.CONST.STATUS_SEND_QUERY:
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('trying_to_start_private_conversation'));
|
||||
break;
|
||||
case OTR.CONST.STATUS_AKE_SUCCESS:
|
||||
data.fingerprint = jsxc.otr.objects[bid].their_priv_pk.fingerprint();
|
||||
data.msgstate = OTR.CONST.MSGSTATE_ENCRYPTED;
|
||||
|
||||
var msg = (jsxc.otr.objects[bid].trust ? $.t('Verified') : $.t('Unverified')) + ' ' + $.t('private_conversation_started');
|
||||
jsxc.gui.window.postMessage(bid, 'sys', msg);
|
||||
break;
|
||||
case OTR.CONST.STATUS_END_OTR:
|
||||
data.fingerprint = null;
|
||||
|
||||
if (jsxc.otr.objects[bid].msgstate === OTR.CONST.MSGSTATE_PLAINTEXT) {
|
||||
// we abort the private conversation
|
||||
|
||||
data.msgstate = OTR.CONST.MSGSTATE_PLAINTEXT;
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('private_conversation_aborted'));
|
||||
|
||||
} else {
|
||||
// the buddy abort the private conversation
|
||||
|
||||
data.msgstate = OTR.CONST.MSGSTATE_FINISHED;
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('your_buddy_closed_the_private_conversation_you_should_do_the_same'));
|
||||
}
|
||||
break;
|
||||
case OTR.CONST.STATUS_SMP_HANDLE:
|
||||
jsxc.keepBusyAlive();
|
||||
break;
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('buddy', bid, data);
|
||||
|
||||
// for encryption and verification state
|
||||
jsxc.gui.update(bid);
|
||||
});
|
||||
|
||||
jsxc.otr.objects[bid].on('smp', function(type, data) {
|
||||
switch (type) {
|
||||
case 'question': // verification request received
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Authentication_request_received'));
|
||||
|
||||
if ($('#jsxc_dialog').length > 0) {
|
||||
jsxc.otr.objects[bid].sm.abort();
|
||||
break;
|
||||
}
|
||||
|
||||
jsxc.otr.onSmpQuestion(bid, data);
|
||||
jsxc.storage.setUserItem('smp_' + bid, {
|
||||
data: data || null
|
||||
});
|
||||
|
||||
break;
|
||||
case 'trust': // verification completed
|
||||
jsxc.otr.objects[bid].trust = data;
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'trust', data);
|
||||
jsxc.otr.backup(bid);
|
||||
jsxc.gui.update(bid);
|
||||
|
||||
if (data) {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('conversation_is_now_verified'));
|
||||
} else {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('authentication_failed'));
|
||||
}
|
||||
jsxc.storage.removeUserItem('smp_' + bid);
|
||||
jsxc.gui.dialog.close();
|
||||
break;
|
||||
case 'abort':
|
||||
jsxc.gui.window.postMessage(bid, 'sys', $.t('Authentication_aborted'));
|
||||
break;
|
||||
default:
|
||||
jsxc.debug('[OTR] sm callback: Unknown type: ' + type);
|
||||
}
|
||||
});
|
||||
|
||||
// Receive message
|
||||
jsxc.otr.objects[bid].on('ui', function(msg, encrypted, meta) {
|
||||
jsxc.otr.receiveMessage({
|
||||
bid: bid,
|
||||
msg: msg,
|
||||
encrypted: encrypted === true,
|
||||
stamp: meta.stamp,
|
||||
forwarded: meta.forwarded
|
||||
});
|
||||
});
|
||||
|
||||
// Send message
|
||||
jsxc.otr.objects[bid].on('io', function(msg, uid) {
|
||||
var jid = jsxc.gui.window.get(bid).data('jid') || jsxc.otr.objects[bid].jid;
|
||||
|
||||
jsxc.otr.objects[bid].jid = jid;
|
||||
|
||||
jsxc.otr.sendMessage(jid, msg, uid);
|
||||
});
|
||||
|
||||
jsxc.otr.objects[bid].on('error', function(err) {
|
||||
// Handle this case in jsxc.otr.receiveMessage
|
||||
if (err !== 'Received an unencrypted message.') {
|
||||
jsxc.gui.window.postMessage(bid, 'sys', '[OTR] ' + $.t(err));
|
||||
}
|
||||
|
||||
jsxc.error('[OTR] ' + err);
|
||||
});
|
||||
|
||||
jsxc.otr.restore(bid);
|
||||
},
|
||||
|
||||
/**
|
||||
* show verification dialog with related part (secret or question)
|
||||
*
|
||||
* @param {type} bid
|
||||
* @param {string} [data]
|
||||
* @returns {undefined}
|
||||
*/
|
||||
onSmpQuestion: function(bid, data) {
|
||||
jsxc.gui.showVerification(bid);
|
||||
|
||||
$('#jsxc_dialog select').prop('selectedIndex', (data ? 2 : 3)).change();
|
||||
$('#jsxc_dialog > div:eq(0)').hide();
|
||||
|
||||
if (data) {
|
||||
$('#jsxc_dialog > div:eq(2)').find('#jsxc_quest').val(data).prop('disabled', true);
|
||||
$('#jsxc_dialog > div:eq(2)').find('.creation').text('Answer');
|
||||
$('#jsxc_dialog > div:eq(2)').find('.jsxc_explanation').text($.t('your_buddy_is_attempting_to_determine_') + ' ' + $.t('to_authenticate_to_your_buddy') + $.t('enter_the_answer_and_click_answer'));
|
||||
} else {
|
||||
$('#jsxc_dialog > div:eq(3)').find('.jsxc_explanation').text($.t('your_buddy_is_attempting_to_determine_') + ' ' + $.t('to_authenticate_to_your_buddy') + $.t('enter_the_secret'));
|
||||
}
|
||||
|
||||
$('#jsxc_dialog .jsxc_close').click(function() {
|
||||
jsxc.storage.removeUserItem('smp_' + bid);
|
||||
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].sm.abort();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Send verification request to buddy
|
||||
*
|
||||
* @param {string} bid
|
||||
* @param {string} sec secret
|
||||
* @param {string} [quest] question
|
||||
* @returns {undefined}
|
||||
*/
|
||||
sendSmpReq: function(bid, sec, quest) {
|
||||
jsxc.keepBusyAlive();
|
||||
|
||||
jsxc.otr.objects[bid].smpSecret(sec, quest || '');
|
||||
},
|
||||
|
||||
/**
|
||||
* Toggle encryption state
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
toggleTransfer: function(bid) {
|
||||
if (jsxc.storage.getUserItem('buddy', bid).msgstate === 0) {
|
||||
jsxc.otr.goEncrypt(bid);
|
||||
} else {
|
||||
jsxc.otr.goPlain(bid);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Send request to encrypt the session
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
goEncrypt: function(bid) {
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].sendQueryMsg();
|
||||
} else {
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 1);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Abort encryptet session
|
||||
*
|
||||
* @param {type} bid
|
||||
* @param cb callback
|
||||
* @returns {undefined}
|
||||
*/
|
||||
goPlain: function(bid, cb) {
|
||||
if (jsxc.master) {
|
||||
jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid], cb);
|
||||
jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]);
|
||||
|
||||
jsxc.otr.backup(bid);
|
||||
} else {
|
||||
jsxc.storage.updateUserItem('buddy', bid, 'transferReq', 0);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Backups otr session
|
||||
*
|
||||
* @param {string} bid
|
||||
*/
|
||||
backup: function(bid) {
|
||||
var o = jsxc.otr.objects[bid]; // otr object
|
||||
var r = {}; // return value
|
||||
|
||||
if (o === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// all variables which should be saved
|
||||
var savekey = [ 'jid', 'our_instance_tag', 'msgstate', 'authstate', 'fragment', 'their_y', 'their_old_y', 'their_keyid', 'their_instance_tag', 'our_dh', 'our_old_dh', 'our_keyid', 'sessKeys', 'storedMgs', 'oldMacKeys', 'trust', 'transmittedRS', 'ssid', 'receivedPlaintext', 'authstate', 'send_interval' ];
|
||||
|
||||
var i;
|
||||
for (i = 0; i < savekey.length; i++) {
|
||||
r[savekey[i]] = JSON.stringify(o[savekey[i]]);
|
||||
}
|
||||
|
||||
if (o.their_priv_pk !== null) {
|
||||
r.their_priv_pk = JSON.stringify(o.their_priv_pk.packPublic());
|
||||
}
|
||||
|
||||
if (o.ake.otr_version && o.ake.otr_version !== '') {
|
||||
r.otr_version = JSON.stringify(o.ake.otr_version);
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('otr', bid, r);
|
||||
},
|
||||
|
||||
/**
|
||||
* Restore old otr session
|
||||
*
|
||||
* @param {string} bid
|
||||
*/
|
||||
restore: function(bid) {
|
||||
var o = jsxc.otr.objects[bid];
|
||||
var d = jsxc.storage.getUserItem('otr', bid);
|
||||
|
||||
if (o !== null || d !== null) {
|
||||
var key;
|
||||
for (key in d) {
|
||||
if (d.hasOwnProperty(key)) {
|
||||
var val = JSON.parse(d[key]);
|
||||
if (key === 'their_priv_pk' && val !== null) {
|
||||
val = DSA.parsePublic(val);
|
||||
}
|
||||
if (key === 'otr_version' && val !== null) {
|
||||
o.ake.otr_version = val;
|
||||
} else {
|
||||
o[key] = val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.otr.objects[bid] = o;
|
||||
|
||||
if (o.msgstate === 1 && o.their_priv_pk !== null) {
|
||||
o._smInit.call(jsxc.otr.objects[bid]);
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.otr.enable(bid);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create or load DSA key
|
||||
*
|
||||
* @returns {unresolved}
|
||||
*/
|
||||
createDSA: function() {
|
||||
if (jsxc.options.otr.priv) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (jsxc.storage.getUserItem('key') === null) {
|
||||
var msg = $.t('Creating_your_private_key_');
|
||||
var worker = null;
|
||||
|
||||
if (Worker) {
|
||||
// try to create web-worker
|
||||
|
||||
try {
|
||||
worker = new Worker(jsxc.options.root + '/lib/otr/build/dsa-webworker.js');
|
||||
} catch (err) {
|
||||
jsxc.warn('Couldn\'t create web-worker.', err);
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.otr.dsaFallback = (worker === null);
|
||||
|
||||
if (!jsxc.otr.dsaFallback) {
|
||||
// create DSA key in background
|
||||
|
||||
jsxc._onMaster();
|
||||
|
||||
worker.onmessage = function(e) {
|
||||
var type = e.data.type;
|
||||
var val = e.data.val;
|
||||
|
||||
if (type === 'debug') {
|
||||
jsxc.debug(val);
|
||||
} else if (type === 'data') {
|
||||
jsxc.otr.DSAready(DSA.parsePrivate(val));
|
||||
}
|
||||
};
|
||||
|
||||
// start worker
|
||||
worker.postMessage({
|
||||
imports: [ jsxc.options.root + '/lib/otr/vendor/salsa20.js', jsxc.options.root + '/lib/otr/vendor/bigint.js', jsxc.options.root + '/lib/otr/vendor/crypto.js', jsxc.options.root + '/lib/otr/vendor/eventemitter.js', jsxc.options.root + '/lib/otr/lib/const.js', jsxc.options.root + '/lib/otr/lib/helpers.js', jsxc.options.root + '/lib/otr/lib/dsa.js' ],
|
||||
seed: BigInt.getSeed(),
|
||||
debug: true
|
||||
});
|
||||
|
||||
} else {
|
||||
// fallback
|
||||
|
||||
jsxc.gui.dialog.open(jsxc.gui.template.get('waitAlert', null, msg), {
|
||||
noClose: true
|
||||
});
|
||||
|
||||
jsxc.debug('DSA key creation started.');
|
||||
|
||||
// wait until the wait alert is opened
|
||||
setTimeout(function() {
|
||||
var dsa = new DSA();
|
||||
jsxc.otr.DSAready(dsa);
|
||||
}, 500);
|
||||
}
|
||||
} else {
|
||||
jsxc.debug('DSA key loaded');
|
||||
jsxc.options.otr.priv = DSA.parsePrivate(jsxc.storage.getUserItem('key'));
|
||||
|
||||
jsxc.otr._createDSA();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Ending of createDSA().
|
||||
*/
|
||||
_createDSA: function() {
|
||||
|
||||
jsxc.storage.setUserItem('priv_fingerprint', jsxc.options.otr.priv.fingerprint());
|
||||
|
||||
if (jsxc.otr.dsaFallback !== false) {
|
||||
jsxc._onMaster();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Ending of DSA key generation.
|
||||
*
|
||||
* @param {DSA} dsa DSA object
|
||||
*/
|
||||
DSAready: function(dsa) {
|
||||
jsxc.storage.setUserItem('key', dsa.packPrivate());
|
||||
jsxc.options.otr.priv = dsa;
|
||||
|
||||
// close wait alert
|
||||
if (jsxc.otr.dsaFallback) {
|
||||
jsxc.gui.dialog.close();
|
||||
} else {
|
||||
$.each(jsxc.storage.getUserItem('windowlist'), function(index, val) {
|
||||
jsxc.otr.create(val);
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.otr._createDSA();
|
||||
},
|
||||
|
||||
enable: function(bid) {
|
||||
jsxc.gui.window.get(bid).find('.jsxc_otr').removeClass('jsxc_disabled');
|
||||
}
|
||||
};
|
||||
Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais
Referência em uma Nova Issue
Bloquear um usuário