Comparar commits

...

11 Commits

Autor SHA1 Mensagem Data
sualko 515bde12be build v3.0.0 2016-03-11 17:42:14 +01:00
sualko c2295e6b02 merge jsxc.webrtc.css into jsxc.css 2016-03-11 17:28:03 +01:00
sualko 06e1968140 fix file abort button 2016-03-11 17:22:26 +01:00
sualko a7f5c90d76 fix debug information 2016-03-11 14:20:22 +01:00
sualko d556d74011 fix blank video (fix #281) 2016-03-11 14:00:54 +01:00
sualko 91f8c5a2f1 fix muc message without id (fix #282) 2016-03-10 13:26:03 +01:00
sualko 53067ae9b6 fix type error in jingle error (#287) 2016-03-10 12:08:28 +01:00
sualko 0a75b8e121 Merge branch 'master' of github.com:jsxc/jsxc 2016-03-10 10:47:24 +01:00
Klaus c3a84c88e0 Merge pull request #283 from Perlence/stop-localstream
Stop each MediaStreamTrack individually
2016-03-10 10:44:25 +01:00
Sviatoslav Abakumov ec5b9a80f2 Stop each MediaStreamTrack individually
Method MediaStream.stop has been deprecated since Google Chrome 45 in
favor of stopping each track.
2016-03-09 15:07:48 +03:00
sualko 629395fb1b use cb for saveSettingsPermanent 2016-02-10 12:20:13 +01:00
53 arquivos alterados com 7610 adições e 2320 exclusões
+46
Ver Arquivo
@@ -1,3 +1,49 @@
v3.0.0 / 2016-03-11
===
### New features
- responsive material-like design
- refactoring settings dialog
- over 1600 emoticons from emojione
- support mobile devices
- new video call interface
- status usable for daltonian
- use css for animations
- file transfer via webrtc
- previews
- show progress
- use local date and time format
- add no-video-call-possible icon
- add disabled otr icon
- add padlock icon to message
- display line breaks in chat messages
- hide avatar for connected messages (muc)
- auto approve incoming contact request (if contact is already in our roster)
### Bug fixes
- use crendential when performing turn credential ajax crossdomain call
- update favico.js
- update strophe.js
- update strophe.jinglejs
- improve otr verification
- update locales
- reset unread counter on logout
- fix blank video
- fix hang up video call
- fix debug information
- fix muc message without id
- fix type error in jingle error
### Developer changes
- remove "develop" branch and use instead "master" branch
- Makefile for setup developer environment
- remove loginTimeout option
- add new jsxc.start function to start chat with password or sid/rid
- add new option loginForm.ifFound (deprecates loginForm.attachIfFound)
- add named dialogs
- new message object
- remove outdated stuff
- merge jsxc.webrtc.css into jsxc.css
v2.1.5 / 2015-11-17
===
- Reset TURN credentials on login
+328 -9
Ver Arquivo
@@ -548,13 +548,16 @@ img.mfp-img {
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
-ms-transform: scale(0.75);
transform: scale(0.75); }
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
-ms-transform-origin: 0;
transform-origin: 0; }
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
-ms-transform-origin: 100%;
transform-origin: 100%; }
.mfp-container {
padding-left: 6px;
padding-right: 6px; } }
@@ -2948,6 +2951,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
transition: right 0.5s; }
#jsxc_roster.jsxc_state_hidden #jsxc_toggleRoster:before {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg); }
#jsxc_roster.jsxc_state_shown {
display: block;
@@ -2977,6 +2981,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
border-width: 6px 4px 6px 0;
border-color: transparent whitesmoke;
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg); }
.jsxc_rosteritem {
@@ -3734,6 +3739,7 @@ li[data-type="groupchat"] .jsxc_video {
#jsxc_dialog {
padding: 20px;
min-width: 320px;
max-width: 100%;
display: inline-block;
text-align: left;
position: relative;
@@ -3956,12 +3962,27 @@ img.jsxc_vCard {
.jsxc_btn {
width: auto;
min-width: 25px;
padding: 5px;
background-color: rgba(240, 240, 240, 0.9);
font-weight: bold;
color: #555;
border: 1px solid rgba(190, 190, 190, 0.9);
cursor: pointer; }
display: inline-block;
padding: 6px 12px;
margin: 0px 2px;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px; }
.jsxc_btn.jsxc_btn-default {
border-color: #ccc;
color: #555;
background-color: rgba(240, 240, 240, 0.9); }
.jsxc_btn.jsxc_btn-primary {
color: #fff;
background-color: #337ab7;
@@ -4076,3 +4097,301 @@ img.jsxc_vCard {
@media (min-width: 768px) {
.jsxc_more {
width: 25px; } }
.jsxc_remotevideo, .jsxc_noRemoteVideo {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 9000;
background-color: #999999; }
#jsxc_webrtc {
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
z-index: 9999;
background-color: black; }
#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: #bbb; }
.jsxc_videoContainer {
position: absolute;
top: 0;
left: 0;
right: 0px;
bottom: 0px;
background-color: #999999; }
.jsxc_videoContainer video {
display: none; }
.jsxc_videoContainer .jsxc_noRemoteVideo {
display: none; }
@media (min-width: 768px) {
.jsxc_videoContainer {
right: 250px; }
.jsxc_videoContainer .jsxc_controlbar {
opacity: 0; }
.jsxc_videoContainer:hover .jsxc_controlbar {
opacity: 1.0; } }
.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('../img/camera_icon_white.svg');
background-repeat: no-repeat;
background-position: center center;
background-size: 15px 15px;
opacity: 0.4; }
div.jsxc_video.jsxc_disabled {
background-image: url('../img/camera_disabled_icon_white.svg'); }
div.jsxc_video:not(.jsxc_disabled):hover {
opacity: 1.0; }
.jsxc_controlbar {
position: absolute;
top: 50px;
left: 0;
right: 0px;
text-align: center;
z-index: 9090;
-webkit-transition: 1s opacity;
transition: 1s opacity;
opacity: 0; }
@media (min-width: 768px) {
.jsxc_controlbar {
bottom: 5%;
top: initial; } }
.jsxc_controlbar.jsxc_visible {
opacity: 1.0; }
.jsxc_controlbar > div {
background-color: rgba(0, 0, 0, 0.5);
height: 44px;
border-radius: 22px;
padding: 0px 5px;
display: inline-block; }
.jsxc_controlbar .jsxc_videoControl {
height: 44px;
width: 44px;
margin: 0 5px;
background-position: center;
background-repeat: no-repeat;
background-size: 90%;
cursor: pointer;
display: inline-block;
opacity: 0.8; }
.jsxc_controlbar .jsxc_videoControl:hover {
opacity: 1.0; }
.jsxc_controlbar .jsxc_hangUp {
background-image: url('../img/hang_up_red.svg'); }
.jsxc_controlbar .jsxc_fullscreen {
background-image: url('../img/fullscreen_white.svg'); }
.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: absolute;
top: 0;
right: 0;
bottom: 0;
width: 250px;
background-color: whitesmoke;
display: none; }
@media (min-width: 768px) {
.jsxc_chatarea {
display: block; } }
.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: 100%;
height: 100%;
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; }
-286
Ver Arquivo
@@ -1,286 +0,0 @@
.jsxc_remotevideo, .jsxc_noRemoteVideo {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 9000;
background-color: #999999; }
#jsxc_webrtc {
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
z-index: 9999;
background-color: black; }
#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: #bbb; }
.jsxc_videoContainer {
position: absolute;
top: 0;
left: 0;
right: 0px;
bottom: 0px;
background-color: #999999; }
.jsxc_videoContainer video {
display: none; }
.jsxc_videoContainer .jsxc_noRemoteVideo {
display: none; }
@media (min-width: 768px) {
.jsxc_videoContainer {
right: 250px; }
.jsxc_videoContainer .jsxc_controlbar {
opacity: 0;
-webkit-transition: 1s opacity;
transition: 1s opacity; }
.jsxc_videoContainer:hover .jsxc_controlbar {
opacity: 1.0; } }
.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('../img/camera_icon_white.svg');
background-repeat: no-repeat;
background-position: center center;
background-size: 15px 15px;
opacity: 0.4; }
div.jsxc_video.jsxc_disabled {
background-image: url('../img/camera_disabled_icon_white.svg'); }
div.jsxc_video:not(.jsxc_disabled):hover {
opacity: 1.0; }
.jsxc_controlbar {
position: absolute;
top: 50px;
left: 0;
right: 0px;
text-align: center;
z-index: 9090; }
.jsxc_controlbar > div {
background-color: rgba(0, 0, 0, 0.5);
height: 44px;
border-radius: 22px;
padding: 5px;
display: inline-block; }
.jsxc_controlbar .jsxc_videoControl {
height: 44px;
width: 44px;
margin: 0 5px;
background-position: center;
background-repeat: no-repeat;
background-size: 90%;
cursor: pointer;
display: inline-block;
opacity: 0.8; }
.jsxc_controlbar .jsxc_videoControl:hover {
opacity: 1.0; }
.jsxc_controlbar .jsxc_hangUp {
background-image: url('../img/hang_up_red.svg'); }
.jsxc_controlbar .jsxc_fullscreen {
background-image: url('../img/fullscreen_white.svg'); }
.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: absolute;
top: 0;
right: 0;
bottom: 0;
width: 250px;
background-color: whitesmoke; }
.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: 100%;
height: 100%;
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; }
+44 -33
Ver Arquivo
@@ -1,5 +1,5 @@
/*!
* jsxc v3.0.0-beta2 - 2016-02-11
* jsxc v3.0.0 - 2016-03-11
*
* Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
@@ -7,7 +7,7 @@
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
* @version 3.0.0-beta2
* @version 3.0.0
* @license MIT
*/
@@ -25,7 +25,7 @@ var jsxc = null, RTC = null, RTCPeerconnection = null;
*/
jsxc = {
/** Version of jsxc */
version: '3.0.0-beta2',
version: '3.0.0',
/** True if i'm the master */
master: false,
@@ -161,10 +161,10 @@ jsxc = {
}
}
jsxc.log = jsxc.log + msg + ': ' + d + '\n';
jsxc.log = jsxc.log + '$ ' + msg + ': ' + d + '\n';
} else {
console.log(msg);
jsxc.log = jsxc.log + msg + '\n';
jsxc.log = jsxc.log + '$ ' + msg + '\n';
}
},
@@ -3218,12 +3218,16 @@ jsxc.gui = {
if (navigator) {
var key;
for (key in navigator) {
if (navigator.hasOwnProperty(key) && typeof navigator[key] === 'string') {
if (typeof navigator[key] === 'string') {
userInfo += '<b>' + key + ':</b> ' + navigator[key] + '<br />';
}
}
}
if ($.fn && $.fn.jquery) {
userInfo += '<b>jQuery:</b> ' + $.fn.jquery + '<br />';
}
if (window.screen) {
userInfo += '<b>Height:</b> ' + window.screen.height + '<br />';
userInfo += '<b>Width:</b> ' + window.screen.width + '<br />';
@@ -3433,22 +3437,24 @@ jsxc.gui = {
jsxc.options.set(key, val);
});
var success = jsxc.options.saveSettinsPermanent.call(this, data);
if (typeof self.attr('data-onsubmit') === 'string') {
jsxc.exec(self.attr('data-onsubmit'), [success]);
}
setTimeout(function() {
if (success) {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-success');
} else {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-danger');
var cb = function(success) {
if (typeof self.attr('data-onsubmit') === 'string') {
jsxc.exec(self.attr('data-onsubmit'), [success]);
}
setTimeout(function() {
self.find('button[type="submit"]').switchClass('btn-danger btn-success', 'btn-primary');
}, 2000);
}, 200);
if (success) {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-success');
} else {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-danger');
}
setTimeout(function() {
self.find('button[type="submit"]').switchClass('btn-danger btn-success', 'btn-primary');
}, 2000);
}, 200);
};
jsxc.options.saveSettinsPermanent.call(this, data, cb);
return false;
});
@@ -5391,7 +5397,7 @@ jsxc.gui.window = {
}).appendTo(msg);
$('<button>').text($.t('Abort')).click(function() {
$('<button>').addClass('jsxc_btn jsxc_btn-default').text($.t('Abort')).click(function() {
jsxc.gui.window.hideOverlay(bid);
}).appendTo(msg);
});
@@ -6700,7 +6706,7 @@ jsxc.muc = {
onGroupchatMessage: function(message) {
var id = $(message).attr('id');
if (jsxc.el_exists(jsxc.Message.getDOM(id))) {
if (id && jsxc.el_exists(jsxc.Message.getDOM(id))) {
// ignore own incoming messages
return true;
}
@@ -7540,7 +7546,7 @@ jsxc.options = {
* - Force new connection with loginForm.jid and loginForm.passed
* - Pause connection and do nothing
*
* @type {('attach', 'force', 'pause')}
* @type {(attach|force|pause)}
*/
ifFound: 'attach',
@@ -7621,10 +7627,10 @@ jsxc.options = {
*
* @memberOf jsxc.options
* @param data Holds all data as key/value
* @returns {boolean} false if function failes
* @param cb Called with true on success, false otherwise
*/
saveSettinsPermanent: function() {
saveSettinsPermanent: function(data, cb) {
cb(true);
},
carbons: {
@@ -9455,7 +9461,14 @@ jsxc.webrtc = {
var bid = jsxc.jidToBid(session.peerID);
if (this.localStream) {
this.localStream.stop();
if (typeof this.localStream.stop === 'function') {
this.localStream.stop();
} else {
var tracks = this.localStream.getTracks();
tracks.forEach(function(track) {
track.stop();
});
}
}
if ($('.jsxc_videoContainer').length) {
@@ -9605,7 +9618,7 @@ jsxc.webrtc = {
});
$(document).one('error.jingle', function(e, sid, error) {
if (error.source !== 'offer') {
if (error && error.source !== 'offer') {
return;
}
@@ -9929,10 +9942,8 @@ jsxc.gui.showVideoWindow = function(jid) {
}
});
$('#jsxc_webrtc .jsxc_videoContainer').toggle(function() {
$('#jsxc_webrtc .jsxc_controlbar').css('opacity', '1.0');
}, function() {
$('#jsxc_webrtc .jsxc_controlbar').css('opacity', '');
$('#jsxc_webrtc .jsxc_videoContainer').click(function() {
$('#jsxc_webrtc .jsxc_controlbar').toggleClass('jsxc_visible');
});
return $('#jsxc_webrtc');
@@ -10888,7 +10899,7 @@ jsxc.gui.template['videoWindow'] = '<div id="jsxc_webrtc">\n' +
' <div></div>\n' +
' </div>\n' +
' </div>\n' +
' <div class="jsxc_controlbar">\n' +
' <div class="jsxc_controlbar jsxc_visible">\n' +
' <div>\n' +
' <div class="jsxc_hangUp jsxc_videoControl" />\n' +
' <div class="jsxc_fullscreen jsxc_videoControl" />\n' +
+8 -8
Ver Arquivo
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 -1
Ver Arquivo
@@ -1,5 +1,5 @@
/*!
* jsxc v3.0.0-beta2 - 2016-02-11
* jsxc v3.0.0 - 2016-03-11
*
* This file concatenates all dependencies of jsxc.
*
+99 -21
Ver Arquivo
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
+378 -4
Ver Arquivo
@@ -84,6 +84,310 @@
<h3 class="subsection-title">Members</h3>
<dl>
<dt>
<h4 class="name" id="{boolean}"><span class="type-signature"></span>{boolean}<span class="type-signature"> :boolean</span></h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">boolean</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line33">line 33</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="{boolean}"><span class="type-signature"></span>{boolean}<span class="type-signature"> :boolean</span></h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">boolean</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line36">line 36</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="{boolean}"><span class="type-signature"></span>{boolean}<span class="type-signature"> :boolean</span></h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">boolean</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line39">line 39</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="{integer}"><span class="type-signature"></span>{integer}<span class="type-signature"> :integer</span></h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">integer</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line42">line 42</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="{string}"><span class="type-signature"></span>{string}<span class="type-signature"> :string</span></h4>
</dt>
<dd>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">string</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line30">line 30</a>
</li></ul></dd>
</dl>
</dd>
</dl>
@@ -92,6 +396,76 @@
<dl>
<dt>
<h4 class="name" id="direction">direction</h4>
</dt>
<dd>
<div class="description">
Message direction can be incoming, outgoing or system.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type"><a href="jsxc.Message.html#IN">jsxc.Message.IN</a></span>
|
<span class="param-type"><a href="jsxc.Message.html#OUT">jsxc.Message.OUT</a></span>
|
<span class="param-type"><a href="jsxc.Message.html#SYS">jsxc.Message.SYS</a></span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line236">line 236</a>
</li></ul></dd>
</dl>
</dd>
<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>
@@ -182,7 +556,7 @@
<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#line187">line 187</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line199">line 199</a>
</li></ul></dd>
@@ -299,7 +673,7 @@
<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#line154">line 154</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line166">line 166</a>
</li></ul></dd>
@@ -338,13 +712,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+2 -2
Ver Arquivo
@@ -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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+69 -8
Ver Arquivo
@@ -66,7 +66,7 @@
<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#line1765">line 1765</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1878">line 1878</a>
</li></ul></dd>
@@ -100,7 +100,7 @@
<dl>
<dt>
<h4 class="name" id="close"><span class="type-signature">&lt;static> </span>close<span class="signature">()</span><span class="type-signature"></span></h4>
<h4 class="name" id="close"><span class="type-signature">&lt;static> </span>close<span class="signature">(<span class="optional">name</span>)</span><span class="type-signature"></span></h4>
</dt>
@@ -108,7 +108,8 @@
<div class="description">
Close current dialog.
If no name is provided every dialog will be closed,
otherwise only dialog with given name is closed.
</div>
@@ -117,6 +118,66 @@
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">Close only dialog with the given name</td>
</tr>
</tbody>
</table>
<dl class="details">
@@ -141,7 +202,7 @@
<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#line1843">line 1843</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1961">line 1961</a>
</li></ul></dd>
@@ -361,7 +422,7 @@
<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#line1780">line 1780</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1893">line 1893</a>
</li></ul></dd>
@@ -500,7 +561,7 @@
<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#line1854">line 1854</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1976">line 1976</a>
</li></ul></dd>
@@ -541,13 +602,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+172 -31
Ver Arquivo
@@ -276,7 +276,7 @@
<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#line1218">line 1218</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1272">line 1272</a>
</li></ul></dd>
@@ -416,7 +416,7 @@
<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#line1144">line 1144</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1188">line 1188</a>
</li></ul></dd>
@@ -528,7 +528,7 @@
<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#line1271">line 1271</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1325">line 1325</a>
</li></ul></dd>
@@ -633,6 +633,8 @@
<dt class="important tag-deprecated">Deprecated:</dt><dd><ul class="dummy"><li>Use <a href="jsxc.gui.window.html#get">jsxc.gui.window.get</a> instead.</li><ul></dd>
@@ -645,7 +647,7 @@
<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#line343">line 343</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line370">line 370</a>
</li></ul></dd>
@@ -736,7 +738,7 @@
<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#line83">line 83</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>
@@ -848,7 +850,7 @@
<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#line1240">line 1240</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1294">line 1294</a>
</li></ul></dd>
@@ -960,7 +962,7 @@
<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#line314">line 314</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line340">line 340</a>
</li></ul></dd>
@@ -983,6 +985,145 @@
</dd>
<dt>
<h4 class="name" id="shortnameToImage"><span class="type-signature">&lt;static> </span>shortnameToImage<span class="signature">(str)</span><span class="type-signature"> &rarr; {string}</span></h4>
</dt>
<dd>
<div class="description">
Replace shortname emoticons with images.
</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>str</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">text with emoticons as shortname</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1432">line 1432</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
text with emoticons as images
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
</dd>
@@ -1029,7 +1170,7 @@
<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#line774">line 774</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line812">line 812</a>
</li></ul></dd>
@@ -1146,7 +1287,7 @@
<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#line722">line 722</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line760">line 760</a>
</li></ul></dd>
@@ -1281,7 +1422,7 @@
<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#line572">line 572</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line610">line 610</a>
</li></ul></dd>
@@ -1350,7 +1491,7 @@
<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#line731">line 731</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line769">line 769</a>
</li></ul></dd>
@@ -1531,7 +1672,7 @@
<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#line755">line 755</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line793">line 793</a>
</li></ul></dd>
@@ -1678,7 +1819,7 @@
<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#line606">line 606</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line644">line 644</a>
</li></ul></dd>
@@ -1747,7 +1888,7 @@
<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#line787">line 787</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line825">line 825</a>
</li></ul></dd>
@@ -1864,7 +2005,7 @@
<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#line452">line 452</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line476">line 476</a>
</li></ul></dd>
@@ -1933,7 +2074,7 @@
<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#line399">line 399</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line423">line 423</a>
</li></ul></dd>
@@ -2050,7 +2191,7 @@
<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#line682">line 682</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line720">line 720</a>
</li></ul></dd>
@@ -2137,7 +2278,7 @@
<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#line1034">line 1034</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1078">line 1078</a>
</li></ul></dd>
@@ -2254,7 +2395,7 @@
<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#line815">line 815</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line857">line 857</a>
</li></ul></dd>
@@ -2371,7 +2512,7 @@
<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#line461">line 461</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line485">line 485</a>
</li></ul></dd>
@@ -2440,7 +2581,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#line860">line 860</a>
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line1027">line 1027</a>
</li></ul></dd>
@@ -2557,7 +2698,7 @@
<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#line710">line 710</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line748">line 748</a>
</li></ul></dd>
@@ -2644,7 +2785,7 @@
<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#line354">line 354</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line381">line 381</a>
</li></ul></dd>
@@ -2761,7 +2902,7 @@
<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#line142">line 142</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line159">line 159</a>
</li></ul></dd>
@@ -2873,7 +3014,7 @@
<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#line1190">line 1190</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1244">line 1244</a>
</li></ul></dd>
@@ -2990,7 +3131,7 @@
<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#line158">line 158</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line175">line 175</a>
</li></ul></dd>
@@ -3153,7 +3294,7 @@
<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#line232">line 232</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line249">line 249</a>
</li></ul></dd>
@@ -3288,7 +3429,7 @@
<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#line1166">line 1166</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1210">line 1210</a>
</li></ul></dd>
@@ -3357,7 +3498,7 @@
<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#line298">line 298</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line324">line 324</a>
</li></ul></dd>
@@ -3398,13 +3539,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+8 -8
Ver Arquivo
@@ -66,7 +66,7 @@
<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#line36">line 36</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line51">line 51</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line71">line 71</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line86">line 86</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line43">line 43</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line58">line 58</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line52">line 52</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line67">line 67</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line57">line 57</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line72">line 72</a>
</li></ul></dd>
@@ -417,7 +417,7 @@
<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#line66">line 66</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line81">line 81</a>
</li></ul></dd>
@@ -458,13 +458,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+20 -20
Ver Arquivo
@@ -66,7 +66,7 @@
<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#line1373">line 1373</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1461">line 1461</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1384">line 1384</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1472">line 1472</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1381">line 1381</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1469">line 1469</a>
</li></ul></dd>
@@ -324,7 +324,7 @@
<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#line1681">line 1681</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1788">line 1788</a>
</li></ul></dd>
@@ -459,7 +459,7 @@
<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#line1503">line 1503</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1587">line 1587</a>
</li></ul></dd>
@@ -528,7 +528,7 @@
<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#line1751">line 1751</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1864">line 1864</a>
</li></ul></dd>
@@ -597,7 +597,7 @@
<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#line1392">line 1392</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1480">line 1480</a>
</li></ul></dd>
@@ -756,7 +756,7 @@ alphabetical of the name
<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#line1568">line 1568</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1672">line 1672</a>
</li></ul></dd>
@@ -843,7 +843,7 @@ alphabetical of the name
<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#line1736">line 1736</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1849">line 1849</a>
</li></ul></dd>
@@ -960,7 +960,7 @@ alphabetical of the name
<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#line1620">line 1620</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1724">line 1724</a>
</li></ul></dd>
@@ -1077,7 +1077,7 @@ alphabetical of the name
<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#line1611">line 1611</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1715">line 1715</a>
</li></ul></dd>
@@ -1216,7 +1216,7 @@ alphabetical of the name
<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#line1641">line 1641</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1745">line 1745</a>
</li></ul></dd>
@@ -1351,7 +1351,7 @@ alphabetical of the name
<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#line1601">line 1601</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1705">line 1705</a>
</li></ul></dd>
@@ -1397,7 +1397,7 @@ alphabetical of the name
<dt>
<h4 class="name" id="toggle"><span class="type-signature">&lt;static> </span>toggle<span class="signature">(d)</span><span class="type-signature"></span></h4>
<h4 class="name" id="toggle"><span class="type-signature">&lt;static> </span>toggle<span class="signature">(state)</span><span class="type-signature"></span></h4>
</dt>
@@ -1439,13 +1439,13 @@ alphabetical of the name
<tr>
<td class="name"><code>d</code></td>
<td class="name"><code>state</code></td>
<td class="type">
<span class="param-type">Integer</span>
<span class="param-type">string</span>
@@ -1455,7 +1455,7 @@ alphabetical of the name
<td class="description last">Duration in ms</td>
<td class="description last">Toggle to state</td>
</tr>
@@ -1486,7 +1486,7 @@ alphabetical of the name
<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#line1709">line 1709</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1816">line 1816</a>
</li></ul></dd>
@@ -1527,13 +1527,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+778 -155
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+206 -102
Ver Arquivo
@@ -87,6 +87,16 @@
<h3 class="subsection-title">Classes</h3>
<dl>
<dt><a href="jsxc.Message.html">Message</a></dt>
<dd></dd>
<dt><a href="jsxc.Message.html">Message</a></dt>
<dd></dd>
</dl>
<h3 class="subsection-title">Namespaces</h3>
@@ -322,7 +332,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#line170">line 170</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line174">line 174</a>
</li></ul></dd>
@@ -502,14 +512,14 @@
<dt>
<h4 class="name" id="restore"><span class="type-signature">&lt;static> </span>restore<span class="type-signature"></span></h4>
<h4 class="name" id="reconnect"><span class="type-signature">&lt;static> </span>reconnect<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
True if last activity was up to 10 min ago
True if jid, sid and rid was used to connect
</div>
@@ -1210,75 +1220,6 @@ workaround) 0: conform, 1: not conform, 2: not shure
<dl>
<dt>
<h4 class="name" id="_onMaster"><span class="type-signature">&lt;static> </span>_onMaster<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Second half of the onMaster routine
</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#line503">line 503</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="_prepareLogin"><span class="type-signature">&lt;private, static> </span>_prepareLogin<span class="signature">(username, password, cb, <span class="optional">loadedSettings</span>)</span><span class="type-signature"></span></h4>
@@ -1474,7 +1415,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line397">line 397</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line455">line 455</a>
</li></ul></dd>
@@ -1543,7 +1484,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line548">line 548</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line558">line 558</a>
</li></ul></dd>
@@ -1706,7 +1647,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line117">line 117</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line121">line 121</a>
</li></ul></dd>
@@ -1823,7 +1764,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line606">line 606</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line640">line 640</a>
</li></ul></dd>
@@ -1981,7 +1922,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line165">line 165</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line169">line 169</a>
</li></ul></dd>
@@ -2050,7 +1991,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line709">line 709</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line743">line 743</a>
</li></ul></dd>
@@ -2190,7 +2131,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line804">line 804</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line838">line 838</a>
</li></ul></dd>
@@ -2317,7 +2258,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line89">line 89</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line91">line 91</a>
</li></ul></dd>
@@ -2396,7 +2337,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line780">line 780</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line814">line 814</a>
</li></ul></dd>
@@ -2535,7 +2476,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line824">line 824</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line858">line 858</a>
</li></ul></dd>
@@ -2674,7 +2615,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line178">line 178</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line182">line 182</a>
</li></ul></dd>
@@ -2743,7 +2684,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line752">line 752</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line786">line 786</a>
</li></ul></dd>
@@ -2834,7 +2775,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line348">line 348</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line406">line 406</a>
</li></ul></dd>
@@ -2968,7 +2909,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line631">line 631</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line665">line 665</a>
</li></ul></dd>
@@ -3095,7 +3036,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line616">line 616</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line650">line 650</a>
</li></ul></dd>
@@ -3186,7 +3127,7 @@ workaround) 0: conform, 1: not conform, 2: not shure
<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#line565">line 565</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line603">line 603</a>
</li></ul></dd>
@@ -3256,7 +3197,7 @@ normal signal
<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#line577">line 577</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line611">line 611</a>
</li></ul></dd>
@@ -3325,7 +3266,7 @@ normal signal
<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#line477">line 477</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line538">line 538</a>
</li></ul></dd>
@@ -3394,7 +3335,7 @@ normal signal
<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#line462">line 462</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line520">line 520</a>
</li></ul></dd>
@@ -3557,7 +3498,7 @@ normal signal
<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#line360">line 360</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line418">line 418</a>
</li></ul></dd>
@@ -3674,7 +3615,7 @@ normal signal
<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#line596">line 596</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line630">line 630</a>
</li></ul></dd>
@@ -3808,7 +3749,7 @@ normal signal
<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.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line755">line 755</a>
</li></ul></dd>
@@ -3887,7 +3828,7 @@ normal signal
<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#line638">line 638</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line672">line 672</a>
</li></ul></dd>
@@ -3956,7 +3897,170 @@ normal signal
<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#line660">line 660</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line694">line 694</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="start"><span class="type-signature">&lt;static> </span>start<span class="signature">(jid, sid, rid)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Attach to new chat session with jid, sid and rid.
</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>jid</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">Jabber Id</td>
</tr>
<tr>
<td class="name"><code>sid</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">Session Id</td>
</tr>
<tr>
<td class="name"><code>rid</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">Request Id</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.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line375">line 375</a>
</li></ul></dd>
@@ -4025,7 +4129,7 @@ normal signal
<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#line558">line 558</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line596">line 596</a>
</li></ul></dd>
@@ -4094,7 +4198,7 @@ normal signal
<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#line690">line 690</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line724">line 724</a>
</li></ul></dd>
@@ -4234,7 +4338,7 @@ normal signal
<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#line732">line 732</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line766">line 766</a>
</li></ul></dd>
@@ -4396,7 +4500,7 @@ normal signal
<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#line154">line 154</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line158">line 158</a>
</li></ul></dd>
@@ -4437,13 +4541,13 @@ normal signal
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+311
Ver Arquivo
@@ -0,0 +1,311 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: jsxc.lib.Message.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.Message.js</h1>
<section>
<article>
<pre class="prettyprint source"><code>/**
* Load message object with given uid.
*
* @class Message
* @memberOf jsxc
* @param {string} uid Unified identifier from message object
*/
/**
* Create new message object.
*
* @class Message
* @memberOf jsxc
* @param {object} args New message properties
* @param {string} args.bid
* @param {direction} args.direction
* @param {string} args.msg
* @param {boolean} args.encrypted
* @param {boolean} args.forwarded
* @param {boolean} args.sender
* @param {integer} args.stamp
* @param {object} args.attachment Attached data
* @param {string} args.attachment.name File name
* @param {string} args.attachment.size File size
* @param {string} args.attachment.type File type
* @param {string} args.attachment.data File data
*/
jsxc.Message = function() {
/** @member {string} */
this._uid = null;
/** @member {boolean} */
this._received = false;
/** @member {boolean} */
this.encrypted = false;
/** @member {boolean} */
this.forwarded = false;
/** @member {integer} */
this.stamp = new Date().getTime();
if (typeof arguments[0] === 'string' && arguments[0].length > 0 && arguments.length === 1) {
this._uid = arguments[0];
this.load(this._uid);
} else if (typeof arguments[0] === 'object' && arguments[0] !== null) {
$.extend(this, arguments[0]);
}
if (!this._uid) {
this._uid = new Date().getTime() + ':msg';
}
};
/**
* Load message properties.
*
* @memberof jsxc.Message
* @param {string} uid
*/
jsxc.Message.prototype.load = function(uid) {
var data = jsxc.storage.getUserItem('msg', uid);
if (!data) {
jsxc.debug('Could not load message with uid ' + uid);
}
$.extend(this, data);
};
/**
* Save message properties and create thumbnail.
*
* @memberOf jsxc.Message
* @return {Message} this object
*/
jsxc.Message.prototype.save = function() {
var history;
if (this.bid) {
history = jsxc.storage.getUserItem('history', this.bid) || [];
if (history.indexOf(this._uid) &lt; 0) {
if (history.length > jsxc.options.get('numberOfMsg')) {
jsxc.Message.delete(history.pop());
}
} else {
history = null;
}
}
if (Image && this.attachment && this.attachment.type.match(/^image\//i) && this.attachment.data) {
var sHeight, sWidth, sx, sy;
var dHeight = 100,
dWidth = 100;
var canvas = $("&lt;canvas>").get(0);
canvas.width = dWidth;
canvas.height = dHeight;
var ctx = canvas.getContext("2d");
var img = new Image();
img.src = this.attachment.data;
if (img.height > img.width) {
sHeight = img.width;
sWidth = img.width;
sx = 0;
sy = (img.height - img.width) / 2;
} else {
sHeight = img.height;
sWidth = img.height;
sx = (img.width - img.height) / 2;
sy = 0;
}
ctx.drawImage(img, sx, sy, sWidth, sHeight, 0, 0, dWidth, dHeight);
this.attachment.thumbnail = canvas.toDataURL();
if (this.direction === 'out') {
// save storage
this.attachment.data = null;
}
}
var data;
if (this.attachment && this.attachment.size > jsxc.options.maxStorableSize && this.direction === 'in') {
jsxc.debug('Attachment to large to store');
data = this.attachment.data;
this.attachment.data = null;
this.attachment.persistent = false;
//@TODO inform user
}
jsxc.storage.setUserItem('msg', this._uid, this);
if (history) {
history.unshift(this._uid);
jsxc.storage.setUserItem('history', this.bid, history);
}
if (data && this.attachment) {
this.attachment.data = data;
}
return this;
};
/**
* Remove object from storage.
*
* @memberOf jsxc.Message
*/
jsxc.Message.prototype.delete = function() {
jsxc.Message.delete(this._uid);
};
/**
* Returns object as jquery object.
*
* @memberOf jsxc.Message
* @return {jQuery} Representation in DOM
*/
jsxc.Message.prototype.getDOM = function() {
return jsxc.Message.getDOM(this._uid);
};
/**
* Mark message as received.
*
* @memberOf jsxc.Message
*/
jsxc.Message.prototype.received = function() {
this._received = true;
this.save();
this.getDOM().addClass('jsxc_received');
};
/**
* Returns true if the message was already received.
*
* @memberOf jsxc.Message
* @return {boolean} true means received
*/
jsxc.Message.prototype.isReceived = function() {
return this._received;
};
/**
* Remove message with uid.
*
* @memberOf jsxc.Message
* @static
* @param {string} uid message uid
*/
jsxc.Message.delete = function(uid) {
var data = jsxc.storage.getUserItem('msg', uid);
if (data) {
jsxc.storage.removeUserItem('msg', uid);
if (data.bid) {
var history = jsxc.storage.getUserItem('history', data.bid) || [];
history = $.grep(history, function(el) {
return el !== uid;
});
jsxc.storage.setUserItem('history', data.bid);
}
}
};
/**
* Returns message object as jquery object.
*
* @memberOf jsxc.Message
* @static
* @param {string} uid message uid
* @return {jQuery} jQuery representation in DOM
*/
jsxc.Message.getDOM = function(uid) {
return $('#' + uid.replace(/:/g, '-'));
};
/**
* Message direction can be incoming, outgoing or system.
*
* @typedef {(jsxc.Message.IN|jsxc.Message.OUT|jsxc.Message.SYS)} direction
*/
/**
* @constant
* @type {string}
* @default
*/
jsxc.Message.IN = 'in';
/**
* @constant
* @type {string}
* @default
*/
jsxc.Message.OUT = 'out';
/**
* @constant
* @type {string}
* @default
*/
jsxc.Message.SYS = 'sys';
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>
+805 -221
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+128 -90
Ver Arquivo
@@ -55,8 +55,8 @@ jsxc = {
/** Interval for keep-alive */
keepalive: null,
/** True if last activity was up to 10 min ago */
restore: false,
/** True if jid, sid and rid was used to connect */
reconnect: false,
/** True if restore is complete */
restoreCompleted: false,
@@ -98,12 +98,14 @@ jsxc = {
},
REGEX: {
JID: new RegExp('\\b[^"&\'\\/:&lt;>@\\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)
URL: new RegExp(/(https?:\/\/|www\.)[^\s&lt;>'"]+/gi)
},
NS: {
CARBONS: 'urn:xmpp:carbons:2',
FORWARD: 'urn:xmpp:forward:0'
}
},
HIDDEN: 'hidden',
SHOWN: 'shown'
},
/**
@@ -115,20 +117,22 @@ jsxc = {
*/
getFormattedTime: function(unixtime) {
var msgDate = new Date(parseInt(unixtime));
var date = ('0' + msgDate.getDate()).slice(-2);
var day = ('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;
var dateNow = new Date();
var date = (typeof msgDate.toLocaleDateString === 'function') ? msgDate.toLocaleDateString() : day + '.' + month + '.' + year;
var time = (typeof msgDate.toLocaleTimeString === 'function') ? msgDate.toLocaleTimeString() : 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 date + ' ' + time;
}
return time;
},
@@ -164,10 +168,10 @@ jsxc = {
}
}
jsxc.log = jsxc.log + msg + ': ' + d + '\n';
jsxc.log = jsxc.log + '$ ' + msg + ': ' + d + '\n';
} else {
console.log(msg);
jsxc.log = jsxc.log + msg + '\n';
jsxc.log = jsxc.log + '$ ' + msg + '\n';
}
},
@@ -204,6 +208,11 @@ jsxc = {
*/
init: function(options) {
if (options && options.loginForm && typeof options.loginForm.attachIfFound === 'boolean' && !options.loginForm.ifFound) {
// translate deprated option attachIfFound found to new ifFound
options.loginForm.ifFound = (options.loginForm.attachIfFound) ? 'attach' : 'pause';
}
if (options) {
// override default options
$.extend(true, jsxc.options, options);
@@ -222,9 +231,13 @@ jsxc = {
* @returns default or saved option value
*/
jsxc.options.get = function(key) {
var local = jsxc.storage.getUserItem('options') || {};
if (jsxc.bid) {
var local = jsxc.storage.getUserItem('options') || {};
return local[key] || jsxc.options[key];
return local[key] || jsxc.options[key];
}
return jsxc.options[key];
};
/**
@@ -260,6 +273,7 @@ jsxc = {
// use localStorage and set expiration to a day
useLocalStorage: true,
localStorageExpirationTime: 60 * 60 * 24 * 1000,
debug: jsxc.storage.getItem('debug') === true
});
if (jsxc.storage.getItem('debug') === true) {
@@ -269,19 +283,21 @@ jsxc = {
// 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 &lt; jsxc.options.loginTimeout) {
jsxc.restore = true;
}
$(document).on('connectionReady.jsxc', function() {
$(document).on('attached.jsxc', function() {
// Looking for logout element
if (jsxc.options.logoutElement !== null && jsxc.options.logoutElement.length > 0) {
var logout = function() {
var logout = function(ev) {
if (!jsxc.xmpp.conn || !jsxc.xmpp.conn.authenticated) {
return;
}
ev.stopPropagation();
ev.preventDefault();
jsxc.options.logoutElement = $(this);
jsxc.triggeredFromLogout = true;
return jsxc.xmpp.logout();
jsxc.xmpp.logout();
};
jsxc.options.logoutElement.off('click', null, logout).one('click', logout);
@@ -289,7 +305,7 @@ jsxc = {
});
// Check if we have to establish a new connection
if (!jsxc.storage.getItem('rid') || !jsxc.storage.getItem('sid') || !jsxc.restore) {
if (!(jsxc.storage.getItem('rid') && jsxc.storage.getItem('sid') && jsxc.storage.getItem('jid')) || (jsxc.options.loginForm && jsxc.options.loginForm.ifFound === 'force' && jsxc.isLoginForm())) {
// clean up rid and sid
jsxc.storage.removeItem('rid');
@@ -339,7 +355,7 @@ jsxc = {
if (enabled) {
jsxc.options.loginForm.triggered = true;
jsxc.xmpp.login();
jsxc.xmpp.login(jsxc.options.xmpp.jid, jsxc.options.xmpp.password);
}
} else {
jsxc.submitLoginForm();
@@ -350,15 +366,11 @@ jsxc = {
return false;
});
} else if (!jsxc.isLoginForm() || (jsxc.options.loginForm && jsxc.options.loginForm.attachIfFound)) {
} else if (!jsxc.isLoginForm() || (jsxc.options.loginForm && jsxc.options.loginForm.ifFound === 'attach')) {
// Restore old connection
jsxc.bid = jsxc.jidToBid(jsxc.storage.getItem('jid'));
jsxc.gui.init();
if (typeof(jsxc.storage.getItem('alive')) === 'undefined' || !jsxc.restore) {
if (typeof(jsxc.storage.getItem('alive')) === 'undefined') {
jsxc.onMaster();
} else {
jsxc.checkMaster();
@@ -366,6 +378,52 @@ jsxc = {
}
},
/**
* Attach to previous session if jid, sid and rid are available in storage
* (default behaviour also for {@link jsxc.init}). Otherwise try to start new session
* with given jid and password in jsxc.options.xmpp.
*
* @memberOf jsxc
*/
/**
* Start new chat session with given jid and password.
*
* @memberOf jsxc
* @param {string} jid Jabber Id
*/
/**
* Attach to new chat session with jid, sid and rid.
*
* @memberOf jsxc
* @param {string} jid Jabber Id
* @param {string} sid Session Id
* @param {string} rid Request Id
*/
start: function() {
if (jsxc.role_allocation && !jsxc.master) {
jsxc.debug('There is an other master tab');
return false;
}
if (jsxc.xmpp.conn && jsxc.xmpp.connected) {
jsxc.debug('We are already connected');
return false;
}
if (arguments.length === 3) {
$(document).one('attached.jsxc', function() {
// save rid after first attachment
jsxc.xmpp.onRidChange(jsxc.xmpp.conn._proto.rid);
jsxc.onMaster();
});
}
jsxc.xmpp.login.apply(this, arguments);
},
/**
* Returns true if login form is found.
*
@@ -490,6 +548,9 @@ jsxc = {
jsxc.debug('I am the slave.');
jsxc.role_allocation = true;
jsxc.bid = jsxc.jidToBid(jsxc.storage.getItem('jid'));
jsxc.gui.init();
jsxc.restoreRoster();
jsxc.restoreWindows();
@@ -509,63 +570,12 @@ jsxc = {
// 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();
},
@@ -579,6 +589,34 @@ jsxc = {
jsxc.storage.ink('alive');
},
masterActions: function() {
if (!jsxc.xmpp.conn || !jsxc.xmpp.conn.authenticated) {
return;
}
//prepare notifications
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;
}
if (jsxc.options.get('otr').enable) {
// create or load DSA key
jsxc.otr.createDSA();
}
jsxc.gui.updateAvatar($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
},
/**
* Start sending keep-alive signal
*/
@@ -591,10 +629,6 @@ jsxc = {
*/
keepAlive: function() {
jsxc.storage.ink('alive');
if (jsxc.role_allocation) {
jsxc.storage.setItem('lastActivity', (new Date()).getTime());
}
},
/**
@@ -692,22 +726,22 @@ jsxc = {
}
$.each(windows, function(index, bid) {
var window = jsxc.storage.getUserItem('window', bid);
var win = jsxc.storage.getUserItem('window', bid);
if (!window) {
if (!win) {
jsxc.debug('Associated window-element is missing: ' + bid);
return true;
}
jsxc.gui.window.init(bid);
if (!window.minimize) {
if (!win.minimize) {
jsxc.gui.window.show(bid);
} else {
jsxc.gui.window.hide(bid);
}
jsxc.gui.window.setText(bid, window.text);
jsxc.gui.window.setText(bid, win.text);
});
},
@@ -862,6 +896,10 @@ jsxc = {
}
return hash;
},
isExtraSmallDevice: function() {
return $(window).width() &lt; 500;
}
};
</code></pre>
@@ -874,13 +912,13 @@ jsxc = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+184 -78
Ver Arquivo
@@ -130,11 +130,11 @@ jsxc.muc = {
* @memberOf jsxc.muc
*/
initMenu: function() {
var li = $('&lt;li>').attr('class', 'jsxc_joinChat').text($.t('Join_chat'));
var li = $('&lt;li>').attr('class', 'jsxc_joinChat jsxc_groupcontacticon').text($.t('Join_chat'));
li.click(jsxc.muc.showJoinChat);
$('#jsxc_menu ul').append(li);
$('#jsxc_menu ul .jsxc_about').before(li);
},
/**
@@ -307,6 +307,10 @@ jsxc.muc = {
var bookmark = $("#jsxc_bookmark").prop("checked");
var autojoin = $('#jsxc_autojoin').prop('checked');
// clean up
jsxc.gui.window.clear(room);
jsxc.storage.setUserItem('member', room, {});
self.join(room, nickname, password, roomName, subject, bookmark, autojoin);
return false;
@@ -551,7 +555,11 @@ jsxc.muc = {
var roomdata = jsxc.storage.getUserItem('buddy', room);
jsxc.storage.updateUserItem('buddy', room, 'state', self.CONST.ROOMSTATE.AWAIT_DESTRUCTION);
jsxc.gui.window.postMessage(room, 'sys', $.t('This_room_will_be_closed'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('This_room_will_be_closed')
});
var iq = $iq({
to: room,
@@ -607,17 +615,18 @@ jsxc.muc = {
*/
initWindow: function(event, win) {
var self = jsxc.muc;
var data = win.data();
var bid = jsxc.jidToBid(data.jid);
var roomdata = jsxc.storage.getUserItem('buddy', bid);
if (!jsxc.xmpp.conn) {
$(document).one('connectionReady.jsxc', function() {
$(document).one('attached.jsxc', function() {
self.initWindow(null, win);
});
return;
}
var data = win.data();
var bid = jsxc.jidToBid(data.jid);
var roomdata = jsxc.storage.getUserItem('buddy', bid);
if (roomdata.type !== 'groupchat') {
return;
}
@@ -628,7 +637,7 @@ jsxc.muc = {
var ownNickname = own[bid];
var mlIcon = $('&lt;div class="jsxc_members">&lt;/div>');
win.find('.jsxc_tools > .jsxc_transfer').after(mlIcon);
win.find('.jsxc_tools > .jsxc_settings').after(mlIcon);
var ml = $('&lt;div class="jsxc_memberlist">&lt;ul>&lt;/ul>&lt;/div>');
win.find('.jsxc_fade').prepend(ml);
@@ -697,13 +706,7 @@ jsxc.muc = {
jsxc.muc.scrollMemberListBy(bid, 0);
});
// update emoticon button
setTimeout(function() {
var top = win.find('.jsxc_emoticons').position().top + win.find('.slimScrollDiv').position().top;
win.find('.jsxc_emoticons').css('top', top + 'px');
}, 400);
var destroy = $('&lt;li>');
var destroy = $('&lt;a>');
destroy.text($.t('Destroy'));
destroy.addClass('jsxc_destroy');
destroy.hide();
@@ -711,7 +714,7 @@ jsxc.muc = {
self.destroy(bid);
});
win.find('.jsxc_settings ul').append(destroy);
win.find('.jsxc_settings ul').append($('&lt;li>').append(destroy));
if (roomdata.state > self.CONST.ROOMSTATE.INIT) {
var member = jsxc.storage.getUserItem('member', bid) || {};
@@ -725,14 +728,14 @@ jsxc.muc = {
});
}
var leave = $('&lt;li>');
var leave = $('&lt;a>');
leave.text($.t('Leave'));
leave.addClass('jsxc_leave');
leave.click(function() {
self.leave(bid);
});
win.find('.jsxc_settings ul').append(leave);
win.find('.jsxc_settings ul').append($('&lt;li>').append(leave));
},
/**
@@ -774,10 +777,6 @@ jsxc.muc = {
jsxc.storage.setUserItem('roomNames', jsxc.xmpp.conn.muc.roomNames);
// clean up
jsxc.storage.removeUserItem('chat', room);
member = {};
if (jsxc.gui.roster.getItem(room).length === 0) {
var bl = jsxc.storage.getUserItem('buddylist');
bl.push(room);
@@ -800,7 +799,11 @@ jsxc.muc = {
// room has been destroyed
member = {};
jsxc.gui.window.postMessage(room, 'sys', $.t('This_room_has_been_closed'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('This_room_has_been_closed')
});
self.close(room);
} else {
@@ -818,27 +821,39 @@ jsxc.muc = {
// prevent to display enter message
member[newNickname] = {};
jsxc.gui.window.postMessage(room, 'sys', $.t('is_now_known_as', {
oldNickname: nickname,
newNickname: newNickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('is_now_known_as', {
oldNickname: nickname,
newNickname: newNickname,
escapeInterpolation: true
})
});
} else if (codes.length === 0 || (codes.length === 1 && codes.indexOf('110') > -1)) {
// normal user exit
jsxc.gui.window.postMessage(room, 'sys', $.t('left_the_building', {
nickname: nickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('left_the_building', {
nickname: nickname,
escapeInterpolation: true
})
});
}
}
} else {
// new member joined
if (!member[nickname] && own[room]) {
jsxc.gui.window.postMessage(room, 'sys', $.t('entered_the_room', {
nickname: nickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('entered_the_room', {
nickname: nickname,
escapeInterpolation: true
})
});
}
member[nickname] = {
@@ -923,19 +938,35 @@ jsxc.muc = {
},
/** Inform occupants that room logging is now enabled */
170: function(room) {
jsxc.gui.window.postMessage(room, 'sys', $.t('Room_logging_is_enabled'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('Room_logging_is_enabled')
});
},
/** Inform occupants that room logging is now disabled */
171: function(room) {
jsxc.gui.window.postMessage(room, 'sys', $.t('Room_logging_is_disabled'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('Room_logging_is_disabled')
});
},
/** Inform occupants that the room is now non-anonymous */
172: function(room) {
jsxc.gui.window.postMessage(room, 'sys', $.t('Room_is_now_non-anoymous'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('Room_is_now_non-anoymous')
});
},
/** Inform occupants that the room is now semi-anonymous */
173: function(room) {
jsxc.gui.window.postMessage(room, 'sys', $.t('Room_is_now_semi-anonymous'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('Room_is_now_semi-anonymous')
});
},
/** Inform user that a new room has been created */
201: function(room) {
@@ -981,14 +1012,22 @@ jsxc.muc = {
if (own[room] === nickname) {
jsxc.muc.close(room);
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_banned'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_banned')
});
jsxc.muc.postReason(room, xdata);
} else {
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_info_banned', {
nickname: nickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_info_banned', {
nickname: nickname,
escapeInterpolation: true
})
});
}
},
/** Inform user that he or she has been kicked */
@@ -997,14 +1036,22 @@ jsxc.muc = {
if (own[room] === nickname) {
jsxc.muc.close(room);
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_kicked'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_kicked')
});
jsxc.muc.postReason(room, xdata);
} else {
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_info_kicked', {
nickname: nickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_info_kicked', {
nickname: nickname,
escapeInterpolation: true
})
});
}
},
/** Inform user that he or she is beeing removed from the room because of an affiliation change */
@@ -1013,12 +1060,21 @@ jsxc.muc = {
if (own[room] === nickname) {
jsxc.muc.close(room);
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_affiliation'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_affiliation')
});
} else {
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_info_affiliation', {
nickname: nickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_info_affiliation', {
nickname: nickname,
escapeInterpolation: true
})
});
}
},
/**
@@ -1030,12 +1086,20 @@ jsxc.muc = {
if (own[room] === nickname) {
jsxc.muc.close(room);
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_membersonly'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_membersonly')
});
} else {
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_info_membersonly', {
nickname: nickname,
escapeInterpolation: true
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_info_membersonly', {
nickname: nickname,
escapeInterpolation: true
})
});
}
},
/**
@@ -1044,7 +1108,11 @@ jsxc.muc = {
*/
332: function(room) {
jsxc.muc.close(room);
jsxc.gui.window.postMessage(room, 'sys', $.t('muc_removed_shutdown'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('muc_removed_shutdown')
});
}
},
@@ -1066,9 +1134,18 @@ jsxc.muc = {
reason = $.t('Reason') + ': ' + reason;
if (typeof actor.name === 'string' || typeof actor.jid === 'string') {
jsxc.gui.window.postMessage(room, 'in', reason, false, false, null, actor);
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.IN,
msg: reason,
sender: actor
});
} else {
jsxc.gui.window.postMessage(room, 'sys', reason);
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: reason
});
}
}
},
@@ -1188,7 +1265,7 @@ jsxc.muc = {
onGroupchatMessage: function(message) {
var id = $(message).attr('id');
if (jsxc.el_exists($('#' + id))) {
if (id && jsxc.el_exists(jsxc.Message.getDOM(id))) {
// ignore own incoming messages
return true;
}
@@ -1212,7 +1289,15 @@ jsxc.muc = {
sender.jid = member[nickname].jid;
}
jsxc.gui.window.postMessage(room, 'in', body, false, false, stamp, sender);
jsxc.gui.window.init(room);
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.IN,
msg: body,
stamp: stamp,
sender: sender
});
}
var subject = $(message).find('subject');
@@ -1224,10 +1309,14 @@ jsxc.muc = {
jsxc.storage.setUserItem('buddy', room, roomdata);
jsxc.gui.window.postMessage(room, 'sys', $.t('changed_subject_to', {
nickname: nickname,
subject: subject.text()
}));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('changed_subject_to', {
nickname: nickname,
subject: subject.text()
})
});
}
return true;
@@ -1248,13 +1337,29 @@ jsxc.muc = {
}
if ($(message).find('item-not-found').length > 0) {
jsxc.gui.window.postMessage(room, 'sys', $.t('message_not_send_item-not-found'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('message_not_send_item-not-found')
});
} else if ($(message).find('forbidden').length > 0) {
jsxc.gui.window.postMessage(room, 'sys', $.t('message_not_send_forbidden'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('message_not_send_forbidden')
});
} else if ($(message).find('not-acceptable').length > 0) {
jsxc.gui.window.postMessage(room, 'sys', $.t('message_not_send_not-acceptable'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('message_not_send_not-acceptable')
});
} else {
jsxc.gui.window.postMessage(room, 'sys', $.t('message_not_send'));
jsxc.gui.window.postMessage({
bid: room,
direction: jsxc.Message.SYS,
msg: $.t('message_not_send')
});
}
jsxc.debug('[muc] error message for ' + room, $(message).find('error')[0]);
@@ -1279,8 +1384,9 @@ jsxc.muc = {
return;
}
var bo = $('&lt;div>');
bo.text('+');
var bo = $('&lt;a>');
$('&lt;span>').addClass('jsxc_icon jsxc_bookmarkicon').appendTo(bo);
$('&lt;span>').text($.t('Bookmark')).appendTo(bo);
bo.addClass('jsxc_bookmarkOptions');
bo.click(function(ev) {
ev.preventDefault();
@@ -1290,7 +1396,7 @@ jsxc.muc = {
return false;
});
bud.find('.jsxc_rename').before(bo);
bud.find('.jsxc_menu ul').append($('&lt;li>').append(bo));
if (data.bookmarked) {
bud.addClass('jsxc_bookmarked');
@@ -1510,13 +1616,13 @@ $(document).one('connected.jsxc', function() {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+2 -2
Ver Arquivo
@@ -151,13 +151,13 @@ jsxc.notice = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+3 -3
Ver Arquivo
@@ -42,7 +42,7 @@ jsxc.notification = {
*/
init: function() {
$(document).on('postmessagein.jsxc', function(event, bid, msg) {
msg = (msg.match(/^\?OTR/)) ? $.t('Encrypted_message') : msg;
msg = (msg && msg.match(/^\?OTR/)) ? $.t('Encrypted_message') : msg;
var data = jsxc.storage.getUserItem('buddy', bid);
jsxc.notification.notify({
@@ -309,13 +309,13 @@ jsxc.notification = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+43 -10
Ver Arquivo
@@ -117,9 +117,24 @@ jsxc.options = {
*/
onAuthFail: 'submit',
/** True: Attach connection even is login form was found */
/**
* True: Attach connection even is login form was found.
*
* @type {Boolean}
* @deprecated since 3.0.0. Use now loginForm.ifFound (true => attach, false => pause)
*/
attachIfFound: true,
/**
* Describes what we should do if login form was found:
* - Attach connection
* - Force new connection with loginForm.jid and loginForm.passed
* - Pause connection and do nothing
*
* @type {(attach|force|pause)}
*/
ifFound: 'attach',
/**
* True: Display roster minimized after first login. Afterwards the last
* roster state will be used.
@@ -151,9 +166,6 @@ jsxc.options = {
/** 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.
@@ -200,10 +212,10 @@ jsxc.options = {
*
* @memberOf jsxc.options
* @param data Holds all data as key/value
* @returns {boolean} false if function failes
* @param cb Called with true on success, false otherwise
*/
saveSettinsPermanent: function() {
saveSettinsPermanent: function(data, cb) {
cb(true);
},
carbons: {
@@ -250,6 +262,9 @@ jsxc.options = {
/** [optional] If set, jsxc requests and uses RTCPeerConfig from this url */
url: null,
/** If true, jsxc send cookies when requesting RTCPeerConfig from the url above */
withCredentials: false,
/** ICE servers like defined in http://www.w3.org/TR/webrtc/#idl-def-RTCIceServer */
iceServers: [{
urls: 'stun:stun.stunprotocol.org'
@@ -257,7 +272,25 @@ jsxc.options = {
},
/** Link to an online user manual */
onlineHelp: 'http://www.jsxc.org/manual.html'
onlineHelp: 'http://www.jsxc.org/manual.html',
viewport: {
getSize: function() {
var w = $(window).width() - $('#jsxc_windowListSB').width();
var h = $(window).height();
if (jsxc.storage.getUserItem('roster') === 'shown') {
w -= $('#jsxc_roster').outerWidth(true);
}
return {
width: w,
height: h
};
}
},
maxStorableSize: 1000000
};
</code></pre>
</article>
@@ -269,13 +302,13 @@ jsxc.options = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+80 -36
Ver Arquivo
@@ -52,9 +52,23 @@ jsxc.otr = {
}
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);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('Received_an_unencrypted_message') + '. [' + d.msg + ']',
encrypted: d.encrypted,
forwarded: d.forwarded,
stamp: d.stamp
});
} else {
jsxc.gui.window.postMessage(bid, 'in', d.msg, d.encrypted, d.forwarded, d.stamp);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.IN,
msg: d.msg,
encrypted: d.encrypted,
forwarded: d.forwarded,
stamp: d.stamp
});
}
},
@@ -114,7 +128,11 @@ jsxc.otr = {
switch (status) {
case OTR.CONST.STATUS_SEND_QUERY:
jsxc.gui.window.postMessage(bid, 'sys', $.t('trying_to_start_private_conversation'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('trying_to_start_private_conversation')
});
break;
case OTR.CONST.STATUS_AKE_SUCCESS:
data.fingerprint = jsxc.otr.objects[bid].their_priv_pk.fingerprint();
@@ -123,7 +141,11 @@ jsxc.otr = {
var msg_state = jsxc.otr.objects[bid].trust ? 'Verified' : 'Unverified';
var msg = $.t(msg_state + '_private_conversation_started');
jsxc.gui.window.postMessage(bid, 'sys', msg);
jsxc.gui.window.postMessage({
bid: bid,
direction: 'sys',
msg: msg
});
break;
case OTR.CONST.STATUS_END_OTR:
data.fingerprint = null;
@@ -132,13 +154,21 @@ jsxc.otr = {
// we abort the private conversation
data.msgstate = OTR.CONST.MSGSTATE_PLAINTEXT;
jsxc.gui.window.postMessage(bid, 'sys', $.t('private_conversation_aborted'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.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'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('your_buddy_closed_the_private_conversation_you_should_do_the_same')
});
}
break;
case OTR.CONST.STATUS_SMP_HANDLE:
@@ -155,15 +185,14 @@ jsxc.otr = {
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'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.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, {
jsxc.gui.window.smpRequest(bid, data);
jsxc.storage.setUserItem('smp', bid, {
data: data || null
});
@@ -175,15 +204,28 @@ jsxc.otr = {
jsxc.gui.update(bid);
if (data) {
jsxc.gui.window.postMessage(bid, 'sys', $.t('conversation_is_now_verified'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('conversation_is_now_verified')
});
} else {
jsxc.gui.window.postMessage(bid, 'sys', $.t('authentication_failed'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('authentication_failed')
});
}
jsxc.storage.removeUserItem('smp_' + bid);
jsxc.gui.dialog.close();
jsxc.storage.removeUserItem('smp', bid);
jsxc.gui.dialog.close('smp');
break;
case 'abort':
jsxc.gui.window.postMessage(bid, 'sys', $.t('Authentication_aborted'));
jsxc.gui.window.hideOverlay(bid);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('Authentication_aborted')
});
break;
default:
jsxc.debug('[OTR] sm callback: Unknown type: ' + type);
@@ -213,7 +255,11 @@ jsxc.otr = {
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.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: '[OTR] ' + $.t(err)
});
}
jsxc.error('[OTR] ' + err);
@@ -237,14 +283,16 @@ jsxc.otr = {
if (data) {
$('#jsxc_dialog > div:eq(2)').find('#jsxc_quest').val(data).prop('disabled', true);
$('#jsxc_dialog > div:eq(2)').find('.jsxc_submit').text($('Answer'));
$('#jsxc_dialog > div:eq(2)').find('.jsxc_submit').text($.t('Answer'));
$('#jsxc_dialog > div:eq(2)').find('.jsxc_explanation').text($.t('onsmp_explanation_question'));
$('#jsxc_dialog > div:eq(2)').show();
} else {
$('#jsxc_dialog > div:eq(3)').find('.jsxc_explanation').text($.t('onsmp_explanation_secret'));
$('#jsxc_dialog > div:eq(3)').show();
}
$('#jsxc_dialog .jsxc_close').click(function() {
jsxc.storage.removeUserItem('smp_' + bid);
jsxc.storage.removeUserItem('smp', bid);
if (jsxc.master) {
jsxc.otr.objects[bid].sm.abort();
@@ -407,8 +455,6 @@ jsxc.otr = {
MSGSTATE_FINISHED: 2
};
jsxc._onMaster();
return;
}
@@ -431,8 +477,6 @@ jsxc.otr = {
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;
@@ -444,6 +488,8 @@ jsxc.otr = {
}
};
jsxc.debug('DSA key creation started.');
// 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'],
@@ -453,12 +499,13 @@ jsxc.otr = {
} else {
// fallback
jsxc.xmpp.conn.pause();
jsxc.gui.dialog.open(jsxc.gui.template.get('waitAlert', null, msg), {
noClose: true
});
jsxc.debug('DSA key creation started.');
jsxc.debug('DSA key creation started in fallback mode.');
// wait until the wait alert is opened
setTimeout(function() {
@@ -481,9 +528,9 @@ jsxc.otr = {
jsxc.storage.setUserItem('priv_fingerprint', jsxc.options.otr.priv.fingerprint());
if (jsxc.otr.dsaFallback !== false) {
jsxc._onMaster();
}
$.each(jsxc.storage.getUserItem('windowlist') || [], function(index, val) {
jsxc.otr.create(val);
});
},
/**
@@ -497,11 +544,8 @@ jsxc.otr = {
// close wait alert
if (jsxc.otr.dsaFallback) {
jsxc.xmpp.conn.resume();
jsxc.gui.dialog.close();
} else {
$.each(jsxc.storage.getUserItem('windowlist'), function(index, val) {
jsxc.otr.create(val);
});
}
jsxc.otr._createDSA();
@@ -521,13 +565,13 @@ jsxc.otr = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+27 -57
Ver Arquivo
@@ -48,6 +48,10 @@ jsxc.storage = {
getPrefix: function(uk) {
var self = jsxc.storage;
if (uk && !jsxc.bid) {
console.trace('Unable to create user prefix');
}
return self.PREFIX + self.SEP + ((uk && jsxc.bid) ? jsxc.bid + self.SEP : '');
},
@@ -62,7 +66,7 @@ jsxc.storage = {
setItem: function(key, value, uk) {
// Workaround for non-conform browser
if (jsxc.storageNotConform > 0 && key !== 'rid' && key !== 'lastActivity') {
if (jsxc.storageNotConform > 0 && key !== 'rid') {
if (jsxc.storageNotConform > 1 && jsxc.toSNC === null) {
jsxc.toSNC = window.setTimeout(function() {
jsxc.storageNotConform = 0;
@@ -148,7 +152,7 @@ jsxc.storage = {
removeItem: function(key, uk) {
// Workaround for non-conform browser
if (jsxc.storageNotConform && key !== 'rid' && key !== 'lastActivity') {
if (jsxc.storageNotConform && key !== 'rid') {
jsxc.ls.push(JSON.stringify({
key: jsxc.storage.prefix + key,
value: ''
@@ -291,7 +295,7 @@ jsxc.storage = {
onStorage: function(e) {
// skip
if (e.key === jsxc.storage.PREFIX + jsxc.storage.SEP + 'rid' || e.key === jsxc.storage.PREFIX + jsxc.storage.SEP + 'lastActivity') {
if (e.key === jsxc.storage.PREFIX + jsxc.storage.SEP + 'rid') {
return;
}
@@ -391,22 +395,24 @@ jsxc.storage = {
}
}
if (key.match(new RegExp('^chat' + jsxc.storage.SEP))) {
if (key.match(new RegExp('^history' + jsxc.storage.SEP))) {
var posts = JSON.parse(e.newValue);
var data, el;
var history = JSON.parse(e.newValue);
var uid, el, message;
while (posts.length > 0) {
data = posts.pop();
el = $('#' + data.uid);
while (history.length > 0) {
uid = history.pop();
message = new jsxc.Message(uid);
el = message.getDOM();
if (el.length === 0) {
if (jsxc.master && data.direction === 'out') {
jsxc.xmpp.sendMessage(bid, data.msg, data.uid);
if (jsxc.master && message.direction === jsxc.Message.OUT) {
jsxc.xmpp.sendMessage(message.bid, message.msg, message._uid);
}
jsxc.gui.window._postMessage(bid, data);
} else if (data.received) {
jsxc.gui.window._postMessage(message, true);
} else if (message.isReceived()) {
el.addClass('jsxc_received');
}
}
@@ -457,7 +463,8 @@ jsxc.storage = {
if (!e.newValue) {
jsxc.gui.dialog.close();
jsxc.gui.dialog.close('smp');
jsxc.gui.window.hideOverlay(bid);
if (jsxc.master) {
jsxc.otr.objects[bid].sm.abort();
@@ -470,10 +477,11 @@ jsxc.storage = {
if (typeof(n.data) !== 'undefined') {
jsxc.otr.onSmpQuestion(bid, n.data);
jsxc.gui.window.smpRequest(bid, n.data);
} else if (jsxc.master && n.sec) {
jsxc.gui.dialog.close();
jsxc.gui.dialog.close('smp');
jsxc.gui.window.hideOverlay(bid);
jsxc.otr.sendSmpReq(bid, n.sec, n.quest);
}
@@ -556,7 +564,7 @@ jsxc.storage = {
}
if (key === 'roster') {
jsxc.gui.roster.toggle();
jsxc.gui.roster.toggle(e.newValue);
}
if (jsxc.master && key.match(new RegExp('^vcard' + jsxc.storage.SEP)) && e.newValue !== null && e.newValue.match(/^request:/)) {
@@ -584,44 +592,6 @@ jsxc.storage = {
}
},
/**
* 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.
*
@@ -664,13 +634,13 @@ jsxc.storage = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+327 -196
Ver Arquivo
@@ -25,7 +25,7 @@
<section>
<article>
<pre class="prettyprint source"><code>/* global MediaStreamTrack */
<pre class="prettyprint source"><code>/* global MediaStreamTrack, File */
/* jshint -W020 */
/**
@@ -49,9 +49,12 @@ jsxc.webrtc = {
/** should we auto accept incoming calls? */
AUTO_ACCEPT: false,
/** required disco features */
/** required disco features for video call */
reqVideoFeatures: ['urn:xmpp:jingle:apps:rtp:video', 'urn:xmpp:jingle:apps:rtp:audio', 'urn:xmpp:jingle:transports:ice-udp:1', 'urn:xmpp:jingle:apps:dtls:0'],
/** required disco features for file transfer */
reqFileFeatures: ['urn:xmpp:jingle:1', 'urn:xmpp:jingle:apps:file-transfer:3'],
/** bare jid to current jid mapping */
chatJids: {},
@@ -80,10 +83,17 @@ jsxc.webrtc = {
$(document).on('mediaready.jingle', self.onMediaReady);
$(document).on('mediafailure.jingle', self.onMediaFailure);
manager.on('incoming', $.proxy(self.onCallIncoming, self));
manager.on('terminated', $.proxy(self.onCallTerminated, self));
manager.on('incoming', $.proxy(self.onIncoming, self));
manager.on('terminated', $.proxy(self.onTerminated, self));
manager.on('ringing', $.proxy(self.onCallRinging, self));
manager.on('receivedFile', $.proxy(self.onReceivedFile, self));
manager.on('sentFile', function(sess, metadata) {
jsxc.debug('sent ' + metadata.hash);
});
manager.on('peerStreamAdded', $.proxy(self.onRemoteStreamAdded, self));
manager.on('peerStreamRemoved', $.proxy(self.onRemoteStreamRemoved, self));
@@ -160,6 +170,9 @@ jsxc.webrtc = {
$.ajax(url, {
async: true,
xhrFields: {
withCredentials: jsxc.options.get('RTCPeerConfig').withCredentials
},
success: function(data) {
var ttl = data.ttl || 3600;
var iceServers = data.iceServers;
@@ -206,20 +219,27 @@ jsxc.webrtc = {
},
/**
* Return list of video capable resources.
* Return list of capable resources.
*
* @memberOf jsxc.webrtc
* @param jid
* @param {(string|string[])} features list of required features
* @returns {Array}
*/
getCapableRes: function(jid) {
getCapableRes: function(jid, features) {
var self = jsxc.webrtc;
var bid = jsxc.jidToBid(jid);
var res = jsxc.storage.getUserItem('res', bid) || [];
var res = Object.keys(jsxc.storage.getUserItem('res', bid) || {}) || [];
if (!features) {
return res;
} else if (typeof features === 'string') {
features = [features];
}
var available = [];
$.each(res, function(r) {
if (self.conn.caps.hasFeatureByJid(bid + '/' + r, self.reqVideoFeatures)) {
$.each(res, function(i, r) {
if (self.conn.caps.hasFeatureByJid(bid + '/' + r, features)) {
available.push(r);
}
});
@@ -227,40 +247,6 @@ jsxc.webrtc = {
return available;
},
/**
* Add "video" button to roster
*
* @private
* @memberOf jsxc.webrtc
* @param event
* @param bid bid of roster item
* @param data data wich belongs to bid
* @param el the roster item
*/
onAddRosterItem: function(event, bid, data, el) {
var self = jsxc.webrtc;
if (!self.conn) {
$(document).one('connectionReady.jsxc', function() {
self.onAddRosterItem(null, bid, data, el);
});
return;
}
var videoIcon = $('&lt;div class="jsxc_video jsxc_disabled" title="' + $.t("Start_video_call") + '">&lt;/div>');
videoIcon.click(function() {
self.startCall(data.jid);
return false;
});
el.find('.jsxc_options.jsxc_left').append(videoIcon);
el.on('extra.jsxc', function() {
self.updateIcon(bid);
});
},
/**
* Add "video" button to window menu.
*
@@ -279,16 +265,16 @@ jsxc.webrtc = {
jsxc.debug('webrtc.initWindow');
if (!self.conn) {
$(document).one('connectionReady.jsxc', function() {
$(document).one('attached.jsxc', function() {
self.initWindow(null, win);
});
return;
}
var div = $('&lt;div>').addClass('jsxc_video');
win.find('.jsxc_transfer:eq(1)').after(div);
win.find('.jsxc_tools .jsxc_settings').after(div);
self.updateIcon(jsxc.jidToBid(win.data('jid')));
self.updateIcon(win.data('bid'));
},
/**
@@ -319,10 +305,12 @@ jsxc.webrtc = {
}
}
var el = win.find('.jsxc_video').add(jsxc.gui.roster.getItem(bid).find('.jsxc_video'));
var res = Strophe.getResourceFromJid(jid);
var capableRes = self.getCapableRes(jid);
var targetRes = Strophe.getResourceFromJid(jid);
var el = win.find('.jsxc_video');
var capableRes = self.getCapableRes(jid, self.reqVideoFeatures);
var targetRes = res;
if (targetRes === null) {
$.each(jsxc.storage.getUserItem('buddy', bid).res || [], function(index, val) {
@@ -350,6 +338,15 @@ jsxc.webrtc = {
el.attr('title', $.t('Video_call_not_possible'));
}
var fileCapableRes = self.getCapableRes(jid, self.reqFileFeatures);
var resources = Object.keys(jsxc.storage.getUserItem('res', bid) || {}) || [];
if (fileCapableRes.indexOf(res) > -1 || (res === null && fileCapableRes.length === 1 && resources.length === 1)) {
win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
} else {
win.find('.jsxc_sendFile').addClass('jsxc_disabled');
}
},
/**
@@ -511,10 +508,52 @@ jsxc.webrtc = {
self.setStatus('media failure');
jsxc.gui.window.postMessage(jsxc.jidToBid(jsxc.webrtc.last_caller), 'sys', $.t('Media_failure') + ': ' + $.t(err.name) + ' (' + err.name + ').');
jsxc.gui.window.postMessage({
bid: jsxc.jidToBid(jsxc.webrtc.last_caller),
direction: jsxc.Message.SYS,
msg: $.t('Media_failure') + ': ' + $.t(err.name) + ' (' + err.name + ').'
});
jsxc.debug('media failure: ' + err.name);
},
onIncoming: function(session) {
var self = jsxc.webrtc;
var type = (session.constructor) ? session.constructor.name : null;
if (type === 'FileTransferSession') {
self.onIncomingFileTransfer(session);
} else if (type === 'MediaSession') {
self.onIncomingCall(session);
}
},
onIncomingFileTransfer: function(session) {
jsxc.debug('incoming file transfer from ' + session.peerID);
var buddylist = jsxc.storage.getUserItem('buddylist') || [];
var bid = jsxc.jidToBid(session.peerID);
if (buddylist.indexOf(bid) > -1) {
//Accept file transfers only from contacts
session.accept();
var message = jsxc.gui.window.postMessage({
_uid: session.sid + ':msg',
bid: bid,
direction: jsxc.Message.IN,
attachment: {
name: session.receiver.metadata.name,
type: session.receiver.metadata.type || 'application/octet-stream'
}
});
session.receiver.on('progress', function(sent, size) {
jsxc.gui.window.updateProgress(message, sent, size);
});
}
},
/**
* Called on incoming call.
*
@@ -523,15 +562,19 @@ jsxc.webrtc = {
* @param event
* @param sid Session id
*/
onCallIncoming: function(session) {
onIncomingCall: function(session) {
jsxc.debug('incoming call from ' + session.peerID);
var self = this;
var self = jsxc.webrtc;
var bid = jsxc.jidToBid(session.peerID);
session.on('change:connectionState', $.proxy(self.onIceConnectionStateChanged, self));
jsxc.gui.window.postMessage(bid, 'sys', $.t('Incoming_call'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('Incoming_call')
});
// display notification
jsxc.notification.notify($.t('Incoming_call'), $.t('from_sender', {
@@ -579,6 +622,15 @@ jsxc.webrtc = {
});
},
onTerminated: function(session, reason) {
var self = jsxc.webrtc;
var type = (session.constructor) ? session.constructor.name : null;
if (type === 'MediaSession') {
self.onCallTerminated(session, reason);
}
},
/**
* Called if call is terminated.
*
@@ -590,12 +642,19 @@ jsxc.webrtc = {
* @param [text] Optional explanation
*/
onCallTerminated: function(session, reason) {
this.setStatus('call terminated ' + session.peer + (reason ? reason.condition : ''));
this.setStatus('call terminated ' + session.peerID + (reason ? reason.condition : ''));
var bid = jsxc.jidToBid(session.peer);
var bid = jsxc.jidToBid(session.peerID);
if (this.localStream) {
this.localStream.stop();
if (typeof this.localStream.stop === 'function') {
this.localStream.stop();
} else {
var tracks = this.localStream.getTracks();
tracks.forEach(function(track) {
track.stop();
});
}
}
if ($('.jsxc_videoContainer').length) {
@@ -607,15 +666,15 @@ jsxc.webrtc = {
this.localStream = null;
this.remoteStream = null;
var win = $('#jsxc_dialog .jsxc_chatarea > ul > li');
$('#jsxc_windowList > ul').prepend(win.detach());
win.find('.slimScrollDiv').resizable('enable');
jsxc.gui.closeVideoWindow();
$(document).off('cleanup.dialog.jsxc');
$(document).off('error.jingle');
jsxc.gui.dialog.close();
jsxc.gui.window.postMessage(bid, 'sys', ($.t('Call_terminated') + (reason ? (': ' + $.t('jingle_reason_' + reason.condition)) : '') + '.'));
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: ($.t('Call_terminated') + (reason ? (': ' + $.t('jingle_reason_' + reason.condition)) : '') + '.')
});
},
/**
@@ -649,9 +708,9 @@ jsxc.webrtc = {
this.setStatus(isAudioDevice ? 'Use remote audio device.' : 'No remote audio device');
if ($('.jsxc_remotevideo').length) {
this.attachMediaStream($('#jsxc_dialog .jsxc_remotevideo'), stream);
this.attachMediaStream($('#jsxc_webrtc .jsxc_remotevideo'), stream);
$('#jsxc_dialog .jsxc_' + (isVideoDevice ? 'remotevideo' : 'noRemoteVideo')).addClass('jsxc_deviceAvailable');
$('#jsxc_webrtc .jsxc_' + (isVideoDevice ? 'remotevideo' : 'noRemoteVideo')).addClass('jsxc_deviceAvailable');
}
},
@@ -699,13 +758,15 @@ jsxc.webrtc = {
if (state === 'connected') {
$('#jsxc_dialog .jsxc_deviceAvailable').show();
$('#jsxc_dialog .bubblingG').hide();
$('#jsxc_webrtc .jsxc_deviceAvailable').show();
$('#jsxc_webrtc .bubblingG').hide();
} else if (state === 'failed') {
jsxc.gui.window.postMessage(jsxc.jidToBid(session.peerID), 'sys', $.t('ICE_connection_failure'));
$(document).off('cleanup.dialog.jsxc');
jsxc.gui.window.postMessage({
bid: jsxc.jidToBid(session.peerID),
direction: jsxc.Message.SYS,
msg: $.t('ICE_connection_failure')
});
session.end('failed-transport');
@@ -736,14 +797,17 @@ jsxc.webrtc = {
'finish.mediaready.jsxc': function() {
self.setStatus('Initiate call');
jsxc.gui.window.postMessage(jsxc.jidToBid(jid), 'sys', $.t('Call_started'));
jsxc.gui.window.postMessage({
bid: jsxc.jidToBid(jid),
direction: jsxc.Message.SYS,
msg: $.t('Call_started')
});
$(document).one('error.jingle', function(e, sid, error) {
if (error.source !== 'offer') {
if (error && error.source !== 'offer') {
return;
}
$(document).off('cleanup.dialog.jsxc');
setTimeout(function() {
jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.");
}, 500);
@@ -767,9 +831,13 @@ jsxc.webrtc = {
* @memberOf jsxc.webrtc
*/
hangUp: function(reason, text) {
$(document).off('cleanup.dialog.jsxc');
if (jsxc.webrtc.conn.jingle.manager && !$.isEmptyObject(jsxc.webrtc.conn.jingle.manager.peers)) {
jsxc.webrtc.conn.jingle.terminate(null, reason, text);
} else {
jsxc.gui.closeVideoWindow();
}
jsxc.webrtc.conn.jingle.terminate(null, reason, text);
// @TODO check event
$(document).trigger('callterminated.jingle');
},
@@ -876,6 +944,105 @@ jsxc.webrtc = {
$('.jsxc_snapshotbar').append(link);
canvas.remove();
},
/**
* Send file to full jid.
*
* @memberOf jsxc.webrtc
* @param {string} jid full jid
* @param {file} file
* @return {object} session
*/
sendFile: function(jid, file) {
var self = jsxc.webrtc;
var sess = self.conn.jingle.manager.createFileTransferSession(jid);
sess.on('change:sessionState', function() {
jsxc.debug('Session state', sess.state);
});
sess.on('change:connectionState', function() {
jsxc.debug('Connection state', sess.connectionState);
});
sess.start(file);
return sess;
},
/**
* Display received file.
*
* @memberOf jsxc.webrtc
* @param {object} sess
* @param {File} file
* @param {object} metadata file metadata
*/
onReceivedFile: function(sess, file, metadata) {
jsxc.debug('file received', metadata);
if (!FileReader) {
return;
}
var reader = new FileReader();
var type;
if (!metadata.type) {
// detect file type via file extension, because XEP-0234 v0.14
// does not send any type
var ext = metadata.name.replace(/.+\.([a-z0-9]+)$/i, '$1').toLowerCase();
switch (ext) {
case 'jpg':
case 'jpeg':
case 'png':
case 'gif':
case 'svg':
type = 'image/' + ext.replace(/^jpg$/, 'jpeg');
break;
case 'mp3':
case 'wav':
type = 'audio/' + ext;
break;
case 'pdf':
type = 'application/pdf';
break;
case 'txt':
type = 'text/' + ext;
break;
default:
type = 'application/octet-stream';
}
} else {
type = metadata.type;
}
reader.onload = function(ev) {
// modify element with uid metadata.actualhash
jsxc.gui.window.postMessage({
_uid: sess.sid + ':msg',
bid: jsxc.jidToBid(sess.peerID),
direction: jsxc.Message.IN,
attachment: {
name: metadata.name,
type: type,
size: metadata.size,
data: ev.target.result
}
});
};
if (!file.type) {
// file type should be handled in lib
file = new File([file], metadata.name, {
type: type
});
}
reader.readAsDataURL(file);
}
};
@@ -887,129 +1054,94 @@ jsxc.webrtc = {
jsxc.gui.showVideoWindow = function(jid) {
var self = jsxc.webrtc;
$(document).one('complete.dialog.jsxc', function() {
// mute own video element to avoid echoes
$('#jsxc_dialog .jsxc_localvideo')[0].muted = true;
$('#jsxc_dialog .jsxc_localvideo')[0].volume = 0;
var rv = $('#jsxc_dialog .jsxc_remotevideo');
var lv = $('#jsxc_dialog .jsxc_localvideo');
lv.draggable({
containment: "parent"
});
self.attachMediaStream(lv, self.localStream);
var w_dialog = $('#jsxc_dialog').width();
var w_remote = rv.width();
// fit in video
if (w_remote > w_dialog) {
var scale = w_dialog / w_remote;
var new_h = rv.height() * scale;
var new_w = w_dialog;
var vc = $('#jsxc_dialog .jsxc_videoContainer');
rv.height(new_h);
rv.width(new_w);
vc.height(new_h);
vc.width(new_w);
lv.height(lv.height() * scale);
lv.width(lv.width() * scale);
}
if (self.remoteStream) {
self.attachMediaStream(rv, self.remoteStream);
$('#jsxc_dialog .jsxc_' + (self.remoteStream.getVideoTracks().length > 0 ? 'remotevideo' : 'noRemoteVideo')).addClass('jsxc_deviceAvailable');
}
var toggleMulti = function(elem, open) {
$('#jsxc_dialog .jsxc_multi > div').not(elem).slideUp();
var opt = {
complete: jsxc.gui.dialog.resize
};
if (open) {
elem.slideDown(opt);
} else {
elem.slideToggle(opt);
}
};
var win = jsxc.gui.window.open(jsxc.jidToBid(jid));
win.find('.slimScrollDiv').resizable('disable');
win.find('.jsxc_textarea').slimScroll({
height: 413
});
win.find('.jsxc_emoticons').css('top', (413 + 6) + 'px');
$('#jsxc_dialog .jsxc_chatarea ul').append(win.detach());
$('#jsxc_dialog .jsxc_hangUp').click(function() {
jsxc.webrtc.hangUp('success');
});
$('#jsxc_dialog .jsxc_snapshot').click(function() {
jsxc.webrtc.snapshot(rv);
toggleMulti($('#jsxc_dialog .jsxc_snapshotbar'), true);
});
$('#jsxc_dialog .jsxc_snapshots').click(function() {
toggleMulti($('#jsxc_dialog .jsxc_snapshotbar'));
});
$('#jsxc_dialog .jsxc_showchat').click(function() {
var chatarea = $('#jsxc_dialog .jsxc_chatarea');
if (chatarea.is(':hidden')) {
chatarea.show();
$('#jsxc_dialog .jsxc_webrtc').width('900');
jsxc.gui.dialog.resize({
width: '920px'
});
} else {
chatarea.hide();
$('#jsxc_dialog .jsxc_webrtc').width('650');
jsxc.gui.dialog.resize({
width: '660px'
});
}
});
$('#jsxc_dialog .jsxc_fullscreen').click(function() {
if ($.support.fullscreen) {
// Reset position of localvideo
$(document).one('disabled.fullscreen', function() {
lv.removeAttr('style');
});
$('#jsxc_dialog .jsxc_videoContainer').fullscreen();
}
});
$('#jsxc_dialog .jsxc_volume').change(function() {
rv[0].volume = $(this).val();
});
$('#jsxc_dialog .jsxc_volume').dblclick(function() {
$(this).val(0.5);
});
});
// needed to trigger complete.dialog.jsxc
jsxc.gui.dialog.close();
return jsxc.gui.dialog.open(jsxc.gui.template.get('videoWindow'), {
noClose: true
$('body').append(jsxc.gui.template.get('videoWindow'));
// mute own video element to avoid echoes
$('#jsxc_webrtc .jsxc_localvideo')[0].muted = true;
$('#jsxc_webrtc .jsxc_localvideo')[0].volume = 0;
var rv = $('#jsxc_webrtc .jsxc_remotevideo');
var lv = $('#jsxc_webrtc .jsxc_localvideo');
lv.draggable({
containment: "parent"
});
if (self.localStream) {
self.attachMediaStream(lv, self.localStream);
}
var w_dialog = $('#jsxc_webrtc').width();
var w_remote = rv.width();
// fit in video
if (w_remote > w_dialog) {
var scale = w_dialog / w_remote;
var new_h = rv.height() * scale;
var new_w = w_dialog;
var vc = $('#jsxc_webrtc .jsxc_videoContainer');
rv.height(new_h);
rv.width(new_w);
vc.height(new_h);
vc.width(new_w);
lv.height(lv.height() * scale);
lv.width(lv.width() * scale);
}
if (self.remoteStream) {
self.attachMediaStream(rv, self.remoteStream);
$('#jsxc_webrtc .jsxc_' + (self.remoteStream.getVideoTracks().length > 0 ? 'remotevideo' : 'noRemoteVideo')).addClass('jsxc_deviceAvailable');
}
var win = jsxc.gui.window.open(jsxc.jidToBid(jid));
win.find('.slimScrollDiv').resizable('disable');
jsxc.gui.window.resize(win, {
size: {
width: $('#jsxc_webrtc .jsxc_chatarea').width(),
height: $('#jsxc_webrtc .jsxc_chatarea').height()
}
}, true);
$('#jsxc_webrtc .jsxc_chatarea ul').append(win.detach());
$('#jsxc_webrtc .jsxc_hangUp').click(function() {
jsxc.webrtc.hangUp('success');
});
$('#jsxc_webrtc .jsxc_fullscreen').click(function() {
if ($.support.fullscreen) {
// Reset position of localvideo
$(document).one('disabled.fullscreen', function() {
lv.removeAttr('style');
});
$('#jsxc_webrtc .jsxc_videoContainer').fullscreen();
}
});
$('#jsxc_webrtc .jsxc_videoContainer').click(function() {
$('#jsxc_webrtc .jsxc_controlbar').toggleClass('jsxc_visible');
});
return $('#jsxc_webrtc');
};
jsxc.gui.closeVideoWindow = function() {
var win = $('#jsxc_webrtc .jsxc_chatarea > ul > li');
$('#jsxc_windowList > ul').prepend(win.detach());
win.find('.slimScrollDiv').resizable('enable');
jsxc.gui.window.resize(win);
$('#jsxc_webrtc').remove();
};
$.extend(jsxc.CONST, {
@@ -1018,7 +1150,6 @@ $.extend(jsxc.CONST, {
});
$(document).ready(function() {
$(document).on('add.roster.jsxc', jsxc.webrtc.onAddRosterItem);
$(document).on('init.window.jsxc', jsxc.webrtc.initWindow);
$(document).on('attached.jsxc', jsxc.webrtc.init);
$(document).on('disconnected.jsxc', jsxc.webrtc.onDisconnected);
@@ -1034,13 +1165,13 @@ $(document).ready(function() {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+2 -2
Ver Arquivo
@@ -376,13 +376,13 @@ jsxc.xmpp.bookmarks.showDialog = function(room) {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+107 -76
Ver Arquivo
@@ -90,14 +90,29 @@ jsxc.xmpp = {
}
}
if (!jid) {
jsxc.warn('Jid required for login');
return;
}
if (!jsxc.bid) {
jsxc.bid = jsxc.jidToBid(jid);
}
var url = jsxc.options.get('xmpp').url;
if (!url) {
jsxc.warn('xmpp.url required for login');
return;
}
if (!(jsxc.xmpp.conn && jsxc.xmpp.conn.connected)) {
// Register eventlistener
$(document).on('connected.jsxc', jsxc.xmpp.connected);
$(document).on('attached.jsxc', jsxc.xmpp.attached);
$(document).on('disconnected.jsxc', jsxc.xmpp.disconnected);
$(document).on('ridChange', jsxc.xmpp.onRidChange);
$(document).on('connfail.jsxc', jsxc.xmpp.onConnfail);
$(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
@@ -107,15 +122,6 @@ jsxc.xmpp = {
// Create new connection (no login)
jsxc.xmpp.conn = new Strophe.Connection(url);
// Override default function to preserve unique id
var stropheGetUniqueId = jsxc.xmpp.conn.getUniqueId;
jsxc.xmpp.conn.getUniqueId = function(suffix) {
var uid = stropheGetUniqueId.call(jsxc.xmpp.conn, suffix);
jsxc.storage.setItem('_uniqueId', jsxc.xmpp.conn._uniqueId);
return uid;
};
if (jsxc.storage.getItem('debug') === true) {
jsxc.xmpp.conn.xmlInput = function(data) {
console.log('&lt;', data);
@@ -125,6 +131,8 @@ jsxc.xmpp = {
};
}
jsxc.xmpp.conn.nextValidRid = jsxc.xmpp.onRidChange;
var callback = function(status, condition) {
jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status] + ': ' + condition);
@@ -156,9 +164,12 @@ jsxc.xmpp = {
jsxc.xmpp.conn.caps.node = 'http://jsxc.org/';
}
if (jsxc.restore && sid && rid) {
if (sid && rid) {
jsxc.debug('Try to attach');
jsxc.debug('SID: ' + sid);
jsxc.reconnect = true;
jsxc.xmpp.conn.attach(jid, sid, rid, callback);
} else {
jsxc.debug('New connection');
@@ -182,7 +193,7 @@ jsxc.xmpp = {
}, Strophe.NS.CAPS);
}
jsxc.xmpp.conn.connect(jid || jsxc.options.xmpp.jid, password || jsxc.options.xmpp.password, callback);
jsxc.xmpp.conn.connect(jid, password || jsxc.options.xmpp.password, callback);
}
},
@@ -200,7 +211,7 @@ jsxc.xmpp = {
// clean up
jsxc.storage.removeUserItem('buddylist');
jsxc.storage.removeUserItem('windowlist');
jsxc.storage.removeItem('_uniqueId');
jsxc.storage.removeUserItem('unreadMsg');
if (!jsxc.master) {
$('#jsxc_roster').remove();
@@ -262,45 +273,27 @@ jsxc.xmpp = {
jsxc.xmpp.conn.pause();
var nomJid = Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase() + '/' + Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);
jsxc.xmpp.initNewConnection();
// Save sid and jid
jsxc.storage.setItem('sid', jsxc.xmpp.conn._proto.sid);
jsxc.storage.setItem('jid', nomJid);
jsxc.storage.setItem('lastActivity', (new Date()).getTime());
// make shure roster will be reloaded
jsxc.storage.removeUserItem('buddylist');
jsxc.storage.removeUserItem('windowlist');
jsxc.storage.removeUserItem('own');
jsxc.storage.removeUserItem('avatar', 'own');
jsxc.storage.removeUserItem('otrlist');
jsxc.storage.removeUserItem('unreadMsg');
// reset user options
jsxc.storage.removeUserElement('options', 'RTCPeerConfig');
jsxc.xmpp.saveSessionParameter();
if (jsxc.options.loginForm.triggered) {
switch (jsxc.options.loginForm.onConnected || 'submit') {
case 'submit':
jsxc.submitLoginForm();
/* falls through */
return;
case false:
jsxc.xmpp.connectionReady();
return;
}
}
// start chat
jsxc.gui.init();
$('#jsxc_roster').removeClass('jsxc_noConnection');
jsxc.onMaster();
jsxc.xmpp.conn.resume();
jsxc.gui.dialog.close();
jsxc.restoreCompleted = true;
jsxc.xmpp.conn.resume();
jsxc.onMaster();
$(document).trigger('attached.jsxc');
},
@@ -311,11 +304,15 @@ jsxc.xmpp = {
*/
attached: function() {
$('#jsxc_roster').removeClass('jsxc_noConnection');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged, 'jabber:iq:roster', 'iq', 'set');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage, null, 'message', 'chat');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived, null, 'message');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence, null, 'presence');
jsxc.gui.init();
var caps = jsxc.xmpp.conn.caps;
var domain = jsxc.xmpp.conn.domain;
@@ -354,7 +351,7 @@ jsxc.xmpp = {
}
// Only load roaster if necessary
if (!jsxc.restore || !jsxc.storage.getUserItem('buddylist')) {
if (!jsxc.reconnect || !jsxc.storage.getUserItem('buddylist')) {
// in order to not overide existing presence information, we send
// pres first after roster is ready
$(document).one('cloaded.roster.jsxc', jsxc.xmpp.sendPres);
@@ -370,20 +367,42 @@ jsxc.xmpp = {
jsxc.xmpp.conn.sendIQ(iq, jsxc.xmpp.onRoster);
} else {
jsxc.xmpp.sendPres();
if (!jsxc.restoreCompleted) {
jsxc.restoreRoster();
jsxc.restoreWindows();
jsxc.restoreCompleted = true;
$(document).trigger('restoreCompleted.jsxc');
}
}
jsxc.xmpp.connectionReady();
jsxc.xmpp.saveSessionParameter();
jsxc.masterActions();
},
/**
* Triggered if the connection is ready
*/
connectionReady: function() {
saveSessionParameter: function() {
// Load saved unique id
jsxc.xmpp.conn._uniqueId = jsxc.storage.getItem('_uniqueId') || new Date().getTime();
var nomJid = Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase() + '/' + Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);
$(document).trigger('connectionReady.jsxc');
// Save sid and jid
jsxc.storage.setItem('sid', jsxc.xmpp.conn._proto.sid);
jsxc.storage.setItem('jid', nomJid);
},
initNewConnection: function() {
// make shure roster will be reloaded
jsxc.storage.removeUserItem('buddylist');
jsxc.storage.removeUserItem('windowlist');
jsxc.storage.removeUserItem('own');
jsxc.storage.removeUserItem('avatar', 'own');
jsxc.storage.removeUserItem('otrlist');
jsxc.storage.removeUserItem('unreadMsg');
// reset user options
jsxc.storage.removeUserElement('options', 'RTCPeerConfig');
},
/**
@@ -427,9 +446,9 @@ jsxc.xmpp = {
disconnected: function() {
jsxc.debug('disconnected');
jsxc.storage.removeItem('jid');
jsxc.storage.removeItem('sid');
jsxc.storage.removeItem('rid');
jsxc.storage.removeItem('lastActivity');
jsxc.storage.removeItem('hidden');
jsxc.storage.removeUserItem('avatar', 'own');
jsxc.storage.removeUserItem('otrlist');
@@ -437,7 +456,6 @@ jsxc.xmpp = {
$(document).off('connected.jsxc', jsxc.xmpp.connected);
$(document).off('attached.jsxc', jsxc.xmpp.attached);
$(document).off('disconnected.jsxc', jsxc.xmpp.disconnected);
$(document).off('ridChange', jsxc.xmpp.onRidChange);
$(document).off('connfail.jsxc', jsxc.xmpp.onConnfail);
$(document).off('authfail.jsxc', jsxc.xmpp.onAuthFail);
@@ -669,6 +687,19 @@ jsxc.xmpp = {
// incoming friendship request
if (ptype === 'subscribe') {
var bl = jsxc.storage.getUserItem('buddylist');
if (bl.indexOf(bid) > -1) {
jsxc.debug('Auto approve contact request, because he is already in our contact list.');
jsxc.xmpp.resFriendReq(jid, true);
if (data.sub !== 'to') {
jsxc.xmpp.addBuddy(jid, data.name);
}
return true;
}
jsxc.storage.setUserItem('friendReq', {
jid: jid,
approve: -1
@@ -802,10 +833,17 @@ jsxc.xmpp = {
stamp = stamp.getTime();
if (carbon) {
var direction = (carbon.prop("tagName") === 'sent') ? 'out' : 'in';
var direction = (carbon.prop("tagName") === 'sent') ? jsxc.Message.OUT : jsxc.Message.IN;
bid = jsxc.jidToBid((direction === 'out') ? $(message).attr('to') : from);
jsxc.gui.window.postMessage(bid, direction, body, false, forwarded, stamp);
jsxc.gui.window.postMessage({
bid: bid,
direction: direction,
msg: body,
encrypted: false,
forwarded: forwarded,
stamp: stamp
});
return true;
@@ -872,7 +910,14 @@ jsxc.xmpp = {
forwarded: forwarded
});
} else {
jsxc.gui.window.postMessage(bid, 'in', body, false, forwarded, stamp);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.IN,
msg: body,
encrypted: false,
forwarded: forwarded,
stamp: stamp
});
}
// preserve handler
@@ -882,12 +927,11 @@ jsxc.xmpp = {
/**
* Triggerd if the rid changed
*
* @param {event} ev
* @param {obejct} data
* @param {integer} rid next valid request id
* @private
*/
onRidChange: function(ev, data) {
jsxc.storage.setItem('rid', data.rid);
onRidChange: function(rid) {
jsxc.storage.setItem('rid', rid);
},
/**
@@ -969,27 +1013,14 @@ jsxc.xmpp = {
jsxc.gui.roster.purge(bid);
},
onReceived: function(message) {
var from = $(message).attr('from');
var jid = Strophe.getBareJidFromJid(from);
var bid = jsxc.jidToBid(jid);
var received = $(message).find("received[xmlns='urn:xmpp:receipts']");
onReceived: function(stanza) {
var received = $(stanza).find("received[xmlns='urn:xmpp:receipts']");
if (received.length) {
var receivedId = received.attr('id').replace(/:/, '-');
var chat = jsxc.storage.getUserItem('chat', bid);
var i;
var receivedId = received.attr('id');
var message = new jsxc.Message(receivedId);
for (i = chat.length - 1; i >= 0; i--) {
if (chat[i].uid === receivedId) {
chat[i].received = true;
$('#' + receivedId).addClass('jsxc_received');
jsxc.storage.setUserItem('chat', bid, chat);
break;
}
}
message.received();
}
return true;
@@ -1233,13 +1264,13 @@ jsxc.xmpp.carbons = {
</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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+22 -22
Ver Arquivo
@@ -252,7 +252,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1303">line 1303</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1409">line 1409</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.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line876">line 876</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line891">line 891</a>
</li></ul></dd>
@@ -442,7 +442,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line384">line 384</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line388">line 388</a>
</li></ul></dd>
@@ -554,7 +554,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line549">line 549</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line557">line 557</a>
</li></ul></dd>
@@ -717,7 +717,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line522">line 522</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line526">line 526</a>
</li></ul></dd>
@@ -834,7 +834,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1145">line 1145</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1222">line 1222</a>
</li></ul></dd>
@@ -1155,7 +1155,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line581">line 581</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line589">line 589</a>
</li></ul></dd>
@@ -1318,7 +1318,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1057">line 1057</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1134">line 1134</a>
</li></ul></dd>
@@ -1575,7 +1575,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line443">line 443</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line447">line 447</a>
</li></ul></dd>
@@ -1692,7 +1692,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line472">line 472</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line476">line 476</a>
</li></ul></dd>
@@ -1873,7 +1873,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1248">line 1248</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1353">line 1353</a>
</li></ul></dd>
@@ -1990,7 +1990,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1216">line 1216</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1305">line 1305</a>
</li></ul></dd>
@@ -2107,7 +2107,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line493">line 493</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line497">line 497</a>
</li></ul></dd>
@@ -2224,7 +2224,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1161">line 1161</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1238">line 1238</a>
</li></ul></dd>
@@ -2427,7 +2427,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line721">line 721</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line724">line 724</a>
</li></ul></dd>
@@ -2585,7 +2585,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line852">line 852</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line867">line 867</a>
</li></ul></dd>
@@ -2747,7 +2747,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1031">line 1031</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1099">line 1099</a>
</li></ul></dd>
@@ -2887,7 +2887,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1100">line 1100</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1177">line 1177</a>
</li></ul></dd>
@@ -3027,7 +3027,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1116">line 1116</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1193">line 1193</a>
</li></ul></dd>
@@ -3306,7 +3306,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line360">line 360</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line364">line 364</a>
</li></ul></dd>
@@ -3347,13 +3347,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:04 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+2 -2
Ver Arquivo
@@ -1250,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:12 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+42 -100
Ver Arquivo
@@ -188,7 +188,7 @@
<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#line113">line 113</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line128">line 128</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.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line110">line 110</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line125">line 125</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.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line205">line 205</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line217">line 217</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.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line139">line 139</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line151">line 151</a>
</li></ul></dd>
@@ -467,60 +467,6 @@
</dl>
</dd>
<dt>
<h4 class="name" id="loginTimeout"><span class="type-signature">&lt;static> </span>loginTimeout<span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Timeout for restore in ms
</div>
<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#line128">line 128</a>
</li></ul></dd>
</dl>
@@ -566,7 +512,7 @@
<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#line104">line 104</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line119">line 119</a>
</li></ul></dd>
@@ -620,7 +566,7 @@
<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#line142">line 142</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line154">line 154</a>
</li></ul></dd>
@@ -674,7 +620,7 @@
<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#line119">line 119</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line134">line 134</a>
</li></ul></dd>
@@ -728,7 +674,7 @@
<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#line107">line 107</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line122">line 122</a>
</li></ul></dd>
@@ -782,7 +728,7 @@
<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#line233">line 233</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line248">line 248</a>
</li></ul></dd>
@@ -890,7 +836,7 @@
<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#line122">line 122</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line137">line 137</a>
</li></ul></dd>
@@ -998,7 +944,7 @@
<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#line125">line 125</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line140">line 140</a>
</li></ul></dd>
@@ -1052,7 +998,7 @@
<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#line116">line 116</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line131">line 131</a>
</li></ul></dd>
@@ -1106,7 +1052,7 @@
<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#line219">line 219</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line231">line 231</a>
</li></ul></dd>
@@ -1212,7 +1158,7 @@
<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#line216">line 216</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line228">line 228</a>
</li></ul></dd>
@@ -1377,7 +1323,7 @@
<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#line150">line 150</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line162">line 162</a>
</li></ul></dd>
@@ -1447,7 +1393,7 @@ connection is found.
<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#line134">line 134</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line146">line 146</a>
</li></ul></dd>
@@ -1564,7 +1510,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#line197">line 197</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line206">line 206</a>
</li></ul></dd>
@@ -1714,7 +1660,7 @@ connection is found.
<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#line189">line 189</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line201">line 201</a>
</li></ul></dd>
@@ -1877,7 +1823,7 @@ connection is found.
<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#line169">line 169</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line181">line 181</a>
</li></ul></dd>
@@ -1905,7 +1851,7 @@ connection is found.
<dt>
<h4 class="name" id="saveSettinsPermanent"><span class="type-signature">&lt;static> </span>saveSettinsPermanent<span class="signature">(data)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
<h4 class="name" id="saveSettinsPermanent"><span class="type-signature">&lt;static> </span>saveSettinsPermanent<span class="signature">(data, cb)</span><span class="type-signature"></span></h4>
</dt>
@@ -1962,6 +1908,24 @@ connection is found.
</tr>
<tr>
<td class="name"><code>cb</code></td>
<td class="type">
</td>
<td class="description last">Called with true on success, false otherwise</td>
</tr>
</tbody>
</table>
@@ -1989,7 +1953,7 @@ connection is found.
<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#line178">line 178</a>
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line190">line 190</a>
</li></ul></dd>
@@ -2010,28 +1974,6 @@ 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>
@@ -2151,7 +2093,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#line209">line 209</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line222">line 222</a>
</li></ul></dd>
@@ -2192,13 +2134,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:13 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+14 -14
Ver Arquivo
@@ -197,7 +197,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line453">line 453</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line500">line 500</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line301">line 301</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line349">line 349</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line54">line 54</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line68">line 68</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line368">line 368</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line416">line 416</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line467">line 467</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line514">line 514</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line266">line 266</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line314">line 314</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line283">line 283</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line331">line 331</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line205">line 205</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line251">line 251</a>
</li></ul></dd>
@@ -1493,7 +1493,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line333">line 333</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line381">line 381</a>
</li></ul></dd>
@@ -1633,7 +1633,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line40">line 40</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line54">line 54</a>
</li></ul></dd>
@@ -1824,7 +1824,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line236">line 236</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line284">line 284</a>
</li></ul></dd>
@@ -1959,7 +1959,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line248">line 248</a>
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line296">line 296</a>
</li></ul></dd>
@@ -2018,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:13 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+13 -225
Ver Arquivo
@@ -270,7 +270,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line85">line 85</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line89">line 89</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line102">line 102</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line106">line 106</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line214">line 214</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line218">line 218</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line264">line 264</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line268">line 268</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line227">line 227</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line231">line 231</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line121">line 121</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line125">line 125</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line139">line 139</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line143">line 143</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.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line606">line 606</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line576">line 576</a>
</li></ul></dd>
@@ -1509,218 +1509,6 @@
</dd>
<dt>
<h4 class="name" id="saveMessage"><span class="type-signature">&lt;static> </span>saveMessage<span class="signature">(bid, direction, msg, encrypted, forwarded, sender)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Save message to storage.
</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>bid</code></td>
<td class="type">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>direction</code></td>
<td class="type">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>msg</code></td>
<td class="type">
</td>
<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>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line572">line 572</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
post
</div>
</dd>
@@ -1861,7 +1649,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line35">line 35</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line39">line 39</a>
</li></ul></dd>
@@ -2087,7 +1875,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line161">line 161</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line165">line 165</a>
</li></ul></dd>
@@ -2282,7 +2070,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line193">line 193</a>
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line197">line 197</a>
</li></ul></dd>
@@ -2323,13 +2111,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:13 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+562 -323
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+2 -2
Ver Arquivo
@@ -1781,13 +1781,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:13 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+6 -6
Ver Arquivo
@@ -66,7 +66,7 @@
<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#line1121">line 1121</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1152">line 1152</a>
</li></ul></dd>
@@ -184,7 +184,7 @@
<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#line1161">line 1161</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1192">line 1192</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.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1135">line 1135</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1166">line 1166</a>
</li></ul></dd>
@@ -408,7 +408,7 @@
<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#line1187">line 1187</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1218">line 1218</a>
</li></ul></dd>
@@ -449,13 +449,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:13 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
+26 -118
Ver Arquivo
@@ -396,7 +396,7 @@
<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#line996">line 996</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1027">line 1027</a>
</li></ul></dd>
@@ -536,7 +536,7 @@
<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#line893">line 893</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line937">line 937</a>
</li></ul></dd>
@@ -605,7 +605,7 @@
<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#line285">line 285</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line278">line 278</a>
</li></ul></dd>
@@ -674,76 +674,7 @@
<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#line234">line 234</a>
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="connectionReady"><span class="type-signature">&lt;static> </span>connectionReady<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Triggered if the connection is ready
</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#line354">line 354</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line245">line 245</a>
</li></ul></dd>
@@ -812,7 +743,7 @@
<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#line400">line 400</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>
@@ -924,7 +855,7 @@
<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#line1054">line 1054</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1085">line 1085</a>
</li></ul></dd>
@@ -1097,7 +1028,7 @@
<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#line1077">line 1077</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1108">line 1108</a>
</li></ul></dd>
@@ -1267,7 +1198,7 @@
<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#line1031">line 1031</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1062">line 1062</a>
</li></ul></dd>
@@ -1384,7 +1315,7 @@
<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#line168">line 168</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line179">line 179</a>
</li></ul></dd>
@@ -1471,7 +1402,7 @@
<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#line454">line 454</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line472">line 472</a>
</li></ul></dd>
@@ -1588,7 +1519,7 @@
<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#line441">line 441</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line459">line 459</a>
</li></ul></dd>
@@ -1705,7 +1636,7 @@
<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#line738">line 738</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line769">line 769</a>
</li></ul></dd>
@@ -1840,7 +1771,7 @@
<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#line603">line 603</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line621">line 621</a>
</li></ul></dd>
@@ -1868,7 +1799,7 @@
<dt>
<h4 class="name" id="onRidChange"><span class="type-signature">&lt;private, static> </span>onRidChange<span class="signature">(ev, data)</span><span class="type-signature"></span></h4>
<h4 class="name" id="onRidChange"><span class="type-signature">&lt;private, static> </span>onRidChange<span class="signature">(rid)</span><span class="type-signature"></span></h4>
</dt>
@@ -1910,13 +1841,13 @@
<tr>
<td class="name"><code>ev</code></td>
<td class="name"><code>rid</code></td>
<td class="type">
<span class="param-type">event</span>
<span class="param-type">integer</span>
@@ -1926,30 +1857,7 @@
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>data</code></td>
<td class="type">
<span class="param-type">obejct</span>
</td>
<td class="description last"></td>
<td class="description last">next valid request id</td>
</tr>
@@ -1980,7 +1888,7 @@
<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#line862">line 862</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line906">line 906</a>
</li></ul></dd>
@@ -2097,7 +2005,7 @@
<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#line477">line 477</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line495">line 495</a>
</li></ul></dd>
@@ -2214,7 +2122,7 @@
<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#line529">line 529</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line547">line 547</a>
</li></ul></dd>
@@ -2353,7 +2261,7 @@
<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#line928">line 928</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line972">line 972</a>
</li></ul></dd>
@@ -2493,7 +2401,7 @@
<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#line872">line 872</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line916">line 916</a>
</li></ul></dd>
@@ -2641,7 +2549,7 @@
<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#line979">line 979</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1010">line 1010</a>
</li></ul></dd>
@@ -2710,7 +2618,7 @@
<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#line365">line 365</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line384">line 384</a>
</li></ul></dd>
@@ -2751,13 +2659,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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><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.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.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3>Global</h3><ul><li>{boolean}</li><li>{integer}</li><li>{string}</li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Tue Nov 17 2015 17:01:05 GMT+0100 (CET)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Fri Mar 11 2016 17:32:13 GMT+0100 (CET)
</footer>
<script> prettyPrint(); </script>
-1
Ver Arquivo
@@ -12,7 +12,6 @@
<!-- require:dependencies -->
<link href="../build/css/jquery-ui.min.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" />
<!-- endrequire -->
<link href="css/example.css" media="all" rel="stylesheet" type="text/css" />
-1
Ver Arquivo
@@ -12,7 +12,6 @@
<!-- require:dependencies -->
<link href="../build/css/jquery-ui.min.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" />
<!-- endrequire -->
<link href="css/example.css" media="all" rel="stylesheet" type="text/css" />
-4
Ver Arquivo
@@ -10,14 +10,10 @@
<link href="css/bootstrap.min.css" media="all" rel="stylesheet" type="text/css" />
<link href="../build/css/jquery-ui.min.css" media="all" rel="stylesheet" type="text/css" />
<link href="../build/css/jquery.mCustomScrollbar.css" media="all" rel="stylesheet" type="text/css" />
<link href="../build/css/jquery.colorbox.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" />
<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>
+1 -1
Ver Arquivo
@@ -1,6 +1,6 @@
{
"name": "jsxc",
"version": "3.0.0-beta2",
"version": "3.0.0",
"description": "Real-time chat app",
"homepage": "http://www.jsxc.org/",
"bugs": "https://github.com/jsxc/jsxc/issues",
+20 -5
Ver Arquivo
@@ -24,6 +24,7 @@
#jsxc_dialog {
padding: 20px;
min-width: 320px;
max-width: 100%;
display: inline-block;
text-align: left;
position: relative;
@@ -318,12 +319,26 @@ img.jsxc_vCard {
.jsxc_btn {
width: auto;
min-width: 25px;
padding: 5px;
background-color: rgba(240, 240, 240, 0.9);
font-weight: bold;
color: #555;
border: 1px solid rgba(190, 190, 190, 0.9);
display: inline-block;
padding: 6px 12px;
margin: 0px 2px;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
&.jsxc_btn-default {
border-color: #ccc;
color: #555;
background-color: rgba(240, 240, 240, 0.9);
}
&.jsxc_btn-primary {
color: #fff;
+17 -2
Ver Arquivo
@@ -67,7 +67,6 @@
.jsxc_controlbar {
opacity: 0;
transition: 1s opacity;
}
&:hover {
@@ -187,12 +186,23 @@ div {
right: 0px;
text-align: center;
z-index: 9090;
transition: 1s opacity;
opacity: 0;
@media (min-width: 768px) {
bottom: 5%;
top: initial;
}
&.jsxc_visible {
opacity: 1.0;
}
& > div {
background-color: rgba(0, 0, 0, 0.5);
height: 44px;
border-radius: 22px;
padding: 5px;
padding: 0px 5px;
display: inline-block;
}
@@ -263,6 +273,11 @@ div {
bottom: 0;
width: 250px;
background-color: $window_bg;
display: none;
@media (min-width: 768px) {
display: block;
}
.jsxc_settings {
display: none !important;
+1
Ver Arquivo
@@ -14,3 +14,4 @@ $font_serif: serif;
@import "muc";
@import "jsxc";
@import "webrtc";
-3
Ver Arquivo
@@ -1,3 +0,0 @@
@import "colors";
@import "webrtc";
+22 -16
Ver Arquivo
@@ -828,12 +828,16 @@ jsxc.gui = {
if (navigator) {
var key;
for (key in navigator) {
if (navigator.hasOwnProperty(key) && typeof navigator[key] === 'string') {
if (typeof navigator[key] === 'string') {
userInfo += '<b>' + key + ':</b> ' + navigator[key] + '<br />';
}
}
}
if ($.fn && $.fn.jquery) {
userInfo += '<b>jQuery:</b> ' + $.fn.jquery + '<br />';
}
if (window.screen) {
userInfo += '<b>Height:</b> ' + window.screen.height + '<br />';
userInfo += '<b>Width:</b> ' + window.screen.width + '<br />';
@@ -1043,22 +1047,24 @@ jsxc.gui = {
jsxc.options.set(key, val);
});
var success = jsxc.options.saveSettinsPermanent.call(this, data);
if (typeof self.attr('data-onsubmit') === 'string') {
jsxc.exec(self.attr('data-onsubmit'), [success]);
}
setTimeout(function() {
if (success) {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-success');
} else {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-danger');
var cb = function(success) {
if (typeof self.attr('data-onsubmit') === 'string') {
jsxc.exec(self.attr('data-onsubmit'), [success]);
}
setTimeout(function() {
self.find('button[type="submit"]').switchClass('btn-danger btn-success', 'btn-primary');
}, 2000);
}, 200);
if (success) {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-success');
} else {
self.find('button[type="submit"]').switchClass('btn-primary', 'btn-danger');
}
setTimeout(function() {
self.find('button[type="submit"]').switchClass('btn-danger btn-success', 'btn-primary');
}, 2000);
}, 200);
};
jsxc.options.saveSettinsPermanent.call(this, data, cb);
return false;
});
@@ -3001,7 +3007,7 @@ jsxc.gui.window = {
}).appendTo(msg);
$('<button>').text($.t('Abort')).click(function() {
$('<button>').addClass('jsxc_btn jsxc_btn-default').text($.t('Abort')).click(function() {
jsxc.gui.window.hideOverlay(bid);
}).appendTo(msg);
});
+2 -2
Ver Arquivo
@@ -141,10 +141,10 @@ jsxc = {
}
}
jsxc.log = jsxc.log + msg + ': ' + d + '\n';
jsxc.log = jsxc.log + '$ ' + msg + ': ' + d + '\n';
} else {
console.log(msg);
jsxc.log = jsxc.log + msg + '\n';
jsxc.log = jsxc.log + '$ ' + msg + '\n';
}
},
+1 -1
Ver Arquivo
@@ -1238,7 +1238,7 @@ jsxc.muc = {
onGroupchatMessage: function(message) {
var id = $(message).attr('id');
if (jsxc.el_exists(jsxc.Message.getDOM(id))) {
if (id && jsxc.el_exists(jsxc.Message.getDOM(id))) {
// ignore own incoming messages
return true;
}
+4 -4
Ver Arquivo
@@ -104,7 +104,7 @@ jsxc.options = {
* - Force new connection with loginForm.jid and loginForm.passed
* - Pause connection and do nothing
*
* @type {('attach', 'force', 'pause')}
* @type {(attach|force|pause)}
*/
ifFound: 'attach',
@@ -185,10 +185,10 @@ jsxc.options = {
*
* @memberOf jsxc.options
* @param data Holds all data as key/value
* @returns {boolean} false if function failes
* @param cb Called with true on success, false otherwise
*/
saveSettinsPermanent: function() {
saveSettinsPermanent: function(data, cb) {
cb(true);
},
carbons: {
+11 -6
Ver Arquivo
@@ -620,7 +620,14 @@ jsxc.webrtc = {
var bid = jsxc.jidToBid(session.peerID);
if (this.localStream) {
this.localStream.stop();
if (typeof this.localStream.stop === 'function') {
this.localStream.stop();
} else {
var tracks = this.localStream.getTracks();
tracks.forEach(function(track) {
track.stop();
});
}
}
if ($('.jsxc_videoContainer').length) {
@@ -770,7 +777,7 @@ jsxc.webrtc = {
});
$(document).one('error.jingle', function(e, sid, error) {
if (error.source !== 'offer') {
if (error && error.source !== 'offer') {
return;
}
@@ -1094,10 +1101,8 @@ jsxc.gui.showVideoWindow = function(jid) {
}
});
$('#jsxc_webrtc .jsxc_videoContainer').toggle(function() {
$('#jsxc_webrtc .jsxc_controlbar').css('opacity', '1.0');
}, function() {
$('#jsxc_webrtc .jsxc_controlbar').css('opacity', '');
$('#jsxc_webrtc .jsxc_videoContainer').click(function() {
$('#jsxc_webrtc .jsxc_controlbar').toggleClass('jsxc_visible');
});
return $('#jsxc_webrtc');
+1 -1
Ver Arquivo
@@ -16,7 +16,7 @@
<div></div>
</div>
</div>
<div class="jsxc_controlbar">
<div class="jsxc_controlbar jsxc_visible">
<div>
<div class="jsxc_hangUp jsxc_videoControl" />
<div class="jsxc_fullscreen jsxc_videoControl" />