Comparar commits

..

23 Commits

Autor SHA1 Mensagem Data
sualko 66ca116934 add automatic login 2017-06-29 16:12:51 +02:00
Klaus dbc6ed082c Update .travis.yml 2017-06-29 11:02:26 +02:00
sualko e7c5473298 use span for emoticons 2017-06-29 10:22:45 +02:00
sualko 2231d19c35 add function to retrieve last message 2017-06-29 10:21:59 +02:00
sualko 6e1622a6be fix uncaught type error (fix #569) 2017-06-28 18:19:50 +02:00
sualko 0fbcca2f5e fix selection dialog (fix #552) 2017-06-26 15:47:46 +02:00
sualko f65be0b254 fix unlimited max size for http file upload 2017-06-14 10:06:27 +02:00
sualko da3b092628 build v3.2.1 2017-06-01 14:46:26 +02:00
sualko 46bab87c9a update locales 2017-06-01 14:21:54 +02:00
sualko 2f2924eba3 update change log 2017-06-01 14:21:40 +02:00
Klaus 7d563d7c91 Merge pull request #539 from jsxc/http-upload-fix-1
fix thumbnail transfer

fix #526 fix #534
2017-05-31 09:37:02 +02:00
sualko f7c7f6c26f disable links in last message view 2017-05-30 13:59:29 +02:00
Klaus c25195a8e4 Merge pull request #541 from jsxc/muc-file-transfer
enable http upload for muc

fix #535
2017-05-30 13:43:21 +02:00
sualko 60ed6299ce fix fallback language (fix #542) 2017-05-30 13:02:37 +02:00
sualko 00c9bda017 add debug message 2017-05-29 13:34:09 +02:00
sualko 764eb2230a fix disabled file transfer link 2017-05-29 13:33:40 +02:00
sualko 8f0bc35e87 catch undefined exception during file transfer 2017-05-29 13:33:04 +02:00
sualko b34dbb3238 remove favicon badge after logout 2017-05-24 14:01:09 +02:00
sualko e098951454 enable http upload for muc 2017-05-24 13:48:12 +02:00
sualko 5cb76e748b fix file transfer ui update 2017-05-24 13:39:25 +02:00
sualko 8f318182fb fix handler for muc menu items 2017-05-24 13:38:42 +02:00
sualko 5ead597881 fix thumbnail transfer
- should xhtml-im conform now
- include plaintext body to http upload message
2017-05-23 16:05:59 +02:00
sualko 14e7cdc537 reduce thumbnail size
- use jpeg 30%
2017-05-23 16:03:22 +02:00
84 arquivos alterados com 987 adições e 569 exclusões
+2
Ver Arquivo
@@ -1,5 +1,7 @@
language: node_js
dist: trusty
node_js:
- "node"
+17
Ver Arquivo
@@ -6,6 +6,23 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
## 3.2.1 - 2017-06-01
### Added
- add Greek translation
### Fixed
- fix thumbnail transfer
- fix handler for muc menu items
- catch undefined exception during file transfer
- fix disabled file transfer link
- [#542](https://github.com/jsxc/jsxc/issues/542) fix fallback language
- remove favicon badge after logout
### Changed
- reduce thumbnail size
- enable http upload for muc
- disable links in last message view
## 3.2.0 - 2017-05-17
### Added
- [#150](https://github.com/jsxc/jsxc/issues/150) add Message Archive Management (XEP-0313)
+1 -1
Ver Arquivo
@@ -1,6 +1,6 @@
{
"name": "jsxc",
"version": "3.2.0-beta.2",
"version": "3.2.1",
"homepage": "https://www.jsxc.org",
"authors": [
"sualko <klaus@jsxc.org>"
+1 -1
Ver Arquivo
@@ -3276,7 +3276,7 @@ div.jsxc_transfer {
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_fade {
padding-top: 44px; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_fingerprints, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_verification, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_transfer, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_video, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_sendFile {
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_fingerprints, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_verification, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_transfer, .jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_video {
display: none; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_members {
+140 -46
Ver Arquivo
@@ -1,5 +1,5 @@
/*!
* jsxc v3.2.0 - 2017-05-17
* jsxc v3.2.1 - 2017-06-01
*
* Copyright (c) 2017 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.2.0
* @version 3.2.1
* @license MIT
*/
@@ -25,7 +25,7 @@ var jsxc = null, RTC = null, RTCPeerconnection = null;
*/
jsxc = {
/** Version of jsxc */
version: '3.2.0',
version: '3.2.1',
/** True if i'm the master */
master: false,
@@ -293,6 +293,7 @@ jsxc = {
lng: lang,
fallbackLng: 'en',
resources: I18next,
returnNull: false,
debug: jsxc.storage.getItem('debug') === true,
interpolation: {
prefix: '__',
@@ -1187,6 +1188,10 @@ jsxc.xmpp = {
jsxc.storage.removeUserItem('windowlist');
jsxc.storage.removeUserItem('unreadMsg');
if (jsxc.gui.favicon) {
jsxc.gui.favicon.badge(0);
}
// Hide dropdown menu
$('body').click();
@@ -1951,6 +1956,7 @@ jsxc.xmpp = {
var httpUploadElement = htmlBody.find('a[data-type][data-name][data-size]');
if (httpUploadElement.length === 1) {
// deprecated syntax @since 3.2.1
attachment = {
type: httpUploadElement.attr('data-type'),
name: httpUploadElement.attr('data-name'),
@@ -1969,6 +1975,44 @@ jsxc.xmpp = {
if (!attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i) || !attachment.name.match(/^[\s\w.,-]+$/i) || !attachment.size.match(/^\d+$/i)) {
attachment = undefined;
jsxc.warn('Invalid file type, name or size.');
}
} else if (htmlBody.find('>a').length === 1) {
var linkElement = htmlBody.find('>a');
var metaString = '';
var thumbnail;
if (linkElement.find('>img').length === 1) {
var imgElement = linkElement.find('>img');
var src = imgElement.attr('src') || '';
var altString = imgElement.attr('alt') || '';
metaString = altString.replace(/^Preview:/, '');
if (src.match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+/]+$/i)) {
thumbnail = src;
}
} else {
metaString = linkElement.text();
}
var metaMatch = metaString.match(/^([a-z]+\/[a-z0-9-+.*]+)\|(\d+)\|([\s\w.,-]+)/);
if (metaMatch) {
attachment = {
type: metaMatch[1],
size: metaMatch[2],
name: metaMatch[3],
};
if (thumbnail) {
attachment.thumbnail = thumbnail;
}
if (linkElement.attr('href') && linkElement.attr('href').match(/^https?:\/\//)) {
attachment.data = linkElement.attr('href');
body = null;
}
} else {
jsxc.warn('Invalid file type, name or size.');
}
}
@@ -1978,7 +2022,6 @@ jsxc.xmpp = {
// @TODO check for file upload url after decryption
jsxc.otr.objects[bid].receiveMsg(body, {
_uid: mid,
foo: 'bar',
stamp: stamp,
forwarded: forwarded,
attachment: attachment
@@ -2219,7 +2262,7 @@ jsxc.xmpp = {
*/
sendMessage: function(message) {
var bid = message.bid;
var msg = message.htmlMsg;
var msg = message.msg;
var mucRoomNames = (jsxc.xmpp.conn.muc && jsxc.xmpp.conn.muc.roomNames) ? jsxc.xmpp.conn.muc.roomNames : [];
var isMucBid = mucRoomNames.indexOf(bid) >= 0;
@@ -2253,18 +2296,14 @@ jsxc.xmpp = {
id: message._uid
});
if (message.type === jsxc.Message.HTML) {
xmlMsg.c("html", {
if (message.type === jsxc.Message.HTML && msg === message.msg && message.htmlMsg) {
xmlMsg.c('body').t(msg);
xmlMsg.up().c('html', {
xmlns: Strophe.NS.XHTML_IM
});
// Omit StropheJS XEP-0071 limitations
var body = Strophe.xmlElement("body", {
}).c('body', {
xmlns: Strophe.NS.XHTML
});
body.innerHTML = msg;
xmlMsg.node.appendChild(body);
}).h(message.htmlMsg).up();
} else {
xmlMsg.c('body').t(msg);
}
@@ -4121,7 +4160,7 @@ jsxc.gui.roster = {
while (history.length > i) {
var message = new jsxc.Message(history[i]);
if (message.direction !== jsxc.Message.SYS) {
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(message.msg);
jsxc.gui.window.setLastMsg(bid, message.msg);
break;
}
i++;
@@ -4532,6 +4571,10 @@ jsxc.gui.window = {
win.find('.jsxc_sendFile').click(function() {
$('body').click();
if ($(this).hasClass('jsxc_disabled')) {
return;
}
jsxc.gui.window.sendFile(bid);
});
@@ -5216,7 +5259,7 @@ jsxc.gui.window = {
}
if (direction !== 'sys') {
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(msg);
jsxc.gui.window.setLastMsg(bid, msg);
}
var currentMessageElement = jsxc.Message.getDOM(uid);
@@ -5285,6 +5328,15 @@ jsxc.gui.window = {
jsxc.gui.window.get(bid).find('.jsxc_textinput').val(text);
},
setLastMsg: function(bid, msg) {
var lastMsgTextElement = $('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text');
lastMsgTextElement.html(msg);
lastMsgTextElement.find('a').each(function() {
$(this).replaceWith('<span>' + $(this).text() + '</span>');
});
},
/**
* Load old log into chat area
*
@@ -5595,7 +5647,15 @@ jsxc.fileTransfer.startGuiAction = function(jid) {
var res = Strophe.getResourceFromJid(jid);
if (!res && !jsxc.xmpp.httpUpload.ready) {
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
if (jsxc.fileTransfer.isWebrtcCapable(bid)) {
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
} else {
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('No_proper_file_transfer_method_available')
});
}
return;
}
@@ -5671,6 +5731,19 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
});
};
jsxc.fileTransfer.showFileTooLarge = function(bid, file) {
var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
var fileSize = jsxc.fileTransfer.formatByte(file.size);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
});
jsxc.gui.window.hideOverlay(bid);
};
/**
* Callback for file selector.
*
@@ -5681,27 +5754,24 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
*/
jsxc.fileTransfer.fileSelected = function(jid, msg, file) {
var bid = jsxc.jidToBid(jid);
var maxSize = jsxc.options.get('httpUpload').maxSize;
var httpUploadOptions = jsxc.options.get('httpUpload') || {};
var maxSize = httpUploadOptions.maxSize || 0;
if (file.transportMethod !== 'webrtc' && jsxc.xmpp.httpUpload.ready && maxSize >= 0 && file.size > maxSize) {
jsxc.debug('File too large for http upload.');
file.transportMethod = 'webrtc';
if (jsxc.fileTransfer.isWebrtcCapable(bid)) {
// try data channels
file.transportMethod = 'webrtc';
jsxc.fileTransfer.selectResource(bid, function(jid) {
jsxc.fileTransfer.fileSelected(jid, msg, file);
}, function() {
var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
var fileSize = jsxc.fileTransfer.formatByte(file.size);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
jsxc.fileTransfer.selectResource(bid, function(jid) {
jsxc.fileTransfer.fileSelected(jid, msg, file);
}, function() {
jsxc.fileTransfer.showFileTooLarge(bid, file);
});
jsxc.gui.window.hideOverlay(bid);
});
} else {
jsxc.fileTransfer.showFileTooLarge(bid, file);
}
return;
} else if (!jsxc.xmpp.httpUpload.ready && Strophe.getResourceFromJid(jid)) {
@@ -5789,6 +5859,10 @@ jsxc.fileTransfer.updateIcons = function(bid) {
if (jsxc.xmpp.httpUpload.ready) {
win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
return;
} else if (!jsxc.fileTransfer.isWebrtcCapable(bid)) {
win.find('.jsxc_sendFile').addClass('jsxc_disabled');
return;
}
@@ -5804,6 +5878,10 @@ jsxc.fileTransfer.updateIcons = function(bid) {
}
};
jsxc.fileTransfer.isWebrtcCapable = function(bid) {
return !jsxc.muc.isGroupchat(bid);
};
$(document).on('update.gui.jsxc', function(ev, bid) {
jsxc.fileTransfer.updateIcons(bid);
});
@@ -6098,7 +6176,7 @@ jsxc.Message.prototype.save = function() {
ctx.drawImage(img, sx, sy, sWidth, sHeight, 0, 0, dWidth, dHeight);
this.attachment.thumbnail = canvas.toDataURL();
this.attachment.thumbnail = canvas.toDataURL('image/jpeg', 0.3);
if (this.direction === 'out') {
// save storage
@@ -6998,6 +7076,7 @@ jsxc.muc = {
});
var destroy = $('<a>');
destroy.attr('href', '#');
destroy.text($.t('Destroy'));
destroy.addClass('jsxc_destroy');
destroy.hide();
@@ -7008,6 +7087,7 @@ jsxc.muc = {
win.find('.jsxc_settings ul').append($('<li>').append(destroy));
var configure = $('<a>');
configure.attr('href', '#');
configure.text($.t('Configure'));
configure.addClass('jsxc_configure');
configure.hide();
@@ -7036,6 +7116,7 @@ jsxc.muc = {
}
var leave = $('<a>');
leave.attr('href', '#');
leave.text($.t('Leave'));
leave.addClass('jsxc_leave');
leave.click(function() {
@@ -7857,6 +7938,14 @@ jsxc.muc = {
return html.get(0);
}
},
isGroupchat: function(jid) {
var bid = jsxc.jidToBid(jid);
var userData = jsxc.storage.setUserItem('buddy', bid) || {};
return userData.type === 'groupchat';
}
};
@@ -12089,22 +12178,27 @@ jsxc.xmpp.httpUpload.sendFile = function(file, message) {
message.delete();
} else if (data.get && data.put) {
// slot received, start upload
jsxc.debug('slot received, start upload to ' + data.put);
self.uploadFile(data.put, file, message, function() {
var attachment = message.attachment;
var metaString = attachment.type + '|' + attachment.size + '|' + attachment.name;
var a = $('<a>');
a.attr('href', data.get);
a.attr('data-name', message.attachment.name);
a.attr('data-type', message.attachment.type);
a.attr('data-size', message.attachment.size);
if (message.attachment.thumbnail) {
a.attr('data-thumbnail', message.attachment.thumbnail);
attachment.data = data.get;
if (attachment.thumbnail) {
var img = $('<img>');
img.attr('alt', 'Preview:' + metaString);
img.attr('src', attachment.thumbnail);
a.prepend(img);
} else {
a.text(metaString);
}
a.text(data.get);
message.attachment.data = data.get;
message.msg = $('<span>').append(a).html();
message.msg = data.get;
message.htmlMsg = $('<span>').append(a).html();
message.type = jsxc.Message.HTML;
jsxc.gui.window.postMessage(message);
});
@@ -12249,8 +12343,8 @@ jsxc.xmpp.httpUpload.failedRequestSlotCB = function(stanza, cb) {
});
};
$(document).on('stateChange.jsxc', function(ev, state) {
if (state === jsxc.CONST.STATE.READY) {
$(document).on('stateUIChange.jsxc', function(ev, state) {
if (state === jsxc.CONST.UISTATE.INITIATING) {
jsxc.xmpp.httpUpload.init();
}
});
+9 -9
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
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+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
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
+1 -1
Ver Arquivo
@@ -458,7 +458,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -56,7 +56,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -3620,7 +3620,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+5 -5
Ver Arquivo
@@ -253,7 +253,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line123">line 123</a>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line144">line 144</a>
</li></ul></dd>
@@ -579,7 +579,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line55">line 55</a>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line63">line 63</a>
</li></ul></dd>
@@ -710,7 +710,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line94">line 94</a>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line102">line 102</a>
</li></ul></dd>
@@ -972,7 +972,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line221">line 221</a>
<a href="jsxc.lib.fileTransfer.js.html">jsxc.lib.fileTransfer.js</a>, <a href="jsxc.lib.fileTransfer.js.html#line239">line 239</a>
</li></ul></dd>
@@ -1020,7 +1020,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -658,7 +658,7 @@ otherwise only dialog with given name is closed.
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -3971,7 +3971,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -536,7 +536,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -1707,7 +1707,7 @@ alphabetical of the name
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+20 -20
Ver Arquivo
@@ -209,7 +209,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#line2342">line 2342</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2346">line 2346</a>
</li></ul></dd>
@@ -340,7 +340,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#line2466">line 2466</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2470">line 2470</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.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2612">line 2612</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2616">line 2616</a>
</li></ul></dd>
@@ -648,7 +648,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#line2387">line 2387</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2391">line 2391</a>
</li></ul></dd>
@@ -797,7 +797,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#line2853">line 2853</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2866">line 2866</a>
</li></ul></dd>
@@ -946,7 +946,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#line2317">line 2317</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2321">line 2321</a>
</li></ul></dd>
@@ -1077,7 +1077,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#line2292">line 2292</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2296">line 2296</a>
</li></ul></dd>
@@ -1242,7 +1242,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#line2441">line 2441</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2445">line 2445</a>
</li></ul></dd>
@@ -1373,7 +1373,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#line2480">line 2480</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2484">line 2484</a>
</li></ul></dd>
@@ -1658,7 +1658,7 @@ created.
<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#line2303">line 2303</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2307">line 2307</a>
</li></ul></dd>
@@ -2140,7 +2140,7 @@ and save. Check border cases and remove html.
<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#line2516">line 2516</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2520">line 2520</a>
</li></ul></dd>
@@ -2293,7 +2293,7 @@ and save. Check border cases and remove html.
<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#line2508">line 2508</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2512">line 2512</a>
</li></ul></dd>
@@ -2471,7 +2471,7 @@ and save. Check border cases and remove html.
<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#line2885">line 2885</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2898">line 2898</a>
</li></ul></dd>
@@ -2679,7 +2679,7 @@ and save. Check border cases and remove html.
<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#line2223">line 2223</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2227">line 2227</a>
</li></ul></dd>
@@ -2810,7 +2810,7 @@ and save. Check border cases and remove html.
<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#line2817">line 2817</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2830">line 2830</a>
</li></ul></dd>
@@ -2959,7 +2959,7 @@ and save. Check border cases and remove html.
<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#line2495">line 2495</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2499">line 2499</a>
</li></ul></dd>
@@ -3113,7 +3113,7 @@ and save. Check border cases and remove html.
<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#line2807">line 2807</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2811">line 2811</a>
</li></ul></dd>
@@ -3262,7 +3262,7 @@ and save. Check border cases and remove html.
<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#line2374">line 2374</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2378">line 2378</a>
</li></ul></dd>
@@ -3393,7 +3393,7 @@ and save. Check border cases and remove html.
<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#line2352">line 2352</a>
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2356">line 2356</a>
</li></ul></dd>
@@ -3441,7 +3441,7 @@ and save. Check border cases and remove html.
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+24 -24
Ver Arquivo
@@ -1571,7 +1571,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#line619">line 619</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line620">line 620</a>
</li></ul></dd>
@@ -1879,7 +1879,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#line710">line 710</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line711">line 711</a>
</li></ul></dd>
@@ -2133,7 +2133,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#line817">line 817</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line818">line 818</a>
</li></ul></dd>
@@ -2287,7 +2287,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#line912">line 912</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line913">line 913</a>
</li></ul></dd>
@@ -2520,7 +2520,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#line888">line 888</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line889">line 889</a>
</li></ul></dd>
@@ -2673,7 +2673,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#line932">line 932</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line933">line 933</a>
</li></ul></dd>
@@ -2918,7 +2918,7 @@ Afterwards it performs the following actions in the given order:
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line860">line 860</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line861">line 861</a>
</li></ul></dd>
@@ -3022,7 +3022,7 @@ Afterwards it performs the following actions in the given order:
<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#line461">line 461</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line462">line 462</a>
</li></ul></dd>
@@ -3170,7 +3170,7 @@ Afterwards it performs the following actions in the given order:
<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#line735">line 735</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line736">line 736</a>
</li></ul></dd>
@@ -3311,7 +3311,7 @@ Afterwards it performs the following actions in the given order:
<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#line720">line 720</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line721">line 721</a>
</li></ul></dd>
@@ -3415,7 +3415,7 @@ Afterwards it performs the following actions in the given order:
<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#line670">line 670</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line671">line 671</a>
</li></ul></dd>
@@ -3498,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#line681">line 681</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line682">line 682</a>
</li></ul></dd>
@@ -3580,7 +3580,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#line597">line 597</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line598">line 598</a>
</li></ul></dd>
@@ -3662,7 +3662,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#line579">line 579</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line580">line 580</a>
</li></ul></dd>
@@ -3839,7 +3839,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#line473">line 473</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line474">line 474</a>
</li></ul></dd>
@@ -3970,7 +3970,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#line700">line 700</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line701">line 701</a>
</li></ul></dd>
@@ -4118,7 +4118,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#line829">line 829</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line830">line 830</a>
</li></ul></dd>
@@ -4210,7 +4210,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#line742">line 742</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line743">line 743</a>
</li></ul></dd>
@@ -4292,7 +4292,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#line764">line 764</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line765">line 765</a>
</li></ul></dd>
@@ -4469,7 +4469,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#line407">line 407</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line408">line 408</a>
</li></ul></dd>
@@ -4551,7 +4551,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#line663">line 663</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line664">line 664</a>
</li></ul></dd>
@@ -4633,7 +4633,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#line794">line 794</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line795">line 795</a>
</li></ul></dd>
@@ -4787,7 +4787,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#line840">line 840</a>
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line841">line 841</a>
</li></ul></dd>
@@ -5011,7 +5011,7 @@ normal signal
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+2 -2
Ver Arquivo
@@ -150,7 +150,7 @@ jsxc.Message.prototype.save = function() {
ctx.drawImage(img, sx, sy, sWidth, sHeight, 0, 0, dWidth, dHeight);
this.attachment.thumbnail = canvas.toDataURL();
this.attachment.thumbnail = canvas.toDataURL('image/jpeg', 0.3);
if (this.direction === 'out') {
// save storage
@@ -309,7 +309,7 @@ jsxc.Message.PLAIN = 'plain';
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+43 -17
Ver Arquivo
@@ -64,7 +64,15 @@ jsxc.fileTransfer.startGuiAction = function(jid) {
var res = Strophe.getResourceFromJid(jid);
if (!res &amp;&amp; !jsxc.xmpp.httpUpload.ready) {
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
if (jsxc.fileTransfer.isWebrtcCapable(bid)) {
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
} else {
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('No_proper_file_transfer_method_available')
});
}
return;
}
@@ -140,6 +148,19 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
});
};
jsxc.fileTransfer.showFileTooLarge = function(bid, file) {
var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
var fileSize = jsxc.fileTransfer.formatByte(file.size);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
});
jsxc.gui.window.hideOverlay(bid);
};
/**
* Callback for file selector.
*
@@ -150,27 +171,24 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
*/
jsxc.fileTransfer.fileSelected = function(jid, msg, file) {
var bid = jsxc.jidToBid(jid);
var maxSize = jsxc.options.get('httpUpload').maxSize;
var httpUploadOptions = jsxc.options.get('httpUpload') || {};
var maxSize = httpUploadOptions.maxSize || 0;
if (file.transportMethod !== 'webrtc' &amp;&amp; jsxc.xmpp.httpUpload.ready &amp;&amp; maxSize >= 0 &amp;&amp; file.size > maxSize) {
jsxc.debug('File too large for http upload.');
file.transportMethod = 'webrtc';
if (jsxc.fileTransfer.isWebrtcCapable(bid)) {
// try data channels
file.transportMethod = 'webrtc';
jsxc.fileTransfer.selectResource(bid, function(jid) {
jsxc.fileTransfer.fileSelected(jid, msg, file);
}, function() {
var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
var fileSize = jsxc.fileTransfer.formatByte(file.size);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
jsxc.fileTransfer.selectResource(bid, function(jid) {
jsxc.fileTransfer.fileSelected(jid, msg, file);
}, function() {
jsxc.fileTransfer.showFileTooLarge(bid, file);
});
jsxc.gui.window.hideOverlay(bid);
});
} else {
jsxc.fileTransfer.showFileTooLarge(bid, file);
}
return;
} else if (!jsxc.xmpp.httpUpload.ready &amp;&amp; Strophe.getResourceFromJid(jid)) {
@@ -258,6 +276,10 @@ jsxc.fileTransfer.updateIcons = function(bid) {
if (jsxc.xmpp.httpUpload.ready) {
win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
return;
} else if (!jsxc.fileTransfer.isWebrtcCapable(bid)) {
win.find('.jsxc_sendFile').addClass('jsxc_disabled');
return;
}
@@ -273,6 +295,10 @@ jsxc.fileTransfer.updateIcons = function(bid) {
}
};
jsxc.fileTransfer.isWebrtcCapable = function(bid) {
return !jsxc.muc.isGroupchat(bid);
};
$(document).on('update.gui.jsxc', function(ev, bid) {
jsxc.fileTransfer.updateIcons(bid);
});
@@ -292,7 +318,7 @@ $(document).on('update.gui.jsxc', function(ev, bid) {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -207,7 +207,7 @@ jsxc.gui.avatar.processQueue = function() {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+16 -3
Ver Arquivo
@@ -1672,7 +1672,7 @@ jsxc.gui.roster = {
while (history.length > i) {
var message = new jsxc.Message(history[i]);
if (message.direction !== jsxc.Message.SYS) {
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(message.msg);
jsxc.gui.window.setLastMsg(bid, message.msg);
break;
}
i++;
@@ -2083,6 +2083,10 @@ jsxc.gui.window = {
win.find('.jsxc_sendFile').click(function() {
$('body').click();
if ($(this).hasClass('jsxc_disabled')) {
return;
}
jsxc.gui.window.sendFile(bid);
});
@@ -2767,7 +2771,7 @@ jsxc.gui.window = {
}
if (direction !== 'sys') {
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(msg);
jsxc.gui.window.setLastMsg(bid, msg);
}
var currentMessageElement = jsxc.Message.getDOM(uid);
@@ -2836,6 +2840,15 @@ jsxc.gui.window = {
jsxc.gui.window.get(bid).find('.jsxc_textinput').val(text);
},
setLastMsg: function(bid, msg) {
var lastMsgTextElement = $('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text');
lastMsgTextElement.html(msg);
lastMsgTextElement.find('a').each(function() {
$(this).replaceWith('&lt;span>' + $(this).text() + '&lt;/span>');
});
},
/**
* Load old log into chat area
*
@@ -3123,7 +3136,7 @@ jsxc.gui.template.get = function(name, bid, msg) {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+2 -1
Ver Arquivo
@@ -301,6 +301,7 @@ jsxc = {
lng: lang,
fallbackLng: 'en',
resources: I18next,
returnNull: false,
debug: jsxc.storage.getItem('debug') === true,
interpolation: {
prefix: '__',
@@ -1009,7 +1010,7 @@ jsxc = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+12 -1
Ver Arquivo
@@ -782,6 +782,7 @@ jsxc.muc = {
});
var destroy = $('&lt;a>');
destroy.attr('href', '#');
destroy.text($.t('Destroy'));
destroy.addClass('jsxc_destroy');
destroy.hide();
@@ -792,6 +793,7 @@ jsxc.muc = {
win.find('.jsxc_settings ul').append($('&lt;li>').append(destroy));
var configure = $('&lt;a>');
configure.attr('href', '#');
configure.text($.t('Configure'));
configure.addClass('jsxc_configure');
configure.hide();
@@ -820,6 +822,7 @@ jsxc.muc = {
}
var leave = $('&lt;a>');
leave.attr('href', '#');
leave.text($.t('Leave'));
leave.addClass('jsxc_leave');
leave.click(function() {
@@ -1641,6 +1644,14 @@ jsxc.muc = {
return html.get(0);
}
},
isGroupchat: function(jid) {
var bid = jsxc.jidToBid(jid);
var userData = jsxc.storage.setUserItem('buddy', bid) || {};
return userData.type === 'groupchat';
}
};
@@ -1671,7 +1682,7 @@ $(document).one('connected.jsxc', function() {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -195,7 +195,7 @@ jsxc.notice = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -319,7 +319,7 @@ jsxc.notification = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -355,7 +355,7 @@ jsxc.options = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -576,7 +576,7 @@ jsxc.otr = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -685,7 +685,7 @@ jsxc.storage = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -102,7 +102,7 @@ jsxc.tab = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -1527,7 +1527,7 @@ $(document).ready(function() {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -387,7 +387,7 @@ jsxc.xmpp.bookmarks.showDialog = function(room) {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -276,7 +276,7 @@ $(document).on('attached.jsxc', jsxc.xmpp.chatState.init);
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+18 -13
Ver Arquivo
@@ -190,22 +190,27 @@ jsxc.xmpp.httpUpload.sendFile = function(file, message) {
message.delete();
} else if (data.get &amp;&amp; data.put) {
// slot received, start upload
jsxc.debug('slot received, start upload to ' + data.put);
self.uploadFile(data.put, file, message, function() {
var attachment = message.attachment;
var metaString = attachment.type + '|' + attachment.size + '|' + attachment.name;
var a = $('&lt;a>');
a.attr('href', data.get);
a.attr('data-name', message.attachment.name);
a.attr('data-type', message.attachment.type);
a.attr('data-size', message.attachment.size);
if (message.attachment.thumbnail) {
a.attr('data-thumbnail', message.attachment.thumbnail);
attachment.data = data.get;
if (attachment.thumbnail) {
var img = $('&lt;img>');
img.attr('alt', 'Preview:' + metaString);
img.attr('src', attachment.thumbnail);
a.prepend(img);
} else {
a.text(metaString);
}
a.text(data.get);
message.attachment.data = data.get;
message.msg = $('&lt;span>').append(a).html();
message.msg = data.get;
message.htmlMsg = $('&lt;span>').append(a).html();
message.type = jsxc.Message.HTML;
jsxc.gui.window.postMessage(message);
});
@@ -350,8 +355,8 @@ jsxc.xmpp.httpUpload.failedRequestSlotCB = function(stanza, cb) {
});
};
$(document).on('stateChange.jsxc', function(ev, state) {
if (state === jsxc.CONST.STATE.READY) {
$(document).on('stateUIChange.jsxc', function(ev, state) {
if (state === jsxc.CONST.UISTATE.INITIATING) {
jsxc.xmpp.httpUpload.init();
}
});
@@ -371,7 +376,7 @@ $(document).on('stateChange.jsxc', function(ev, state) {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+51 -13
Ver Arquivo
@@ -227,6 +227,10 @@ jsxc.xmpp = {
jsxc.storage.removeUserItem('windowlist');
jsxc.storage.removeUserItem('unreadMsg');
if (jsxc.gui.favicon) {
jsxc.gui.favicon.badge(0);
}
// Hide dropdown menu
$('body').click();
@@ -991,6 +995,7 @@ jsxc.xmpp = {
var httpUploadElement = htmlBody.find('a[data-type][data-name][data-size]');
if (httpUploadElement.length === 1) {
// deprecated syntax @since 3.2.1
attachment = {
type: httpUploadElement.attr('data-type'),
name: httpUploadElement.attr('data-name'),
@@ -1009,6 +1014,44 @@ jsxc.xmpp = {
if (!attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i) || !attachment.name.match(/^[\s\w.,-]+$/i) || !attachment.size.match(/^\d+$/i)) {
attachment = undefined;
jsxc.warn('Invalid file type, name or size.');
}
} else if (htmlBody.find('>a').length === 1) {
var linkElement = htmlBody.find('>a');
var metaString = '';
var thumbnail;
if (linkElement.find('>img').length === 1) {
var imgElement = linkElement.find('>img');
var src = imgElement.attr('src') || '';
var altString = imgElement.attr('alt') || '';
metaString = altString.replace(/^Preview:/, '');
if (src.match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+/]+$/i)) {
thumbnail = src;
}
} else {
metaString = linkElement.text();
}
var metaMatch = metaString.match(/^([a-z]+\/[a-z0-9-+.*]+)\|(\d+)\|([\s\w.,-]+)/);
if (metaMatch) {
attachment = {
type: metaMatch[1],
size: metaMatch[2],
name: metaMatch[3],
};
if (thumbnail) {
attachment.thumbnail = thumbnail;
}
if (linkElement.attr('href') &amp;&amp; linkElement.attr('href').match(/^https?:\/\//)) {
attachment.data = linkElement.attr('href');
body = null;
}
} else {
jsxc.warn('Invalid file type, name or size.');
}
}
@@ -1018,7 +1061,6 @@ jsxc.xmpp = {
// @TODO check for file upload url after decryption
jsxc.otr.objects[bid].receiveMsg(body, {
_uid: mid,
foo: 'bar',
stamp: stamp,
forwarded: forwarded,
attachment: attachment
@@ -1259,7 +1301,7 @@ jsxc.xmpp = {
*/
sendMessage: function(message) {
var bid = message.bid;
var msg = message.htmlMsg;
var msg = message.msg;
var mucRoomNames = (jsxc.xmpp.conn.muc &amp;&amp; jsxc.xmpp.conn.muc.roomNames) ? jsxc.xmpp.conn.muc.roomNames : [];
var isMucBid = mucRoomNames.indexOf(bid) >= 0;
@@ -1293,18 +1335,14 @@ jsxc.xmpp = {
id: message._uid
});
if (message.type === jsxc.Message.HTML) {
xmlMsg.c("html", {
if (message.type === jsxc.Message.HTML &amp;&amp; msg === message.msg &amp;&amp; message.htmlMsg) {
xmlMsg.c('body').t(msg);
xmlMsg.up().c('html', {
xmlns: Strophe.NS.XHTML_IM
});
// Omit StropheJS XEP-0071 limitations
var body = Strophe.xmlElement("body", {
}).c('body', {
xmlns: Strophe.NS.XHTML
});
body.innerHTML = msg;
xmlMsg.node.appendChild(body);
}).h(message.htmlMsg).up();
} else {
xmlMsg.c('body').t(msg);
}
@@ -1530,7 +1568,7 @@ jsxc.xmpp.carbons = {
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -259,7 +259,7 @@ $(document).on('init.window.jsxc', jsxc.xmpp.mam.initWindow);
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:22 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+9 -9
Ver Arquivo
@@ -282,7 +282,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#line1457">line 1457</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1460">line 1460</a>
</li></ul></dd>
@@ -344,7 +344,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#line985">line 985</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line988">line 988</a>
</li></ul></dd>
@@ -774,7 +774,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#line1315">line 1315</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1318">line 1318</a>
</li></ul></dd>
@@ -1033,7 +1033,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#line1228">line 1228</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1231">line 1231</a>
</li></ul></dd>
@@ -1607,7 +1607,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#line961">line 961</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line964">line 964</a>
</li></ul></dd>
@@ -1783,7 +1783,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#line1193">line 1193</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1196">line 1196</a>
</li></ul></dd>
@@ -1937,7 +1937,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#line1270">line 1270</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1273">line 1273</a>
</li></ul></dd>
@@ -2091,7 +2091,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#line1286">line 1286</a>
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1289">line 1289</a>
</li></ul></dd>
@@ -2446,7 +2446,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -1405,7 +1405,7 @@ messages.
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -2755,7 +2755,7 @@ modification is done to it.
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -2220,7 +2220,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -2332,7 +2332,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -434,7 +434,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -3444,7 +3444,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -1022,7 +1022,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+5 -5
Ver Arquivo
@@ -73,7 +73,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#line1411">line 1411</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1449">line 1449</a>
</li></ul></dd>
@@ -204,7 +204,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#line1451">line 1451</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1489">line 1489</a>
</li></ul></dd>
@@ -330,7 +330,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#line1425">line 1425</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1463">line 1463</a>
</li></ul></dd>
@@ -456,7 +456,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#line1477">line 1477</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1515">line 1515</a>
</li></ul></dd>
@@ -504,7 +504,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -1208,7 +1208,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+11 -11
Ver Arquivo
@@ -251,7 +251,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#line1159">line 1159</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1201">line 1201</a>
</li></ul></dd>
@@ -377,7 +377,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#line1344">line 1344</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1382">line 1382</a>
</li></ul></dd>
@@ -564,7 +564,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#line1367">line 1367</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1405">line 1405</a>
</li></ul></dd>
@@ -748,7 +748,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#line1321">line 1321</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1359">line 1359</a>
</li></ul></dd>
@@ -1028,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#line1073">line 1073</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1115">line 1115</a>
</li></ul></dd>
@@ -1128,7 +1128,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#line1102">line 1102</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1144">line 1144</a>
</li></ul></dd>
@@ -1259,7 +1259,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#line1194">line 1194</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1236">line 1236</a>
</li></ul></dd>
@@ -1413,7 +1413,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#line1138">line 1138</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1180">line 1180</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.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1232">line 1232</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1274">line 1274</a>
</li></ul></dd>
@@ -1657,7 +1657,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#line403">line 403</a>
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line407">line 407</a>
</li></ul></dd>
@@ -1705,7 +1705,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+5 -5
Ver Arquivo
@@ -321,7 +321,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line298">line 298</a>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line303">line 303</a>
</li></ul></dd>
@@ -760,7 +760,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line241">line 241</a>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line246">line 246</a>
</li></ul></dd>
@@ -1068,7 +1068,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line274">line 274</a>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line279">line 279</a>
</li></ul></dd>
@@ -1268,7 +1268,7 @@
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line197">line 197</a>
<a href="jsxc.lib.xmpp.httpUpload.js.html">jsxc.lib.xmpp.httpUpload.js</a>, <a href="jsxc.lib.xmpp.httpUpload.js.html#line202">line 202</a>
</li></ul></dd>
@@ -1316,7 +1316,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+1 -1
Ver Arquivo
@@ -129,7 +129,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed May 17 2017 13:19:50 GMT+0200 (CEST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu Jun 01 2017 14:24:23 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "Ältere Nachrichten laden",
"Message_history": "Nachrichten Verlauf",
"setting-mam-enable": "Falls aktiviert können Sie gespeicherte Nachrichten vom Server abrufen",
"File_too_large": "Datei zu groß",
"No_proper_file_transfer_method_available": "Keine geeignete Übertragungsmethode verfügbar",
"You_have_to_go_online_": "Du musst online sein um diese Aktion auszuführen."
}
}
+286 -284
Ver Arquivo
@@ -1,312 +1,314 @@
{
"translation": {
"Logging_in": null,
"your_connection_is_unencrypted": null,
"your_connection_is_encrypted": null,
"your_buddy_closed_the_private_connection": null,
"start_private": null,
"close_private": null,
"your_buddy_is_verificated": null,
"you_have_only_a_subscription_in_one_way": null,
"authentication_query_sent": null,
"your_message_wasnt_send_please_end_your_private_conversation": null,
"unencrypted_message_received": null,
"not_available": null,
"no_connection": null,
"relogin": null,
"trying_to_start_private_conversation": null,
"Verified": null,
"Unverified": null,
"private_conversation_aborted": null,
"your_buddy_closed_the_private_conversation_you_should_do_the_same": null,
"conversation_is_now_verified": null,
"authentication_failed": null,
"Creating_your_private_key_": null,
"Authenticating_a_buddy_helps_": null,
"How_do_you_want_to_authenticate_your_buddy": null,
"Select_method": null,
"Manual": null,
"Question": null,
"Secret": null,
"To_verify_the_fingerprint_": null,
"Your_fingerprint": null,
"Buddy_fingerprint": null,
"Close": null,
"Compared": null,
"To_authenticate_using_a_question_": null,
"Ask": null,
"To_authenticate_pick_a_secret_": null,
"Compare": null,
"Fingerprints": null,
"Authentication": null,
"Message": null,
"Add_buddy": null,
"rename_buddy": null,
"delete_buddy": null,
"Login": null,
"Username": null,
"Password": null,
"Cancel": null,
"Connect": null,
"Type_in_the_full_username_": null,
"Alias": null,
"Add": null,
"Subscription_request": null,
"You_have_a_request_from": null,
"Deny": null,
"Approve": null,
"Remove_buddy": null,
"You_are_about_to_remove_": null,
"Continue_without_chat": null,
"Please_wait": null,
"Login_failed": null,
"Sorry_we_cant_authentikate_": null,
"Retry": null,
"clear_history": null,
"New_message_from": null,
"Should_we_notify_you_": null,
"Please_accept_": null,
"Hide_offline": null,
"Show_offline": null,
"About": null,
"dnd": null,
"Mute": null,
"Unmute": null,
"Subscription": null,
"both": null,
"Status": null,
"online": null,
"chat": null,
"away": null,
"xa": null,
"offline": null,
"none": null,
"Unknown_instance_tag": null,
"Not_one_of_our_latest_keys": null,
"Received_an_unreadable_encrypted_message": null,
"Online": null,
"Chatty": null,
"Away": null,
"Extended_away": null,
"Offline": null,
"Friendship_request": null,
"Confirm": null,
"Dismiss": null,
"Remove": null,
"Online_help": null,
"FN": null,
"N": null,
"FAMILY": null,
"GIVEN": null,
"NICKNAME": null,
"URL": null,
"ADR": null,
"STREET": null,
"EXTADD": null,
"LOCALITY": null,
"REGION": null,
"PCODE": null,
"CTRY": null,
"TEL": null,
"NUMBER": null,
"EMAIL": null,
"USERID": null,
"ORG": null,
"ORGNAME": null,
"ORGUNIT": null,
"TITLE": null,
"ROLE": null,
"BDAY": null,
"DESC": null,
"PHOTO": null,
"send_message": null,
"get_info": null,
"Settings": null,
"Priority": null,
"Save": null,
"User_settings": null,
"A_fingerprint_": null,
"is": null,
"Login_options": null,
"BOSH_url": null,
"Domain": null,
"Resource": null,
"On_login": null,
"Received_an_unencrypted_message": null,
"Sorry_your_buddy_doesnt_provide_any_information": null,
"Info_about": null,
"Authentication_aborted": null,
"Authentication_request_received": null,
"Log_in_without_chat": null,
"has_come_online": null,
"Unknown_sender": null,
"Please_allow_access_to_microphone_and_camera": null,
"Incoming_call": null,
"from": null,
"Do_you_want_to_accept_the_call_from": null,
"Reject": null,
"Accept": null,
"hang_up": null,
"snapshot": null,
"mute_my_audio": null,
"pause_my_video": null,
"fullscreen": null,
"Info": null,
"Local_IP": null,
"Remote_IP": null,
"Local_Fingerprint": null,
"Remote_Fingerprint": null,
"Video_call_not_possible": null,
"Start_video_call": null,
"Join_chat": null,
"Join": null,
"Room": null,
"Nickname": null,
"left_the_building": null,
"entered_the_room": null,
"is_now_known_as": null,
"This_room_is": null,
"Logging_in": "Σύνδεση...",
"your_connection_is_unencrypted": "Η σύνδεση είναι μη κρυπτογραφημένη.",
"your_connection_is_encrypted": "Η σύνδεση είναι κρυπτογραφημένη.",
"your_buddy_closed_the_private_connection": "Η επαφή σας έκλεισε την ιδιωτική σύνδεση.",
"start_private": "Ξεκινήστε ιδιωτικά",
"close_private": "Κλείστε ιδιωτικά",
"your_buddy_is_verificated": "Η επαφή σας επαληθεύτηκε.",
"you_have_only_a_subscription_in_one_way": "Έχεις μόνο one-way εγγραφή.",
"authentication_query_sent": "Το αίτημα επικύρωσης στάλθηκε.",
"your_message_wasnt_send_please_end_your_private_conversation": "Το μήνυμα δεν εστάλη. Παρακαλώ τερματίστε την προσωπική συνομιλία.",
"unencrypted_message_received": "Παραλήφθηκε μη κρυπτογραφημένο μήνυμα.",
"not_available": "Μη διαθέσιμο.",
"no_connection": "Δεν υπάρχει σύνδεση.",
"relogin": "Επανασύνδεση",
"trying_to_start_private_conversation": "Προσπάθησε να εκκινήσεις μια ιδιωτική συνομιλία!",
"Verified": "Επικαιροποιήθηκε",
"Unverified": "Ανεπαλήθευτο",
"private_conversation_aborted": "Η ιδιωτική συνομιλία ακυρώθηκε!",
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Η επαφή σας έκλεισε την ιδιωτική συνομιλία! Θα πρέπει να κάνετε το ίδιο.",
"conversation_is_now_verified": "Η συνομιλία έχει πλέον επαληθευτεί.",
"authentication_failed": "Η αυθεντικοποίηση απέτυχε.",
"Creating_your_private_key_": "Δημιουργία ιδιωτικού κλειδιού; αυτό θα πάρει λίγη ώρα.",
"Authenticating_a_buddy_helps_": "Ο έλεγχος ταυτότητας μιας επαφής βοηθά να διασφαλίσετε ότι το άτομο με το οποίο μιλάτε είναι πραγματικά αυτό που ισχυρίζεται ότι είναι.",
"How_do_you_want_to_authenticate_your_buddy": "Πώς θέλετε να πιστοποιήσετε την ταυτότητα __bid_name__ (<b> __ bid_jid __ </ b>);",
"Select_method": "Επέλεξε την μέθοδο...",
"Manual": "Εγχειρίδιο",
"Question": "Ερώτηση",
"Secret": "Μυστικό",
"To_verify_the_fingerprint_": "Για να επαληθεύσετε το δακτυλικό αποτύπωμα, επικοινωνήστε με την επαφή σας μέσω άλλου αξιόπιστου καναλιού, όπως το τηλέφωνο.",
"Your_fingerprint": "Το αποτύπωμα σας",
"Buddy_fingerprint": "Αναγνωριστικό επαφής",
"Close": "Κλείσε",
"Compared": "Σε σύγκριση",
"To_authenticate_using_a_question_": "Για να επαληθεύσετε χρησιμοποιώντας ερώτηση, διαλέξτε μια ερώτηση της οποίας η απάντηση θα την γνωρίζετε μόνο εσείς και η επαφή σας.",
"Ask": "Ερώτηση",
"To_authenticate_pick_a_secret_": "Για να επαληθεύσετε, διαλέξτε ένα μυστικό που θα είναι γνωστό μόνο από σας και την επαφή σας.",
"Compare": "Σύγκριση",
"Fingerprints": "Δακτυλικά αποτυπώματα",
"Authentication": "Αυθεντικοποίηση",
"Message": "Μήνυμα",
"Add_buddy": "Πρόσθεσε επαφή",
"rename_buddy": "Μετονομασία επαφής",
"delete_buddy": "Διαγραφή επαφής",
"Login": "Είσοδος",
"Username": "Όνομα χρήστη",
"Password": "Κωδικός",
"Cancel": "Ακύρωση",
"Connect": "Σύνδεση",
"Type_in_the_full_username_": "Πληκτρολογήστε το πλήρες όνομα χρήστη και ένα προαιρετικό ψευδώνυμο.",
"Alias": "Ψευδώνυμο",
"Add": "Πρόσθεσε",
"Subscription_request": "Αίτημα εγγραφής",
"You_have_a_request_from": "Έχετε ένα αίτημα από",
"Deny": "Άρνηση",
"Approve": "Επέτρεψε",
"Remove_buddy": "Αφαίρεσε την επαφή",
"You_are_about_to_remove_": "Πρόκειται να καταργήσετε την __bid_name__ (<b> __ bid_jid __ </ b>) από τη λίστα επαφών σας. Όλες οι σχετικές συζητήσεις θα κλείσουν.",
"Continue_without_chat": "Συνεχίστε χωρίς συνομιλία",
"Please_wait": "Παρακαλώ περιμένετε",
"Login_failed": "Η είσοδος στη συνομιλία απέτυχε",
"Sorry_we_cant_authentikate_": "Ο έλεγχος ταυτότητας απέτυχε με το διακομιστή συνομιλίας. Ίσως ο κωδικός πρόσβασης είναι λάθος;",
"Retry": "Πίσω",
"clear_history": "Εκκαθάριση ιστορικού",
"New_message_from": "Νέο όνομα από__name__",
"Should_we_notify_you_": "Θα θέλατε να σας ενημερώνεστε για νέα μηνύματα στο μέλλον;",
"Please_accept_": "Παρακαλώ κάντε κλικ στο κουμπί \"Να επιτρέπεται\" στο επάνω μέρος.",
"Hide_offline": "Κρύψε τις ανενεργές επαφές",
"Show_offline": "Εμφάνισε τις ανενεργές επαφές",
"About": "Σχετικά",
"dnd": "Μην ενοχλείτε",
"Mute": "Σίγαση",
"Unmute": "Με ήχο",
"Subscription": "Εγγραφή",
"both": "μαζί",
"Status": "Κατάσταση",
"online": "ενεργός",
"chat": "συνομιλία",
"away": "απών",
"xa": "απών για ώρα",
"offline": "ανενεργός",
"none": "κανείς",
"Unknown_instance_tag": "Άγνωστη ετικέτα παρουσίας.",
"Not_one_of_our_latest_keys": "Κανένα από τα τελευταία κλειδιά μας.",
"Received_an_unreadable_encrypted_message": "Παραλήφθηκε ένα μη κρυπτογραφημένο μήνυμα, αδύνατο να διαβαστεί.",
"Online": "Ενεργός",
"Chatty": "Ομιλητικός",
"Away": "Εκτός",
"Extended_away": "Απών για ώρα",
"Offline": "Εκτός πρόσβασης",
"Friendship_request": "Αίτημα επικοινωνίας",
"Confirm": "Επιβεβαιώνω",
"Dismiss": "Απορρίπτω",
"Remove": "Αφαιρώ",
"Online_help": "Διαδικτυακή βοήθεια",
"FN": "Πλήρες όνομα",
"N": "Όνομα",
"FAMILY": "Επίθετο",
"GIVEN": "Όνομα",
"NICKNAME": "Ψευδώνυμο",
"URL": "URL",
"ADR": "Διεύθυνση",
"STREET": "Διεύθυνση οδού",
"EXTADD": "Πλήρη διεύθυνση",
"LOCALITY": "Γειτονιά",
"REGION": "Περιοχή",
"PCODE": "Ταχυδρομικός Κώδικας",
"CTRY": "Χώρα",
"TEL": "Τηλέφωνο",
"NUMBER": "Αριθμός",
"EMAIL": "Ηλεκτρονική διεύθυνση",
"USERID": "ID χρήστη",
"ORG": "Οργανισμός",
"ORGNAME": "Όνομα",
"ORGUNIT": "Μονάδα",
"TITLE": "Τίτλος εργασίας",
"ROLE": "Ρόλος",
"BDAY": "Γενέθλια",
"DESC": "Περιγραφή",
"PHOTO": "Φωτογραφία",
"send_message": "Αποστολή μηνύματος",
"get_info": "Εμφάνιση πληροφοριών",
"Settings": "Ρυθμίσεις",
"Priority": "Προτεραιότητα",
"Save": "Αποθήκευση",
"User_settings": "Ρυθμίσεις χρήστη",
"A_fingerprint_": "Το αναγνωριστικό χρησιμοποιείτε για να επαληθεύσει αν το άτομο το οποίο μιλάτε είναι αυτός ή αυτή που δηλώνει.",
"is": "είναι",
"Login_options": "Επιλογές σύνδεσης",
"BOSH_url": "BOSH URL",
"Domain": "Τομέας",
"Resource": "Πόροι",
"On_login": "Κατά την είσοδο",
"Received_an_unencrypted_message": "Παραλαβή μη κρυπτογραφημένου μήνυματος",
"Sorry_your_buddy_doesnt_provide_any_information": "Λυπούμαστε, η επαφή σας δεν παρέχει καμία πληροφορία.",
"Info_about": "Πληροφορίες για",
"Authentication_aborted": "Ο έλεγχος ταυτότητας απορρίφθηκε",
"Authentication_request_received": "Αίτημα ελέγχου ταυτότητας παραλήφθηκε.",
"Log_in_without_chat": "Συνδεθείτε χωρίς συνομιλία",
"has_come_online": "έχει έρθει σε σύνδεση",
"Unknown_sender": "Άγνωστος αποστολέας",
"Please_allow_access_to_microphone_and_camera": "Παρακαλώ κάντε κλικ στο κουμπί \"Επιτρέπεται\" στο επάνω μέρος, για να επιτρέψετε την πρόσβαση στο μικρόφωνο και την κάμερα.",
"Incoming_call": "Εισερχόμενη κλήση",
"from": "από",
"Do_you_want_to_accept_the_call_from": "Θέλετε να δεχτείτε την κλήση από",
"Reject": "Απορρίπτω",
"Accept": "Αποδέχομαι",
"hang_up": "κλείνω το τηλέφωνο",
"snapshot": "στιγμιότυπο",
"mute_my_audio": "σίγαση του ήχου μου",
"pause_my_video": "παύση του βίντεο μου",
"fullscreen": "Πλήρης οθόνη",
"Info": "Πληροφορίες",
"Local_IP": "Τοπική IP",
"Remote_IP": "Απομακρυσμένη IP",
"Local_Fingerprint": "Τοπικό αναγνωριστικό",
"Remote_Fingerprint": "Απομακρυσμένο αναγνωριστικό",
"Video_call_not_possible": "Δεν είναι δυνατή η κλήση βίντεο. Η επαφή σας δεν υποστηρίζει κλήσεις βίντεο.",
"Start_video_call": "Έναρξη βιντεοκλήσης",
"Join_chat": "Συμμετοχή σε συνομιλία",
"Join": "Συμμετοχή",
"Room": "Δωμάτιο",
"Nickname": "Ψευδώνυμο",
"left_the_building": "__nickname__ έφυγε από το κτίριο",
"entered_the_room": "__nickname__ μπήκε στο δωμάτιο",
"is_now_known_as": "__oldNickname__ έγινε τώρα ως __newNickname__",
"This_room_is": "Αυτό το δωμάτιο είναι",
"muc_hidden": {
"keyword": null,
"description": null
"keyword": "κρυφό",
"description": "δεν μπορεί να βρεθεί μέσω αναζήτησης"
},
"muc_membersonly": {
"keyword": null,
"description": null
"keyword": "μέλη μόνο",
"description": "πρέπει να είστε στη λίστα μελών"
},
"muc_moderated": {
"keyword": null,
"description": null
"keyword": "έχει διαχειριστεί",
"description": "Μόνο άτομα με \"φωνή\" επιτρέπεται να στέλνουν μηνύματα"
},
"muc_nonanonymous": {
"keyword": null,
"description": null
"keyword": "μη ανώνυμους",
"description": "Το jabber id σας εκτίθεται σε όλους τους άλλους συμμετέχοντες"
},
"muc_open": {
"keyword": null,
"description": null
"keyword": "ανοιχτό",
"description": "ο καθένας μπορεί να συμμετάσχει"
},
"muc_passwordprotected": {
"keyword": null,
"description": null
"keyword": "προστασία με κωδικό",
"description": "θα πρέπει να δώσετε τον σωστό κωδικό πρόσβασης"
},
"muc_persistent": {
"keyword": null,
"description": null
"keyword": "συνεχής",
"description": "δεν θα καταστραφεί εάν φύγει ο τελευταίος συμμετέχων"
},
"muc_public": {
"keyword": null,
"description": null
"keyword": "δημόσια",
"description": "μπορεί να βρεθεί μέσω αναζήτησης"
},
"muc_semianonymous": {
"keyword": null,
"description": null
"keyword": "ημιανώνυμος",
"description": "Το jabber id σας είναι εκτεθειμένο μόνο σε διαχειριστές δωματίων"
},
"muc_temporary": {
"keyword": null,
"description": null
"keyword": "προσωρινά",
"description": "θα καταστραφεί εάν φύγει ο τελευταίος"
},
"muc_unmoderated": {
"keyword": null,
"description": null
"keyword": "δεν έχει διαχειριστεί",
"description": "όλοι επιτρέπεται να στέλνουν μηνύματα"
},
"muc_unsecured": {
"keyword": null,
"description": null
"keyword": "Μη ασφαλής",
"description": "Δεν χρειάζεται να εισάγετε κωδικό πρόσβασης για να μπείτε"
},
"Continue": null,
"Server": null,
"Rooms_are_loaded": null,
"Could_load_only": null,
"muc_explanation": null,
"You_already_joined_this_room": null,
"This_room_will_be_closed": null,
"Room_not_found_": null,
"Loading_room_information": null,
"Destroy": null,
"Leave": null,
"changed_subject_to": null,
"muc_removed_kicked": null,
"muc_removed_info_kicked": null,
"muc_removed_banned": null,
"muc_removed_info_banned": null,
"muc_removed_affiliation": null,
"muc_removed_info_affiliation": null,
"muc_removed_membersonly": null,
"muc_removed_info_membersonly": null,
"muc_removed_shutdown": null,
"Reason": null,
"message_not_send": null,
"message_not_send_item-not-found": null,
"message_not_send_forbidden": null,
"message_not_send_not-acceptable": null,
"message_not_send_resource-unavailable": null,
"message_not_send_remote-server-not-found": null,
"This_room_has_been_closed": null,
"Room_logging_is_enabled": null,
"A_password_is_required": null,
"You_are_not_on_the_member_list": null,
"You_are_banned_from_this_room": null,
"Your_desired_nickname_": null,
"The_maximum_number_": null,
"This_room_is_locked_": null,
"You_are_not_allowed_to_create_": null,
"Alert": null,
"Call_started": null,
"Call_terminated": null,
"Carbon_copy": null,
"Enable": null,
"jingle_reason_busy": null,
"jingle_reason_decline": null,
"jingle_reason_success": null,
"Media_failure": null,
"No_local_audio_device": null,
"No_local_video_device": null,
"Ok": null,
"PermissionDeniedError": null,
"Use_local_audio_device": null,
"Use_local_video_device": null,
"is_": null,
"You_received_a_message_from_an_unknown_sender_": null,
"Your_roster_is_empty_add_": null,
"onsmp_explanation_question": null,
"onsmp_explanation_secret": null,
"from_sender": null,
"Verified_private_conversation_started": null,
"Unverified_private_conversation_started": null,
"Bookmark": null,
"Auto-join": null,
"Edit_bookmark": null,
"Room_logging_is_disabled": null,
"Room_is_now_non-anoymous": null,
"Room_is_now_semi-anonymous": null,
"Do_you_want_to_change_the_default_room_configuration": null,
"Default": null,
"Change": null,
"Send_file": null,
"setting-explanation-carbon": null,
"setting-explanation-login": null,
"setting-explanation-priority": null,
"setting-explanation-xmpp": null,
"_is_composing": null,
"_are_composing": null,
"Chat_state_notifications": null,
"setting-explanation-chat-state": null,
"Share_screen": null,
"Incoming_stream": null,
"Stream_started": null,
"HTTPS_REQUIRED": null,
"EXTENSION_UNAVAILABLE": null,
"UNKNOWN_ERROR": null,
"Install_extension": null,
"Connection_accepted": null,
"Stream_terminated": null,
"Close_all": null,
"Notification": null,
"Unreadable_OTR_message": null,
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"You_have_to_go_online_": null
"Continue": "Συνέχισε",
"Server": "Διακομιστής",
"Rooms_are_loaded": "Το δωμάτιο φορτώνεται",
"Could_load_only": "Μπορεί να φορτώσει μόνο __count__ δωμάτια για αυτόματη συμπλήρωση",
"muc_explanation": "Παρακαλώ εισαγάγετε το όνομα δωματίου και προαιρετικά ένα ψευδώνυμο και κωδικό πρόσβασης για να συμμετάσχετε σε μια συνομιλία",
"You_already_joined_this_room": "Έχετε ήδη ενταχθεί σε αυτό το δωμάτιο",
"This_room_will_be_closed": "Αυτό το δωμάτιο θα κλείσει",
"Room_not_found_": "Θα δημιουργηθεί ένα νέο δωμάτιο",
"Loading_room_information": "Φόρτωση πληροφοριών δωματίου",
"Destroy": "Καταστρέφω",
"Leave": "Φεύγω",
"changed_subject_to": "Ο __nickname__ άλλαξε το δωμάτιο σε \"__subject__\"",
"muc_removed_kicked": "Έχετε διωχθεί από το δωμάτιο",
"muc_removed_info_kicked": "__nickname__ έχει διωχθεί από το δωμάτιο",
"muc_removed_banned": "Έχετε αποκλειστεί από το δωμάτιο",
"muc_removed_info_banned": "__nickname__ έχει αποκλειστεί από το δωμάτιο",
"muc_removed_affiliation": "Έχετε απομακρυνθεί από το δωμάτιο, λόγω αλλαγής συνεργασίας",
"muc_removed_info_affiliation": "__nickname__ έχει αφαιρεθεί από το δωμάτιο, λόγω αλλαγής της συνεργασίας",
"muc_removed_membersonly": "Έχετε αφαιρεθεί από το δωμάτιο, επειδή το δωμάτιο έχει αλλάξει μόνο σε μέλη και δεν είστε μέλος",
"muc_removed_info_membersonly": "__nickname__ έχει αφαιρεθεί από το δωμάτιο, επειδή το δωμάτιο έχει αλλάξει σε μέλη μόνο και δεν είναι μέλος",
"muc_removed_shutdown": "Έχετε αφαιρεθεί από το δωμάτιο, επειδή η υπηρεσία MUC τερματίζεται",
"Reason": "Λόγος",
"message_not_send": "Το μήνυμά σας δεν στάλθηκε λόγω σφάλματος",
"message_not_send_item-not-found": "Το μήνυμά σας δεν στάλθηκε επειδή αυτό το δωμάτιο δεν υπάρχει",
"message_not_send_forbidden": "Το μήνυμά σας δεν στάλθηκε επειδή δεν έχετε φωνή σε αυτό το δωμάτιο",
"message_not_send_not-acceptable": "Το μήνυμά σας δεν στάλθηκε επειδή δεν είστε κάτοχος αυτού του δωματίου",
"message_not_send_resource-unavailable": "Το μήνυμά σας δεν στάλθηκε επειδή ο συνομιλητής σας δεν είναι διαθέσιμος ή συνδεδεμένος",
"message_not_send_remote-server-not-found": "Το μήνυμά σας δεν στάλθηκε επειδή απέτυχε η σύνδεση διακομιστή προς διακομιστή",
"This_room_has_been_closed": "Αυτό το δωμάτιο έχει κλείσει",
"Room_logging_is_enabled": "Η καταγραφή για αυτό το δωμάτιο είναι ενεργοποιημένη",
"A_password_is_required": "Κωδικός είναι απαραίτητος",
"You_are_not_on_the_member_list": "Δεν είστε στον κατάλογο μελών",
"You_are_banned_from_this_room": "Είστε αποκλεισμένοι από αυτό το δωμάτιο",
"Your_desired_nickname_": "Το ψευδώνυμό σας που θέλετε είναι ήδη σε χρήση. Επιλέξτε άλλο",
"The_maximum_number_": "Σε αυτό το δωμάτιο έφτασε ο μέγιστος αριθμός χρηστών",
"This_room_is_locked_": "Αυτό το δωμάτιο είναι κλειδωμένο",
"You_are_not_allowed_to_create_": "Δεν επιτρέπεται να δημιουργήσετε ένα δωμάτιο",
"Alert": "Συναγερμός",
"Call_started": "Η κλήση ξεκίνησε",
"Call_terminated": "Η κλήση τερματίστηκε",
"Carbon_copy": "Αντίγραφο",
"Enable": "Ενεργοποίηση",
"jingle_reason_busy": "απασχολημένος",
"jingle_reason_decline": "αρνούμαι",
"jingle_reason_success": "απάντησε",
"Media_failure": "Αποτυχία μέσων",
"No_local_audio_device": "Δεν υπάρχει τοπική συσκευή ήχου.",
"No_local_video_device": "Δεν υπάρχει τοπική συσκευή βίντεο.",
"Ok": "ok",
"PermissionDeniedError": "Εσείς ή το πρόγραμμα αποκλειστήκατε από τα δικαιώματα των μέσων.",
"Use_local_audio_device": "Χρησιμοποιήστε την τοπική συσκευή ήχου.",
"Use_local_video_device": "Χρησιμοποιήστε την τοπική συσκευή βίντεο.",
"is_": "είναι __status__",
"You_received_a_message_from_an_unknown_sender_": "Λάβατε ένα μήνυμα από έναν άγνωστο αποστολέα (__sender__). Θέλετε να τα εμφανίσετε;",
"Your_roster_is_empty_add_": "Το ρόστερ σας είναι άδειο, προσθέστε <a>new contact</a>",
"onsmp_explanation_question": "Η επαφή σας προσπαθεί να προσδιορίσει αν μιλάει πραγματικά μαζί σας. Για να επαληθεύσετε την επαφή σας, εισαγάγετε την απάντηση και πατήστε Απάντηση.",
"onsmp_explanation_secret": "Η επαφή σας προσπαθεί να προσδιορίσει αν μιλάει πραγματικά μαζί σας. Για να επαληθεύσετε την επαφή σας, εισαγάγετε το μυστικό.",
"from_sender": "από __sender__",
"Verified_private_conversation_started": "Ξεκίνησε επαληθευμένη ιδιωτική συνομιλία.",
"Unverified_private_conversation_started": "Ξεκίνησε μη επαληθευμένη ιδιωτική συνομιλία.",
"Bookmark": "Σελιδοδείκτης",
"Auto-join": "Αυτόματη σύνδεση",
"Edit_bookmark": "Επεξεργασία σελιδοδείκτη",
"Room_logging_is_disabled": "Η καταγραφή δωματίου απενεργοποιήθηκε",
"Room_is_now_non-anoymous": "Το δωμάτιο είναι πλέον μη ανώνυμο",
"Room_is_now_semi-anonymous": "Το δωμάτιο είναι πλέον ημι-ανώνυμο",
"Do_you_want_to_change_the_default_room_configuration": "Θέλετε να αλλάξετε την προεπιλεγμένη διαμόρφωση δωματίου;",
"Default": "Προεπιλογή",
"Change": "Αλλαγή",
"Send_file": "Αποστολή αρχείου",
"setting-explanation-carbon": "Με ενεργοποιημένο αντίγραφο του XMPP διακομιστή θα στείλει ένα αντίγραφο κάθε εισερχόμενου μηνύματος για εσάς στον πελάτη, ακόμη και αν δεν του απευθύνεστε.",
"setting-explanation-login": "Εάν αυτή η επιλογή είναι ενεργοποιημένη, η συνομιλία θα ξεκινήσει κατά τη σύνδεση.",
"setting-explanation-priority": "Αν έχετε συνδεθεί πολλές φορές με τον ίδιο λογαριασμό, ο διακομιστής XMPP θα παραδώσει μηνύματα στον πελάτη με την υψηλότερη προτεραιότητα.",
"setting-explanation-xmpp": "Αυτές οι επιλογές χρησιμοποιούνται για τη σύνδεση με τον XMPP διακομιστή.",
"_is_composing": "αυτός πληκτρολογεί...",
"_are_composing": "αυτοί πληκτρολογούν...",
"Chat_state_notifications": "Ειδοποιήσεις κατάστασης συνομιλίας",
"setting-explanation-chat-state": "Θέλετε να στείλετε και να λάβετε ειδοποιήσεις κατάστασης συνομιλίας, όπως όταν κάποιος ξεκινά ή σταματά να συνθέτει ένα μήνυμα;",
"Share_screen": "Μοίρασε την οθόνη",
"Incoming_stream": "Εισερχόμενη ροή",
"Stream_started": "Η ροή ξεκίνησε",
"HTTPS_REQUIRED": "Αυτή η ενέργεια απαιτεί κρυπτογραφημένη σύνδεση.",
"EXTENSION_UNAVAILABLE": "Χρειάζεστε μια επέκταση προγράμματος περιήγησης / πρόσθετο.",
"UNKNOWN_ERROR": "Παρουσιάστηκε ένα άγνωστο σφάλμα.",
"Install_extension": "Παρακαλώ εγκαταστήστε την επέκταση για να χρησιμοποιήσετε την κοινή χρήση οθόνης: ",
"Connection_accepted": "Η σύνδεση έγινε αποδεκτή",
"Stream_terminated": "Η ροή τερμάτισε",
"Close_all": "Κλείσε τα όλα",
"Notification": "Ειδοποίηση",
"Unreadable_OTR_message": "Παραλείφθηκε μη αναγνώσιμο μήνυμα OTR",
"Load_older_messages": "Φορτώστε παλαιότερα μηνύματα",
"Message_history": "Ιστορικό μηνυμάτων",
"setting-mam-enable": "Εάν ενεργοποιήσετε, μπορείτε να ανακτήσετε αποθηκευμένα μηνύματα από το διακομιστή.",
"File_too_large": "Το αρχείο είναι πολύ μεγάλο",
"No_proper_file_transfer_method_available": "Δεν υπάρχει διαθέσιμη κατάλληλη μέθοδος μεταφοράς αρχείων",
"You_have_to_go_online_": "Θα πρέπει να συνδεθείτε στο διαδίκτυο για να εκτελέσετε αυτήν τη λειτουργία."
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "Load older messages",
"Message_history": "Message history",
"setting-mam-enable": "If enabled you are able to retrieve stored messages from the server.",
"File_too_large": "File too large",
"No_proper_file_transfer_method_available": "No proper file transfer method available",
"You_have_to_go_online_": "You have to go online to execute this operation."
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "Charger des messages plus anciens",
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": "Fichier trop grand",
"No_proper_file_transfer_method_available": "Pas de méthode de transfert de fichier disponible.",
"You_have_to_go_online_": "Vous devez être connecté pour exécuter cette opération"
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "Oudere berichten laden",
"Message_history": "Berichten geschiedenis",
"setting-mam-enable": "Wanneer ingeschakeld ontvang je opgeslagen berichten van de server.",
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": "Je dient online te gaan om deze operatie uit te voeren"
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "Încărcaţi mesaje mai vechi",
"Message_history": "Istoricul mesajelor",
"setting-mam-enable": "Dacă este activat puteţi prelua mesajele stocate pe server.",
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": "Trebuie sa fi online pentru a executa aceasta operatiune."
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "Eski iletileri yükle",
"Message_history": "İleti geçmişi",
"setting-mam-enable": "Etkinleştirdiğiniz takdirde kaydedilmiş iletileri sunucudan alabilirsiniz.",
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": "Bu işlemi gerçekleştirebilmek için çevrimiçi olmalısınız."
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": "下載舊訊息",
"Message_history": "訊息紀錄",
"setting-mam-enable": "打開後就可以從伺服器取得儲存訊息",
"File_too_large": "檔案太大了",
"No_proper_file_transfer_method_available": "沒有適合的檔案傳輸方式",
"You_have_to_go_online_": "必須要上線才能執行這個動作。"
}
}
+2
Ver Arquivo
@@ -307,6 +307,8 @@
"Load_older_messages": null,
"Message_history": null,
"setting-mam-enable": null,
"File_too_large": null,
"No_proper_file_transfer_method_available": null,
"You_have_to_go_online_": null
}
}
+1 -1
Ver Arquivo
@@ -1,6 +1,6 @@
{
"name": "jsxc",
"version": "3.2.0",
"version": "3.2.1",
"description": "Real-time xmpp chat application with video calls, file transfer and encrypted communication",
"homepage": "http://www.jsxc.org/",
"bugs": "https://github.com/jsxc/jsxc/issues",
+1 -1
Ver Arquivo
@@ -11,7 +11,7 @@
padding-top: 44px;
}
.jsxc_fingerprints, .jsxc_verification, .jsxc_transfer, .jsxc_video, .jsxc_sendFile {
.jsxc_fingerprints, .jsxc_verification, .jsxc_transfer, .jsxc_video {
display: none;
}
+7 -1
Ver Arquivo
@@ -211,7 +211,7 @@
}
li {
div {
span {
float: left;
cursor: pointer;
border-radius: 3px;
@@ -548,6 +548,12 @@
background-image: image-url("filetypes/text.svg");
}
}
.jsxc_emoticon.jsxc_large {
width: 40px;
height: 40px;
margin-bottom: 7px;
}
}
.jsxc_timestamp {
-6
Ver Arquivo
@@ -5,12 +5,6 @@
background-size: contain;
border: 0;
vertical-align: bottom;
&.jsxc_large {
width: 40px;
height: 40px;
margin-bottom: 7px;
}
}
#jsxc_roster .jsxc_emoticon.jsxc_large {
+1 -1
Ver Arquivo
@@ -122,7 +122,7 @@ jsxc.Message.prototype.save = function() {
ctx.drawImage(img, sx, sy, sWidth, sHeight, 0, 0, dWidth, dHeight);
this.attachment.thumbnail = canvas.toDataURL();
this.attachment.thumbnail = canvas.toDataURL('image/jpeg', 0.3);
if (this.direction === 'out') {
// save storage
+42 -16
Ver Arquivo
@@ -36,7 +36,15 @@ jsxc.fileTransfer.startGuiAction = function(jid) {
var res = Strophe.getResourceFromJid(jid);
if (!res && !jsxc.xmpp.httpUpload.ready) {
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
if (jsxc.fileTransfer.isWebrtcCapable(bid)) {
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
} else {
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('No_proper_file_transfer_method_available')
});
}
return;
}
@@ -112,6 +120,19 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
});
};
jsxc.fileTransfer.showFileTooLarge = function(bid, file) {
var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
var fileSize = jsxc.fileTransfer.formatByte(file.size);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
});
jsxc.gui.window.hideOverlay(bid);
};
/**
* Callback for file selector.
*
@@ -122,27 +143,24 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
*/
jsxc.fileTransfer.fileSelected = function(jid, msg, file) {
var bid = jsxc.jidToBid(jid);
var maxSize = jsxc.options.get('httpUpload').maxSize;
var httpUploadOptions = jsxc.options.get('httpUpload') || {};
var maxSize = httpUploadOptions.maxSize || -1;
if (file.transportMethod !== 'webrtc' && jsxc.xmpp.httpUpload.ready && maxSize >= 0 && file.size > maxSize) {
jsxc.debug('File too large for http upload.');
file.transportMethod = 'webrtc';
if (jsxc.fileTransfer.isWebrtcCapable(bid)) {
// try data channels
file.transportMethod = 'webrtc';
jsxc.fileTransfer.selectResource(bid, function(jid) {
jsxc.fileTransfer.fileSelected(jid, msg, file);
}, function() {
var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
var fileSize = jsxc.fileTransfer.formatByte(file.size);
jsxc.gui.window.postMessage({
bid: bid,
direction: jsxc.Message.SYS,
msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
jsxc.fileTransfer.selectResource(bid, function(jid) {
jsxc.fileTransfer.fileSelected(jid, msg, file);
}, function() {
jsxc.fileTransfer.showFileTooLarge(bid, file);
});
jsxc.gui.window.hideOverlay(bid);
});
} else {
jsxc.fileTransfer.showFileTooLarge(bid, file);
}
return;
} else if (!jsxc.xmpp.httpUpload.ready && Strophe.getResourceFromJid(jid)) {
@@ -230,6 +248,10 @@ jsxc.fileTransfer.updateIcons = function(bid) {
if (jsxc.xmpp.httpUpload.ready) {
win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
return;
} else if (!jsxc.fileTransfer.isWebrtcCapable(bid)) {
win.find('.jsxc_sendFile').addClass('jsxc_disabled');
return;
}
@@ -245,6 +267,10 @@ jsxc.fileTransfer.updateIcons = function(bid) {
}
};
jsxc.fileTransfer.isWebrtcCapable = function(bid) {
return !jsxc.muc.isGroupchat(bid);
};
$(document).on('update.gui.jsxc', function(ev, bid) {
jsxc.fileTransfer.updateIcons(bid);
});
+23 -6
Ver Arquivo
@@ -1113,7 +1113,7 @@ jsxc.gui = {
dialog.find('.btn-primary').text(opt.primary.label);
}
if (opt.primary && opt.option.label) {
if (opt.option && opt.option.label) {
dialog.find('.btn-default').text(opt.option.label);
}
@@ -1121,8 +1121,8 @@ jsxc.gui = {
dialog.find('.btn-primary').click(opt.primary.cb);
}
if (opt.primary && opt.option.cb) {
dialog.find('.btn-primary').click(opt.option.cb);
if (opt.option && opt.option.cb) {
dialog.find('.btn-default').click(opt.option.cb);
}
},
@@ -1422,7 +1422,7 @@ jsxc.gui = {
src = jsxc.options.root + '/lib/emojione/assets/svg/' + filename + '.svg';
}
var div = $('<div>');
var div = $('<span>');
div.addClass('jsxc_emoticon');
div.css('background-image', 'url(' + src + ')');
@@ -1644,7 +1644,7 @@ jsxc.gui.roster = {
while (history.length > i) {
var message = new jsxc.Message(history[i]);
if (message.direction !== jsxc.Message.SYS) {
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(message.msg);
jsxc.gui.window.setLastMsg(bid, message.msg);
break;
}
i++;
@@ -2055,6 +2055,10 @@ jsxc.gui.window = {
win.find('.jsxc_sendFile').click(function() {
$('body').click();
if ($(this).hasClass('jsxc_disabled')) {
return;
}
jsxc.gui.window.sendFile(bid);
});
@@ -2546,6 +2550,10 @@ jsxc.gui.window = {
message.htmlMsg = message.msg;
}
if (typeof message.msg === 'undefined') {
message.msg = '';
}
// remove html tags and reencode html tags
message.msg = jsxc.removeHTML(message.msg);
message.msg = jsxc.escapeHTML(message.msg);
@@ -2739,7 +2747,7 @@ jsxc.gui.window = {
}
if (direction !== 'sys') {
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(msg);
jsxc.gui.window.setLastMsg(bid, msg);
}
var currentMessageElement = jsxc.Message.getDOM(uid);
@@ -2808,6 +2816,15 @@ jsxc.gui.window = {
jsxc.gui.window.get(bid).find('.jsxc_textinput').val(text);
},
setLastMsg: function(bid, msg) {
var lastMsgTextElement = $('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text');
lastMsgTextElement.html(msg);
lastMsgTextElement.find('a').each(function() {
$(this).replaceWith('<span>' + $(this).text() + '</span>');
});
},
/**
* Load old log into chat area
*
+70 -2
Ver Arquivo
@@ -273,6 +273,7 @@ jsxc = {
lng: lang,
fallbackLng: 'en',
resources: I18next,
returnNull: false,
debug: jsxc.storage.getItem('debug') === true,
interpolation: {
prefix: '__',
@@ -294,6 +295,7 @@ jsxc = {
window.addEventListener('storage', jsxc.storage.onStorage, false);
$(document).on('attached.jsxc', jsxc.registerLogout);
$(document).on('disconnected.jsxc', jsxc.relogin);
var isStorageAttachParameters = jsxc.storage.getItem('rid') && jsxc.storage.getItem('sid') && jsxc.storage.getItem('jid');
var isOptionsAttachParameters = jsxc.options.xmpp.rid && jsxc.options.xmpp.sid && jsxc.options.xmpp.jid;
@@ -302,6 +304,10 @@ jsxc = {
// Check if we have to establish a new connection
if ((!isStorageAttachParameters && !isOptionsAttachParameters) || isForceLoginForm) {
if (jsxc.relogin()) {
return;
}
// clean up rid and sid
jsxc.storage.removeItem('rid');
jsxc.storage.removeItem('sid');
@@ -413,8 +419,8 @@ jsxc = {
return false;
}
if (jsxc.xmpp.conn && jsxc.xmpp.connected) {
jsxc.debug('We are already connected');
if (jsxc.xmpp.conn && jsxc.xmpp.conn.authenticated) {
jsxc.debug('We are already connected and authenticated');
return false;
}
@@ -433,6 +439,47 @@ jsxc = {
});
},
relogin: function() {
jsxc.debug('Try to relogin');
var jid = jsxc.storage.getItem('jid');
jsxc.bid = jsxc.bid || (jid ? jsxc.jidToBid(jid) : null);
if (!jsxc.bid || jsxc.storage.getUserItem('forcedLogout')) {
jsxc.debug('Logout was forced or I found no valid jid');
return false;
}
var xmppOptions = jsxc.options.xmpp;
if (xmppOptions.url && (xmppOptions.jid || (xmppOptions.username && xmppOptions.domain)) && xmppOptions.password) {
xmppOptions.jid = xmppOptions.jid || (xmppOptions.username + xmppOptions.domain);
jsxc.start(xmppOptions.jid, xmppOptions.password);
return true;
}
var loadSettingsAllKnowing = jsxc.storage.getUserItem('loadSettingsAllKnowing');
if (xmppOptions.url && loadSettingsAllKnowing) {
jsxc.options.loadSettings(null, null, function(settings) {
jsxc._prepareLogin(null, null, function(settings) {
if (settings !== false) {
jsxc.start(jsxc.options.xmpp.jid, jsxc.options.xmpp.password);
}
}, settings);
});
return true;
}
jsxc.debug('I am not able to relogin');
return false;
},
registerLogout: function() {
// Looking for logout element
if (jsxc.options.logoutElement !== null && $(jsxc.options.logoutElement).length > 0) {
@@ -570,6 +617,11 @@ jsxc = {
jsxc.options.xmpp.jid = jid;
jsxc.options.xmpp.password = password;
var tempBid = jsxc.bid;
jsxc.bid = jsxc.jidToBid(jid);
jsxc.storage.setUserItem('loadSettingsAllKnowing', !!jid && !!password);
jsxc.bid = tempBid;
cb(settings);
},
@@ -963,5 +1015,21 @@ jsxc = {
jsxc.debug('UI State changed to ' + Object.keys(jsxc.CONST.UISTATE)[state]);
$(document).trigger('stateUIChange.jsxc', state);
},
getLastMsg: function(bid) {
var history = jsxc.storage.getUserItem('history', bid) || [];
var i = 0;
while (history.length > i) {
var message = new jsxc.Message(history[i]);
if (message.direction !== jsxc.Message.SYS) {
return {
text: message.msg,
date: message.stamp
};
}
i++;
}
}
};
+11
Ver Arquivo
@@ -754,6 +754,7 @@ jsxc.muc = {
});
var destroy = $('<a>');
destroy.attr('href', '#');
destroy.text($.t('Destroy'));
destroy.addClass('jsxc_destroy');
destroy.hide();
@@ -764,6 +765,7 @@ jsxc.muc = {
win.find('.jsxc_settings ul').append($('<li>').append(destroy));
var configure = $('<a>');
configure.attr('href', '#');
configure.text($.t('Configure'));
configure.addClass('jsxc_configure');
configure.hide();
@@ -792,6 +794,7 @@ jsxc.muc = {
}
var leave = $('<a>');
leave.attr('href', '#');
leave.text($.t('Leave'));
leave.addClass('jsxc_leave');
leave.click(function() {
@@ -1613,6 +1616,14 @@ jsxc.muc = {
return html.get(0);
}
},
isGroupchat: function(jid) {
var bid = jsxc.jidToBid(jid);
var userData = jsxc.storage.setUserItem('buddy', bid) || {};
return userData.type === 'groupchat';
}
};
+17 -12
Ver Arquivo
@@ -162,22 +162,27 @@ jsxc.xmpp.httpUpload.sendFile = function(file, message) {
message.delete();
} else if (data.get && data.put) {
// slot received, start upload
jsxc.debug('slot received, start upload to ' + data.put);
self.uploadFile(data.put, file, message, function() {
var attachment = message.attachment;
var metaString = attachment.type + '|' + attachment.size + '|' + attachment.name;
var a = $('<a>');
a.attr('href', data.get);
a.attr('data-name', message.attachment.name);
a.attr('data-type', message.attachment.type);
a.attr('data-size', message.attachment.size);
if (message.attachment.thumbnail) {
a.attr('data-thumbnail', message.attachment.thumbnail);
attachment.data = data.get;
if (attachment.thumbnail) {
var img = $('<img>');
img.attr('alt', 'Preview:' + metaString);
img.attr('src', attachment.thumbnail);
a.prepend(img);
} else {
a.text(metaString);
}
a.text(data.get);
message.attachment.data = data.get;
message.msg = $('<span>').append(a).html();
message.msg = data.get;
message.htmlMsg = $('<span>').append(a).html();
message.type = jsxc.Message.HTML;
jsxc.gui.window.postMessage(message);
});
@@ -322,8 +327,8 @@ jsxc.xmpp.httpUpload.failedRequestSlotCB = function(stanza, cb) {
});
};
$(document).on('stateChange.jsxc', function(ev, state) {
if (state === jsxc.CONST.STATE.READY) {
$(document).on('stateUIChange.jsxc', function(ev, state) {
if (state === jsxc.CONST.UISTATE.INITIATING) {
jsxc.xmpp.httpUpload.init();
}
});
+55 -13
Ver Arquivo
@@ -184,6 +184,8 @@ jsxc.xmpp = {
*/
logout: function(complete) {
jsxc.storage.setUserItem('forcedLogout', true);
jsxc.triggeredFromElement = (typeof complete === 'boolean') ? complete : true;
if (!jsxc.master) {
@@ -199,6 +201,10 @@ jsxc.xmpp = {
jsxc.storage.removeUserItem('windowlist');
jsxc.storage.removeUserItem('unreadMsg');
if (jsxc.gui.favicon) {
jsxc.gui.favicon.badge(0);
}
// Hide dropdown menu
$('body').click();
@@ -258,6 +264,8 @@ jsxc.xmpp = {
var rosterVerSupport = $(jsxc.xmpp.conn.features).find('[xmlns="urn:xmpp:features:rosterver"]').length > 0;
jsxc.storage.setUserItem('rosterVerSupport', rosterVerSupport);
jsxc.storage.removeUserItem('forcedLogout');
if (jsxc.options.loginForm.triggered) {
switch (jsxc.options.loginForm.onConnected || 'submit') {
case 'submit':
@@ -456,7 +464,7 @@ jsxc.xmpp = {
disconnected: function() {
jsxc.debug('disconnected');
jsxc.storage.removeItem('jid');
//jsxc.storage.removeItem('jid');
jsxc.storage.removeItem('sid');
jsxc.storage.removeItem('rid');
jsxc.storage.removeItem('hidden');
@@ -963,6 +971,7 @@ jsxc.xmpp = {
var httpUploadElement = htmlBody.find('a[data-type][data-name][data-size]');
if (httpUploadElement.length === 1) {
// deprecated syntax @since 3.2.1
attachment = {
type: httpUploadElement.attr('data-type'),
name: httpUploadElement.attr('data-name'),
@@ -981,6 +990,44 @@ jsxc.xmpp = {
if (!attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i) || !attachment.name.match(/^[\s\w.,-]+$/i) || !attachment.size.match(/^\d+$/i)) {
attachment = undefined;
jsxc.warn('Invalid file type, name or size.');
}
} else if (htmlBody.find('>a').length === 1) {
var linkElement = htmlBody.find('>a');
var metaString = '';
var thumbnail;
if (linkElement.find('>img').length === 1) {
var imgElement = linkElement.find('>img');
var src = imgElement.attr('src') || '';
var altString = imgElement.attr('alt') || '';
metaString = altString.replace(/^Preview:/, '');
if (src.match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+/]+$/i)) {
thumbnail = src;
}
} else {
metaString = linkElement.text();
}
var metaMatch = metaString.match(/^([a-z]+\/[a-z0-9-+.*]+)\|(\d+)\|([\s\w.,-]+)/);
if (metaMatch) {
attachment = {
type: metaMatch[1],
size: metaMatch[2],
name: metaMatch[3],
};
if (thumbnail) {
attachment.thumbnail = thumbnail;
}
if (linkElement.attr('href') && linkElement.attr('href').match(/^https?:\/\//)) {
attachment.data = linkElement.attr('href');
body = null;
}
} else {
jsxc.warn('Invalid file type, name or size.');
}
}
@@ -990,7 +1037,6 @@ jsxc.xmpp = {
// @TODO check for file upload url after decryption
jsxc.otr.objects[bid].receiveMsg(body, {
_uid: mid,
foo: 'bar',
stamp: stamp,
forwarded: forwarded,
attachment: attachment
@@ -1231,7 +1277,7 @@ jsxc.xmpp = {
*/
sendMessage: function(message) {
var bid = message.bid;
var msg = message.htmlMsg;
var msg = message.msg;
var mucRoomNames = (jsxc.xmpp.conn.muc && jsxc.xmpp.conn.muc.roomNames) ? jsxc.xmpp.conn.muc.roomNames : [];
var isMucBid = mucRoomNames.indexOf(bid) >= 0;
@@ -1265,18 +1311,14 @@ jsxc.xmpp = {
id: message._uid
});
if (message.type === jsxc.Message.HTML) {
xmlMsg.c("html", {
if (message.type === jsxc.Message.HTML && msg === message.msg && message.htmlMsg) {
xmlMsg.c('body').t(msg);
xmlMsg.up().c('html', {
xmlns: Strophe.NS.XHTML_IM
});
// Omit StropheJS XEP-0071 limitations
var body = Strophe.xmlElement("body", {
}).c('body', {
xmlns: Strophe.NS.XHTML
});
body.innerHTML = msg;
xmlMsg.node.appendChild(body);
}).h(message.htmlMsg).up();
} else {
xmlMsg.c('body').t(msg);
}