Comparar commits
85 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| 1d9443f32d | |||
| 135db545c6 | |||
| 6a8d3f2e50 | |||
| e6b699a123 | |||
| 689e868266 | |||
| 94bfb84562 | |||
| 7e4885b86d | |||
| e8357cb3e8 | |||
| 990dfa5de0 | |||
| ab2a713a29 | |||
| 9ad183210d | |||
| fdf9b670f3 | |||
| 0227f54c8b | |||
| 26d5599ab1 | |||
| c785e8dbdd | |||
| 3c881a4b50 | |||
| 4644d79bb4 | |||
| a8fb7a2e50 | |||
| e1c905586f | |||
| 84c3fbbd44 | |||
| 5bd440ead9 | |||
| ebe6b7bfea | |||
| 50693eece7 | |||
| e8ae2d5421 | |||
| 9c3bfcda07 | |||
| fdc570b6ee | |||
| 6ff2a7ce31 | |||
| 6687eaa66c | |||
| 895cae067c | |||
| b0b3245e4e | |||
| 8f58a939fb | |||
| 068f60c64e | |||
| 240a257397 | |||
| bca7af73ec | |||
| 62f6ddbfbe | |||
| fa831e25ca | |||
| 3e7633d2c8 | |||
| 92e38a8abb | |||
| 7765b6b46f | |||
| d675401bc8 | |||
| 16e519d5ec | |||
| 62ca260ba3 | |||
| f1a83cd696 | |||
| 3d97567429 | |||
| 3226a3c940 | |||
| 31eba50c99 | |||
| ec0cec8a9e | |||
| 15c7948cb8 | |||
| 52588a1437 | |||
| 1d60187f98 | |||
| 81d84a02b9 | |||
| 2eb4dfdea2 | |||
| 0aa0d4d467 | |||
| f544b8d753 | |||
| 60afa8efeb | |||
| 413bfd8dc3 | |||
| 964de1637c | |||
| 684bd5b27a | |||
| 2cbc5b74a3 | |||
| 66a1ed906c | |||
| 55838a4724 | |||
| c8b6a7b1ba | |||
| d45a5e1fda | |||
| 95689c62b6 | |||
| 0f2960b1fb | |||
| 7552e5c73a | |||
| a6de6d6843 | |||
| eeab8355e5 | |||
| e95f61af25 | |||
| 4ec0656de6 | |||
| 687347ec09 | |||
| ace5fc585b | |||
| d38b45c441 | |||
| 3d408a51b9 | |||
| 78cb8426c3 | |||
| daa5d35d7a | |||
| daf6217a63 | |||
| 479ebb3a26 | |||
| 4961e7e8e7 | |||
| 2b8c103653 | |||
| 7a695ea639 | |||
| 4caed440fd | |||
| c7cd3cdd43 | |||
| b7f4780d53 | |||
| e953303002 |
@@ -25,3 +25,6 @@ lib/i18next/
|
||||
lib/jquery-i18next/
|
||||
lib/magnific-popup/
|
||||
.idea
|
||||
/lib/strophejs-plugin-mam
|
||||
/lib/strophejs-plugin-rsm
|
||||
.github.json
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@
|
||||
url = https://github.com/twbs/bootstrap-sass/
|
||||
[submodule "lib/strophe.jinglejs"]
|
||||
path = lib/strophe.jinglejs
|
||||
url = https://github.com/sualko/strophe.jinglejs
|
||||
url = https://github.com/jsxc/strophe.jinglejs
|
||||
|
||||
@@ -8,4 +8,5 @@ before_install:
|
||||
- gem install scss_lint
|
||||
|
||||
script:
|
||||
- echo {} > .github.json
|
||||
- ./node_modules/.bin/grunt pre-commit
|
||||
|
||||
+102
-58
@@ -5,51 +5,96 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## 3.2.0 - 2017-05-17
|
||||
### Added
|
||||
- [#150](https://github.com/jsxc/jsxc/issues/150) add Message Archive Management (XEP-0313)
|
||||
- [#464](https://github.com/jsxc/jsxc/issues/464) respond to software version request (XEP-0092)
|
||||
|
||||
### Fixed
|
||||
- [#447](https://github.com/jsxc/jsxc/pull/447) fix muc member presence
|
||||
- fix http upload discovery
|
||||
- fix vcard retrieval for rooms
|
||||
- fix bookmarks
|
||||
- [#470](https://github.com/jsxc/jsxc/issues/470) fix receiving message from unknown sender
|
||||
- [#483](https://github.com/jsxc/jsxc/issues/483) fix unclickable space
|
||||
- catch quota exceeded errors (e.g. Safari in private mode has a quota of 0)
|
||||
- [#510](https://github.com/jsxc/jsxc/pull/510) fix muc form
|
||||
- [#505](https://github.com/jsxc/jsxc/pull/505) fix i18n key
|
||||
- [#515](https://github.com/jsxc/jsxc/issues/515) fix add contact in slave tab
|
||||
- fix initial roster loading
|
||||
- fix xmpp message uri to unknown jid
|
||||
- fix uri scheme handling if offline
|
||||
- fix hiding of offline users in roster
|
||||
|
||||
### Changed
|
||||
- update dependencies
|
||||
- strophe.jinglejs
|
||||
- grunt-contrib-clean
|
||||
- grunt-contrib-uglify
|
||||
- node-sass
|
||||
- strophe.chatstates
|
||||
- strophejs-plugin-mam
|
||||
- make max file size optional for http upload service
|
||||
- [#480](https://github.com/jsxc/jsxc/issues/480) split avatar loading into chunks
|
||||
- [#478](https://github.com/jsxc/jsxc/issues/478) support roster versioning
|
||||
- prefer xmpp password from settings over login form
|
||||
- [#468](https://github.com/jsxc/jsxc/issues/468) move composing message to window header
|
||||
- make message error more visible
|
||||
- ignore message errors without id
|
||||
- add data-bid to xmpp uris
|
||||
- add roster state to roster ready event
|
||||
|
||||
## 3.1.1 - 2017-02-14
|
||||
### Fixed
|
||||
- fix path to dependencies
|
||||
|
||||
## 3.1.0 - 2017-02-14
|
||||
### Added
|
||||
- add application states
|
||||
- [#393](https://github.com/jsxc/jsxc/issues/393) add the me command (XEP-0245)
|
||||
- [#393](https://github.com/jsxc/jsxc/issues/393) add the /me command (XEP-0245)
|
||||
- [#422](https://github.com/jsxc/jsxc/issues/422) add multiline message support
|
||||
- [#431](https://github.com/jsxc/jsxc/issues/431) add Chat State Notifications (XEP-0085)
|
||||
- [#426](https://github.com/jsxc/jsxc/issues/426) add HTTP File Upload (XEP-0363)
|
||||
- add Turkish
|
||||
- [#438](https://github.com/jsxc/jsxc/issues/438) add desktop sharing
|
||||
- add nextcloud emoticon
|
||||
- add Nextcloud emoticon
|
||||
- [#301](https://github.com/jsxc/jsxc/issues/301) add close all button for notices
|
||||
- [#344](https://github.com/jsxc/jsxc/issues/344) support messages of type headline
|
||||
- [#344](https://github.com/jsxc/jsxc/issues/344) support messages of type `headline`
|
||||
- add icon to notices
|
||||
|
||||
### Fixed
|
||||
- fix login form submission
|
||||
- fix display of muc warning
|
||||
- [#391](https://github.com/jsxc/jsxc/issues/391) fix muc initialisation after relogin
|
||||
- [#394](https://github.com/jsxc/jsxc/issues/394) disable otr for muc conversations
|
||||
- [#399](https://github.com/jsxc/jsxc/issues/399) prompt for muc password if required
|
||||
- fix display of MUC warning
|
||||
- [#391](https://github.com/jsxc/jsxc/issues/391) fix MUC initialisation after relogin
|
||||
- [#394](https://github.com/jsxc/jsxc/issues/394) disable OTR for MUC conversations
|
||||
- [#399](https://github.com/jsxc/jsxc/issues/399) prompt for MUC password if required
|
||||
- [#435](https://github.com/jsxc/jsxc/issues/435) fix list of user name suggestions
|
||||
- [#433](https://github.com/jsxc/jsxc/issues/433) fix i18n interpolation pattern
|
||||
- fix minor webrtc issues
|
||||
- [#440](https://github.com/jsxc/jsxc/issues/440) prevent login form submission
|
||||
- fix minor WebRTC issues
|
||||
- [#440](https://github.com/jsxc/jsxc/issues/440) prevent original login form submission
|
||||
- [#441](https://github.com/jsxc/jsxc/issues/441) remove console.trace
|
||||
- [#409](https://github.com/jsxc/jsxc/issues/409) fix presence after accepting contact request
|
||||
- fix template system
|
||||
- fix path to strophe.bookmarks (regression)
|
||||
- fix disabled login form
|
||||
- fix carbon copy impersonation vulnerability ([CVE-2017-5589+](https://rt-solutions.de/en/2017/02/CVE-2017-5589_xmpp_carbons/))
|
||||
- ignore malicious roster updates
|
||||
- prevent double insertion of muc setting
|
||||
- ignore malicious roster updates (similar to [CVE-2014-0364](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0364))
|
||||
- prevent double insertion of MUC setting
|
||||
|
||||
### Changed
|
||||
- update dependencies
|
||||
- [#385](https://github.com/jsxc/jsxc/issues/385) update i18next
|
||||
- improve initial focus for login box
|
||||
- add large emoticons
|
||||
- [#421](https://github.com/jsxc/jsxc/issues/421) make muc server field editable
|
||||
- [#421](https://github.com/jsxc/jsxc/issues/421) make MUC server field editable
|
||||
- system message style
|
||||
- disable sending of otr whitespace tag by default
|
||||
- disable sending of OTR whitespace tag by default
|
||||
- enable carbon copies by default
|
||||
- remove border radius from dialog
|
||||
- exclude dev dependencies from build
|
||||
- move jquery library to example folder
|
||||
- omit unreadable otr messages
|
||||
- omit unreadable OTR messages
|
||||
|
||||
## 3.0.1 - 2016-10-28
|
||||
### Added
|
||||
@@ -81,15 +126,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- new video call interface
|
||||
- status usable for daltonian
|
||||
- use css for animations
|
||||
- file transfer via webrtc
|
||||
- file transfer via WebRTC
|
||||
- previews
|
||||
- show progress
|
||||
- use local date and time format
|
||||
- add no-video-call-possible icon
|
||||
- add disabled otr icon
|
||||
- add disabled OTR icon
|
||||
- add padlock icon to message
|
||||
- display line breaks in chat messages
|
||||
- hide avatar for connected messages (muc)
|
||||
- hide avatar for connected messages (MUC)
|
||||
- auto approve incoming contact request (if contact is already in our roster)
|
||||
|
||||
### Fixed
|
||||
@@ -119,7 +164,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## 2.1.5 - 2015-11-17
|
||||
- Reset TURN credentials on login
|
||||
- Fix ie<11 textfield
|
||||
- Fix IE<11 textfield
|
||||
|
||||
## 2.1.4 - 2015-09-10
|
||||
- remove leading at sign from comments in build file
|
||||
@@ -132,10 +177,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- update grunt-sass (fix invalid css)
|
||||
|
||||
## 2.1.1 - 2015-08-10
|
||||
- update strophe.jingle (fix login with safari and older versions of ie, ff, chrome)
|
||||
- update strophe.jingle (fix login with Safari and older versions of IE, FF, Chrome)
|
||||
- update favico.js
|
||||
- fix undefined error variable in ie
|
||||
- fix handling of escaped jids (e.g. used in transports)
|
||||
- fix undefined error variable in IE
|
||||
- fix handling of escaped JIDs (e.g. used in transports)
|
||||
- fix placeholder replacement
|
||||
- rearrange bootstrap import
|
||||
- add option for custom online user manual
|
||||
@@ -150,8 +195,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- make dialog responsive
|
||||
- allow messages to persons without valid friendship
|
||||
- replace video library for more stable connection
|
||||
- fix dsa key generation in chrome > 42
|
||||
- fix minor roster ui issues
|
||||
- fix DSA key generation in Chrome > 42
|
||||
- fix minor roster UI issues
|
||||
|
||||
- add jsbeautifier and prettysass
|
||||
- improve example
|
||||
@@ -170,11 +215,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
## 2.0.1 - 2015-05-23
|
||||
- improve login box
|
||||
- fix browsers without CSPRNG generator
|
||||
- fix ajax login after credential failure
|
||||
- fix some webrtc issues
|
||||
- fix AJAX login after credential failure
|
||||
- fix some WebRTC issues
|
||||
- fix login with different username after dirty logout
|
||||
- remove ie (<11) gradient
|
||||
- remove broken mitm detection
|
||||
- remove IE (<11) gradient
|
||||
- remove broken MITM detection
|
||||
- fix temporary template 404
|
||||
- fix login option
|
||||
- add connecting event
|
||||
@@ -188,7 +233,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- use user avatar as notification icon
|
||||
- show notifications if tabs has no focus
|
||||
- split files into namespaces
|
||||
- sass improvements
|
||||
- SASS improvements
|
||||
- replace own translation engine with i18next
|
||||
- fix login from login box
|
||||
- fix selection of chat messages
|
||||
@@ -199,16 +244,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- fix logout
|
||||
|
||||
## 1.1.0a - 2015-02-25
|
||||
- fix css url path
|
||||
- fix CSS URL path
|
||||
|
||||
## 1.1.0 - 2015-01-08
|
||||
- move from plain css to sass
|
||||
- show avatar also by EXTVAL (url), not only by BINVAL
|
||||
- move from plain CSS to SASS
|
||||
- show avatar also by EXTVAL (URL), not only by BINVAL
|
||||
- add XEP-0280 (Message Carbons)
|
||||
- add XEP-0297 (Stanza Forwarding)
|
||||
- add option to disable otr
|
||||
- add option to disable OTR
|
||||
- add timestamp to messages
|
||||
- add ajax/prebind login
|
||||
- add AJAX/prebind login
|
||||
- fix offline subscription request
|
||||
- fix hide offline contacts
|
||||
- fix error with multiple own resources
|
||||
@@ -223,37 +268,37 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- add resizable function to chat window
|
||||
- add vertical scrollbar to window list
|
||||
- add call information to chat window
|
||||
- add concatinated and uglified files
|
||||
- add concatenated and uglified files
|
||||
- add translations
|
||||
- minor video call improvements
|
||||
- minor style improvements
|
||||
- generate dsa key complete in background
|
||||
- generate DSA key complete in background
|
||||
- update caps node property to jsxc.org
|
||||
- update strophe.jingle
|
||||
- update otr
|
||||
- update OTR
|
||||
- fix wrong avatars
|
||||
- fix minor message delivery errors
|
||||
- fix ff snapshot security error
|
||||
- fix FF snapshot security error
|
||||
- fix case sensitive resource handling
|
||||
- fix non-square avatars
|
||||
- fix several video issues
|
||||
- fix messages from unknown (not in roster) jid
|
||||
- fix vcard retrieval from unknown (not in roster) jid
|
||||
- fix vcard in second tab
|
||||
- fix jids with non-word characters (replace user identifier)
|
||||
- fix vCard retrieval from unknown (not in roster) jid
|
||||
- fix vCard in second tab
|
||||
- fix JIDs with non-word characters (replace user identifier)
|
||||
- improve video window design
|
||||
- improve user info
|
||||
- improve login box
|
||||
- improve smp user interaction
|
||||
- improve SMP user interaction
|
||||
- improve notifications (sync sound/message, icon)
|
||||
- minor chat window improvements
|
||||
- detect email in message
|
||||
- detect uri scheme in message
|
||||
- detect URI scheme in message
|
||||
- end all private conversations on logout
|
||||
- remove email pattern from contact dialog
|
||||
- disable video on second tab
|
||||
- add/require disco dtls feature for webrtc
|
||||
- move emoticons to css
|
||||
- add/require DISCO DTLS feature for WebRTC
|
||||
- move emoticons to CSS
|
||||
- handle loadSettings failure
|
||||
- change cursor for some elements
|
||||
- prevent event bubbling for dialog
|
||||
@@ -279,15 +324,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- new chat window design
|
||||
- enhanced roster design
|
||||
- fix emoticon replacement (XEP-0038)
|
||||
- fix some ui issues (explanations,...)
|
||||
- fix some UI issues (explanations,...)
|
||||
- fix issue with password only field
|
||||
|
||||
## 0.7.2 - 2014-05-28
|
||||
- fix login issue
|
||||
- fix different dialogs
|
||||
- fix safari mobile bug
|
||||
- fix Safari mobile bug
|
||||
- fix webworker debugging
|
||||
- fix issue with prosody
|
||||
- fix issue with Prosody
|
||||
- fix submodule state
|
||||
- add debug flag
|
||||
- add icon for video calls
|
||||
@@ -301,7 +346,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- minor style fixes
|
||||
- move complete to new notification api
|
||||
|
||||
|
||||
## 0.7.1 - 2014-03-18
|
||||
- fix emoticons
|
||||
- fix unique message id
|
||||
@@ -313,27 +357,27 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
- update & extend hover info
|
||||
- handle presence of type unsubscribed
|
||||
- remove roster footer if offline
|
||||
- enhance otr error handling
|
||||
- enhance OTR error handling
|
||||
- enhance translations
|
||||
- reduce initial timeout
|
||||
- fix notices
|
||||
- fix friendship response dialog
|
||||
- fix shared roster item removel
|
||||
- fix debug function
|
||||
- fix webrtc bug
|
||||
- fix WebRTC bug
|
||||
- fix storage check
|
||||
- fix firefox fullscreen
|
||||
- fix Firefox fullscreen
|
||||
|
||||
## 0.6.0 - 2014-02-28
|
||||
- add notice stack (for e.g. friendship requests)
|
||||
- add option to change presence
|
||||
- support all available presence states
|
||||
- display own avatar
|
||||
- fix issue with prosody
|
||||
- fix issue with Prosody
|
||||
- fix multi-tab support
|
||||
- fix chrome notifications
|
||||
- fix otr error handling
|
||||
- fix webrtc bug
|
||||
- fix Chrome notifications
|
||||
- fix OTR error handling
|
||||
- fix WebRTC bug
|
||||
|
||||
## 0.5.2 - 2014-01-28
|
||||
- update strophe.js to v1.1.3
|
||||
@@ -343,8 +387,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## 0.5.1 - 2014-01-27
|
||||
- fix chat window after call
|
||||
- fix nullpointer and context in webrtc
|
||||
- fix NULL pointer and context in WebRTC
|
||||
- handle already attached submit events on login form
|
||||
- style changes
|
||||
- fix webrtc startup
|
||||
- don't block application on dsa key generation
|
||||
- fix WebRTC startup
|
||||
- don't block application on DSA key generation
|
||||
|
||||
+39
-2
@@ -9,6 +9,7 @@ module.exports = function(grunt) {
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
github: grunt.file.readJSON('.github.json'),
|
||||
app: grunt.file.readJSON('package.json'),
|
||||
meta: {
|
||||
banner: grunt.file.read('banner.js')
|
||||
@@ -155,14 +156,23 @@ module.exports = function(grunt) {
|
||||
}
|
||||
},
|
||||
src: dep_files,
|
||||
dest: '<%= target %>/lib/jsxc.dep.js'
|
||||
dest: '<%= target %>/lib/jsxc.dep.js',
|
||||
filter: function(filepath) {
|
||||
if (!grunt.file.exists(filepath)) {
|
||||
grunt.fail.warn('Could not find: ' + filepath);
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
nonull: true,
|
||||
},
|
||||
jsxc: {
|
||||
options: {
|
||||
banner: '/*! This file is concatenated for the browser. */\n\n'
|
||||
},
|
||||
src: ['src/jsxc.intro.js', 'src/jsxc.lib.js', 'src/jsxc.lib.xmpp.js',
|
||||
'src/jsxc.lib.*.js', 'tmp/template.js', 'src/jsxc.outro.js'
|
||||
'src/jsxc.lib.gui.js', 'src/jsxc.lib.*.js',
|
||||
'tmp/template.js', 'src/jsxc.outro.js'
|
||||
],
|
||||
dest: '<%= target %>/jsxc.js'
|
||||
}
|
||||
@@ -339,6 +349,29 @@ module.exports = function(grunt) {
|
||||
options: {
|
||||
config: '.scss-lint.yml'
|
||||
}
|
||||
},
|
||||
github_releaser2: {
|
||||
options: {
|
||||
repository: 'jsxc/jsxc',
|
||||
authentication: {
|
||||
type: 'token',
|
||||
token: '<%= github.token %>'
|
||||
},
|
||||
release: {
|
||||
body: 'see https://github.com/jsxc/jsxc/blob/master/CHANGELOG.md'
|
||||
}
|
||||
},
|
||||
release: {
|
||||
src: ['archives/jsxc-archives/jsxc-<%= app.version %>.zip', 'archives/jsxc-archives/jsxc-<%= app.version %>.zip.sig']
|
||||
},
|
||||
prerelease: {
|
||||
options: {
|
||||
release: {
|
||||
prerelease: true
|
||||
}
|
||||
},
|
||||
src: ['archives/jsxc-archives/jsxc-<%= app.version %>.zip', 'archives/jsxc-archives/jsxc-<%= app.version %>.zip.sig']
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -363,6 +396,7 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-prettysass');
|
||||
grunt.loadNpmTasks('grunt-html-convert');
|
||||
grunt.loadNpmTasks('grunt-scss-lint');
|
||||
grunt.loadNpmTasks('grunt-github-releaser2');
|
||||
|
||||
//Default task
|
||||
grunt.registerTask('default', ['build', 'watch']);
|
||||
@@ -387,6 +421,9 @@ module.exports = function(grunt) {
|
||||
grunt.task.run(['search:changelog', 'build:prerelease', 'jsdoc']);
|
||||
});
|
||||
|
||||
grunt.registerTask('publish:release', ['github_releaser2:release']);
|
||||
grunt.registerTask('publish:prerelease', ['github_releaser2:prerelease']);
|
||||
|
||||
// before commit
|
||||
grunt.registerTask('pre-commit', ['search:console', 'jsbeautifier:pre-commit', 'scsslint', 'jshint']);
|
||||
|
||||
|
||||
+8
-6
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jsxc",
|
||||
"version": "3.1.0-beta.2",
|
||||
"version": "3.2.0-beta.2",
|
||||
"homepage": "https://www.jsxc.org",
|
||||
"authors": [
|
||||
"sualko <klaus@jsxc.org>"
|
||||
@@ -27,13 +27,15 @@
|
||||
"devDependencies": {
|
||||
"emojione": "~2.2.7",
|
||||
"favico.js": "^0.3.10",
|
||||
"strophe.bookmarks": "strophe/strophejs-plugin-bookmarks#f51c60629cb0ad278f92bfb8d8dbb8cb455d9c98",
|
||||
"strophe.bookmarks": "strophe/strophejs-plugin-bookmarks#ff9e95a1a823b927f8c4c45453aaa534857a37b4",
|
||||
"strophe.js": "strophejs#a11ebefa3db1b6712d51d0d309b9f68f8e391d1b",
|
||||
"strophe.vcard": "https://raw.githubusercontent.com/strophe/strophejs-plugins/2f07137ad2cbeaed41650ee46373c2f44e0f263a/vcard/strophe.vcard.js",
|
||||
"strophe.x": "https://raw.githubusercontent.com/strophe/strophejs-plugins/master/dataforms/src/strophe.x.js",
|
||||
"strophe.chatstates": "https://raw.githubusercontent.com/strophe/strophejs-plugins/master/chatstates/strophe.chatstates.js",
|
||||
"strophe.vcard": "strophe/strophejs-plugin-vcard#de3a0c97a2c520ed900ee15b04a0c16d5c663891",
|
||||
"strophe.x": "strophe/strophejs-plugin-dataforms",
|
||||
"strophe.chatstates": "strophe/strophejs-plugin-chatstates#fb0b5f5b03d98ba05ac9dec853fe2190794128b6",
|
||||
"jquery-i18next": "^1.2.0",
|
||||
"i18next": "^5.0.0",
|
||||
"magnific-popup": "^1.1.0"
|
||||
"magnific-popup": "^1.1.0",
|
||||
"strophejs-plugin-mam": "strophe/strophejs-plugin-mam#d7b9a8a0b404e3dd9c83dd9cc4bf28aec2e5f329",
|
||||
"strophejs-plugin-rsm": "strophe/strophejs-plugin-rsm#fa16b3b"
|
||||
}
|
||||
}
|
||||
|
||||
+81
-36
@@ -2168,7 +2168,8 @@ fieldset[disabled]
|
||||
width: 100%; }
|
||||
|
||||
#jsxc_dialog .mfp-close, #jsxc_webrtc .mfp-close {
|
||||
font-size: 23px; }
|
||||
font-size: 23px;
|
||||
font-weight: normal; }
|
||||
|
||||
.mfp-bg {
|
||||
z-index: 9000; }
|
||||
@@ -2551,7 +2552,7 @@ fieldset[disabled]
|
||||
width: 14px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: -14px !important;
|
||||
right: 100%;
|
||||
top: 0;
|
||||
z-index: 110;
|
||||
background-color: transparent;
|
||||
@@ -2763,15 +2764,14 @@ fieldset[disabled]
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 30px;
|
||||
height: 30px; }
|
||||
width: 30px; }
|
||||
@media (max-width: 768px) {
|
||||
#jsxc_windowListSB {
|
||||
display: none; } }
|
||||
#jsxc_windowListSB > div {
|
||||
box-sizing: border-box;
|
||||
width: 14px;
|
||||
height: 100%;
|
||||
height: 30px;
|
||||
background-color: #cccccc;
|
||||
color: #807f7f;
|
||||
text-align: center;
|
||||
@@ -2881,7 +2881,8 @@ fieldset[disabled]
|
||||
.jsxc_window .jsxc_emoticons:hover:after {
|
||||
opacity: 0.5; }
|
||||
.jsxc_window .jsxc_fade {
|
||||
position: relative; }
|
||||
position: relative;
|
||||
overflow: hidden; }
|
||||
.jsxc_window .jsxc_fade .jsxc_overlay {
|
||||
display: none;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
@@ -2931,6 +2932,31 @@ fieldset[disabled]
|
||||
text-overflow: ellipsis; }
|
||||
.jsxc_window .jsxc_fade .jsxc_overlay > div a:hover {
|
||||
text-decoration: underline; }
|
||||
.jsxc_window .jsxc_fade .jsxc_mam-load-more {
|
||||
display: none;
|
||||
text-align: center;
|
||||
font-size: 0.8em;
|
||||
font-style: italic;
|
||||
position: absolute;
|
||||
top: -42px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 42px;
|
||||
cursor: pointer;
|
||||
z-index: 80;
|
||||
line-height: 42px;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.5s, top 0.5s;
|
||||
transition: opacity 0.5s, top 0.5s; }
|
||||
.jsxc_window .jsxc_fade .jsxc_mam-load-more.jsxc_show {
|
||||
top: 0;
|
||||
opacity: 0.7; }
|
||||
.jsxc_window .jsxc_fade .jsxc_mam-load-more.jsxc_show:hover {
|
||||
opacity: 1; }
|
||||
.jsxc_window .jsxc_fade.jsxc_mam-enable .jsxc_textarea {
|
||||
padding-top: 42px; }
|
||||
.jsxc_window .jsxc_fade.jsxc_mam-enable .jsxc_mam-load-more {
|
||||
display: block; }
|
||||
.jsxc_window .jsxc_avatar {
|
||||
margin-top: 1px; }
|
||||
.jsxc_window .jsxc_textarea {
|
||||
@@ -3018,16 +3044,16 @@ fieldset[disabled]
|
||||
position: relative;
|
||||
outline: none;
|
||||
clear: both; }
|
||||
.jsxc_chatmessage.jsxc_error {
|
||||
opacity: 0.7; }
|
||||
.jsxc_chatmessage.jsxc_error:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background-color: yellow; }
|
||||
.jsxc_chatmessage.jsxc_error:before {
|
||||
content: attr(data-error-msg);
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: rgba(255, 255, 255, 0.7);
|
||||
text-align: center;
|
||||
padding: 10px 5px; }
|
||||
.jsxc_chatmessage a {
|
||||
color: #00f;
|
||||
text-decoration: underline;
|
||||
@@ -3176,26 +3202,6 @@ fieldset[disabled]
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
vertical-align: middle; }
|
||||
.jsxc_sys.jsxc_composing {
|
||||
text-align: center;
|
||||
font-size: 0.9em;
|
||||
font-style: italic;
|
||||
display: block;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
-webkit-transition: opacity 0.6s;
|
||||
transition: opacity 0.6s; }
|
||||
.jsxc_sys.jsxc_composing:before {
|
||||
content: " ";
|
||||
width: 1.5em;
|
||||
height: 1em;
|
||||
display: inline-block;
|
||||
background-size: 80%;
|
||||
background-repeat: no-repeat;
|
||||
margin: 0 3px 0 0;
|
||||
background-image: url('../img/composing.png'); }
|
||||
.jsxc_sys.jsxc_composing.jsxc_fadein {
|
||||
opacity: 1; }
|
||||
|
||||
div.jsxc_settings {
|
||||
position: relative; }
|
||||
@@ -3232,6 +3238,35 @@ div.jsxc_transfer {
|
||||
div.jsxc_transfer.jsxc_enc.jsxc_trust {
|
||||
background-image: url('../img/padlock_close_green.svg'); }
|
||||
|
||||
.jsxc_status-msg {
|
||||
font-size: 12px;
|
||||
display: none;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
height: 50%;
|
||||
line-height: 17.5px;
|
||||
opacity: 0.7; }
|
||||
.jsxc_status-msg.jsxc_composing:before {
|
||||
content: " ";
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
display: inline-block;
|
||||
background-size: cover;
|
||||
vertical-align: middle;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('../img/composing.png'); }
|
||||
|
||||
.jsxc_status-msg-show .jsxc_name {
|
||||
height: 50%;
|
||||
line-height: 20px; }
|
||||
|
||||
.jsxc_status-msg-show .jsxc_status-msg {
|
||||
display: block; }
|
||||
|
||||
.jsxc_status-msg-show .jsxc_lastmsg {
|
||||
display: none !important; }
|
||||
|
||||
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_bar .jsxc_avatar, li[data-type='groupchat'] .jsxc_avatar {
|
||||
text-indent: 999px;
|
||||
background-image: url('../img/group_white.svg');
|
||||
@@ -3309,6 +3344,8 @@ div.jsxc_transfer {
|
||||
color: inherit; }
|
||||
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul > li .jsxc_avatar {
|
||||
margin-right: 4px; }
|
||||
.jsxc_windowItem .jsxc_memberlist .jsxc_avatar :before {
|
||||
display: none; }
|
||||
|
||||
li[data-type='groupchat'] .jsxc_video {
|
||||
display: none; }
|
||||
@@ -3394,6 +3431,14 @@ li[data-type='groupchat'] .jsxc_video {
|
||||
background-color: #f2f2f2;
|
||||
padding: 10px;
|
||||
margin: 0 -30px 10px; }
|
||||
#jsxc_dialog form fieldset h3.jsxc_experimental:after {
|
||||
content: "experimental";
|
||||
font-size: 0.7em;
|
||||
border-radius: 2px;
|
||||
padding: 1px 5px;
|
||||
background-color: orange;
|
||||
margin-left: 5px;
|
||||
font-weight: normal; }
|
||||
#jsxc_dialog legend {
|
||||
border: 0;
|
||||
font-size: 20px; }
|
||||
|
||||
+978
-509
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
externo
+9
-9
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
+4095
-3476
Diff do arquivo suprimido porque uma ou mais linhas são muito longas
externo
+49
-46
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
+16
-4
@@ -25,28 +25,40 @@
|
||||
},
|
||||
{
|
||||
"name": "strophe.js/vcard",
|
||||
"file": "lib/strophe.vcard/index.js",
|
||||
"file": "lib/strophe.vcard/strophe.vcard.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins"
|
||||
},
|
||||
{
|
||||
"name": "strophe.js/bookmarks",
|
||||
"file": "lib/strophe.bookmarks/index.js",
|
||||
"file": "lib/strophe.bookmarks/strophe.bookmarks.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins/tree/master/bookmarks"
|
||||
},
|
||||
{
|
||||
"name": "strophe.js/x",
|
||||
"file": "lib/strophe.x/index.js",
|
||||
"file": "lib/strophe.x/src/strophe.x.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins/tree/master/dataforms"
|
||||
},
|
||||
{
|
||||
"name": "strophe.js/chatstates",
|
||||
"file": "lib/strophe.chatstates/index.js",
|
||||
"file": "lib/strophe.chatstates/strophe.chatstates.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugins/tree/master/chatstates"
|
||||
},
|
||||
{
|
||||
"name": "strophe.js/mam",
|
||||
"file": "lib/strophejs-plugin-mam/strophe.mam.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugin-mam"
|
||||
},
|
||||
{
|
||||
"name": "strophe.js/rsm",
|
||||
"file": "lib/strophejs-plugin-rsm/strophe.rsm.js",
|
||||
"license": "MIT",
|
||||
"url": "https://github.com/strophe/strophejs-plugin-rsm"
|
||||
},
|
||||
{
|
||||
"name": "strophe.jinglejs",
|
||||
"file": "lib/strophe.jinglejs/strophe.jinglejs-bundle.js",
|
||||
|
||||
+5
-5
@@ -160,7 +160,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line236">line 236</a>
|
||||
<a href="jsxc.lib.Message.js.html">jsxc.lib.Message.js</a>, <a href="jsxc.lib.Message.js.html#line238">line 238</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line214">line 214</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line212">line 212</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line181">line 181</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line179">line 179</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -452,13 +452,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+2
-2
@@ -50,13 +50,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+1644
-1644
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -73,7 +73,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#line1890">line 1890</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1878">line 1878</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ otherwise only dialog with given name is closed.
|
||||
|
||||
<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#line1975">line 1975</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1963">line 1963</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -457,7 +457,7 @@ otherwise only dialog with given name is closed.
|
||||
|
||||
<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#line1905">line 1905</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1893">line 1893</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -610,7 +610,7 @@ otherwise only dialog with given name is closed.
|
||||
|
||||
<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#line1990">line 1990</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1978">line 1978</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -652,13 +652,13 @@ otherwise only dialog with given name is closed.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+208
-208
@@ -304,7 +304,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#line1277">line 1277</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1242">line 1242</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1193">line 1193</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1156">line 1156</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -584,7 +584,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#line1330">line 1330</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1295">line 1295</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -717,7 +717,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line375">line 375</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line311">line 311</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -821,7 +821,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#line98">line 98</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line113">line 113</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -947,7 +947,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#line1299">line 1299</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1264">line 1264</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1073,7 +1073,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#line345">line 345</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line281">line 281</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1204,7 +1204,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#line1437">line 1437</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1409">line 1409</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1308,7 +1308,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#line817">line 817</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line760">line 760</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1439,7 +1439,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#line765">line 765</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line708">line 708</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1588,7 +1588,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#line615">line 615</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line557">line 557</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1670,7 +1670,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line774">line 774</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line717">line 717</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1865,7 +1865,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#line798">line 798</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line741">line 741</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2026,7 +2026,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#line649">line 649</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line591">line 591</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2108,7 +2108,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#line830">line 830</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line773">line 773</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2239,7 +2239,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#line481">line 481</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line423">line 423</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2321,7 +2321,184 @@
|
||||
|
||||
<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#line428">line 428</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line364">line 364</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".showNotification"><span class="type-signature">(static) </span>showNotification<span class="signature">(subject, body, from)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Show notification dialog.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>subject</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">String</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>body</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">String</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>from</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">String</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1136">line 1136</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2452,7 +2629,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#line725">line 725</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line668">line 668</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2552,7 +2729,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#line1083">line 1083</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1026">line 1026</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2683,7 +2860,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#line862">line 862</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line805">line 805</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2814,7 +2991,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#line490">line 490</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line432">line 432</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2896,7 +3073,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line1028">line 1028</a>
|
||||
<a href="jsxc.lib.webrtc.js.html">jsxc.lib.webrtc.js</a>, <a href="jsxc.lib.webrtc.js.html#line1379">line 1379</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3027,7 +3204,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#line753">line 753</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line696">line 696</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3127,7 +3304,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#line386">line 386</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line322">line 322</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3258,7 +3435,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#line159">line 159</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line176">line 176</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3384,7 +3561,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#line1249">line 1249</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1214">line 1214</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3515,184 +3692,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#line175">line 175</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".updateAvatar"><span class="type-signature">(static) </span>updateAvatar<span class="signature">(el, jid, aid)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Update avatar on all given elements.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>el</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">jQuery</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Elements with subelement .jsxc_avatar</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>jid</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Jid</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>aid</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">string</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Avatar id (sha1 hash of image)</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line249">line 249</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line192">line 192</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3841,7 +3841,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#line1215">line 1215</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1178">line 1178</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3923,7 +3923,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#line329">line 329</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line265">line 265</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3965,13 +3965,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -73,7 +73,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#line51">line 51</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line52">line 52</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -160,7 +160,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#line86">line 86</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line101">line 101</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line58">line 58</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line59">line 59</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -324,7 +324,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line67">line 67</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line82">line 82</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -406,7 +406,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#line72">line 72</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line87">line 87</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -488,7 +488,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#line81">line 81</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line96">line 96</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -530,13 +530,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+16
-16
@@ -73,7 +73,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#line1466">line 1466</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1453">line 1453</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -148,7 +148,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#line1477">line 1477</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1464">line 1464</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1474">line 1474</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1461">line 1461</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -360,7 +360,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#line1800">line 1800</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1788">line 1788</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -509,7 +509,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#line1592">line 1592</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1580">line 1580</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -591,7 +591,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#line1876">line 1876</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1864">line 1864</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -673,7 +673,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#line1485">line 1485</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1472">line 1472</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -846,7 +846,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1680">line 1680</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1668">line 1668</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -946,7 +946,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1861">line 1861</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1849">line 1849</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1077,7 +1077,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1736">line 1736</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1724">line 1724</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1208,7 +1208,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1727">line 1727</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1715">line 1715</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1361,7 +1361,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1757">line 1757</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1745">line 1745</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1510,7 +1510,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1717">line 1717</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1705">line 1705</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1659,7 +1659,7 @@ alphabetical of the name
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1828">line 1828</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1816">line 1816</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1701,13 +1701,13 @@ alphabetical of the name
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+175
-175
@@ -73,7 +73,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#line1995">line 1995</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1983">line 1983</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -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#line2318">line 2318</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2342">line 2342</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#line2442">line 2442</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2466">line 2466</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#line2585">line 2585</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2612">line 2612</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#line2363">line 2363</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2387">line 2387</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#line2790">line 2790</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2853">line 2853</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#line2293">line 2293</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2317">line 2317</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#line2268">line 2268</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2292">line 2292</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#line2417">line 2417</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2441">line 2441</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#line2456">line 2456</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2480">line 2480</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1504,7 +1504,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#line2008">line 2008</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line1996">line 1996</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#line2279">line 2279</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2303">line 2303</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1711,159 +1711,6 @@ created.
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".postMessage"><span class="type-signature">(static) </span>postMessage<span class="signature">(message)</span><span class="type-signature"> → {<a href="jsxc.Message.html">jsxc.Message</a>}</span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Write Message to chat area and save. Check border cases and remove html.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>message</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><a href="jsxc.Message.html">jsxc.Message</a></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">object to be send</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2484">line 2484</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Returns:</h5>
|
||||
|
||||
|
||||
<div class="param-desc">
|
||||
maybe modified message object
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
Type
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<span class="param-type"><a href="jsxc.Message.html">jsxc.Message</a></span>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".postMessage"><span class="type-signature">(static) </span>postMessage<span class="signature">(args)</span><span class="type-signature"> → {<a href="jsxc.Message.html">jsxc.Message</a>}</span></h4>
|
||||
|
||||
|
||||
@@ -2293,7 +2140,160 @@ 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#line2492">line 2492</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2516">line 2516</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Returns:</h5>
|
||||
|
||||
|
||||
<div class="param-desc">
|
||||
maybe modified message object
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
Type
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<span class="param-type"><a href="jsxc.Message.html">jsxc.Message</a></span>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".postMessage"><span class="type-signature">(static) </span>postMessage<span class="signature">(message)</span><span class="type-signature"> → {<a href="jsxc.Message.html">jsxc.Message</a>}</span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Write Message to chat area and save. Check border cases and remove html.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>message</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type"><a href="jsxc.Message.html">jsxc.Message</a></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">object to be send</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2508">line 2508</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#line2816">line 2816</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2885">line 2885</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#line2199">line 2199</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2223">line 2223</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#line2754">line 2754</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2817">line 2817</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#line2471">line 2471</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2495">line 2495</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#line2744">line 2744</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2807">line 2807</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#line2350">line 2350</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2374">line 2374</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#line2328">line 2328</a>
|
||||
<a href="jsxc.lib.gui.js.html">jsxc.lib.gui.js</a>, <a href="jsxc.lib.gui.js.html#line2352">line 2352</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3435,13 +3435,13 @@ and save. Check border cases and remove html.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+166
-101
@@ -110,6 +110,9 @@
|
||||
<h3 class="subsection-title">Namespaces</h3>
|
||||
|
||||
<dl>
|
||||
<dt><a href="jsxc.fileTransfer.html">fileTransfer</a></dt>
|
||||
<dd></dd>
|
||||
|
||||
<dt><a href="jsxc.gui.html">gui</a></dt>
|
||||
<dd></dd>
|
||||
|
||||
@@ -188,7 +191,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line59">line 59</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line56">line 56</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -242,6 +245,130 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<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#line65">line 65</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".currentState"><span class="type-signature">(static) </span>currentState<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Current state
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line59">line 59</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".currentUIState"><span class="type-signature">(static) </span>currentUIState<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Current UI state
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -374,7 +501,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line174">line 174</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line191">line 191</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -436,7 +563,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line47">line 47</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line44">line 44</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -578,68 +705,6 @@
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".reconnect"><span class="type-signature">(static) </span>reconnect<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
True if jid, sid and rid was used to connect
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line32">line 32</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".restoreCompleted"><span class="type-signature">(static) </span>restoreCompleted<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
@@ -684,7 +749,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line35">line 35</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line32">line 32</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -809,7 +874,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#line53">line 53</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line50">line 50</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1119,7 +1184,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#line56">line 56</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line53">line 53</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1181,7 +1246,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#line38">line 38</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line35">line 35</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1243,7 +1308,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#line41">line 41</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line38">line 38</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1305,7 +1370,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#line44">line 44</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line41">line 41</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1506,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#line584">line 584</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line619">line 619</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1683,7 +1748,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#line121">line 121</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line138">line 138</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1814,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#line675">line 675</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line710">line 710</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1986,7 +2051,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#line169">line 169</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line186">line 186</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2068,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#line778">line 778</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line817">line 817</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2222,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#line873">line 873</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line912">line 912</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2363,7 +2428,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#line91">line 91</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line108">line 108</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2455,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#line849">line 849</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line888">line 888</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2608,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#line893">line 893</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line932">line 932</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2771,7 +2836,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#line192">line 192</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line209">line 209</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2853,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#line821">line 821</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line860">line 860</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2957,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#line426">line 426</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line461">line 461</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3105,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#line700">line 700</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line735">line 735</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3246,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#line685">line 685</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line720">line 720</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3350,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#line635">line 635</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line670">line 670</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3433,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#line646">line 646</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line681">line 681</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3515,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#line562">line 562</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line597">line 597</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3597,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#line540">line 540</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line579">line 579</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3774,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#line438">line 438</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line473">line 473</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -3905,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#line665">line 665</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line700">line 700</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4053,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#line790">line 790</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line829">line 829</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4145,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#line707">line 707</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line742">line 742</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4227,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#line729">line 729</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line764">line 764</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4404,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#line372">line 372</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line407">line 407</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4486,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#line628">line 628</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line663">line 663</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4568,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#line759">line 759</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line794">line 794</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4722,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#line801">line 801</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line840">line 840</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4898,7 +4963,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#line158">line 158</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line175">line 175</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -4940,13 +5005,13 @@ normal signal
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* Load message object with given uid.
|
||||
*
|
||||
*
|
||||
* @class Message
|
||||
* @memberOf jsxc
|
||||
* @param {string} uid Unified identifier from message object
|
||||
@@ -62,7 +62,7 @@ jsxc.Message = function() {
|
||||
this._received = false;
|
||||
|
||||
/** @member {boolean} */
|
||||
this.encrypted = false;
|
||||
this.encrypted = null;
|
||||
|
||||
/** @member {boolean} */
|
||||
this.forwarded = false;
|
||||
@@ -70,6 +70,8 @@ jsxc.Message = function() {
|
||||
/** @member {integer} */
|
||||
this.stamp = new Date().getTime();
|
||||
|
||||
this.type = jsxc.Message.PLAIN;
|
||||
|
||||
if (typeof arguments[0] === 'string' && arguments[0].length > 0 && arguments.length === 1) {
|
||||
this._uid = arguments[0];
|
||||
|
||||
@@ -120,7 +122,7 @@ jsxc.Message.prototype.save = function() {
|
||||
}
|
||||
}
|
||||
|
||||
if (Image && this.attachment && this.attachment.type.match(/^image\//i) && this.attachment.data) {
|
||||
if (Image && this.attachment && this.attachment.type.match(/^image\//i) && this.attachment.data && !this.attachment.thumbnail) {
|
||||
var sHeight, sWidth, sx, sy;
|
||||
var dHeight = 100,
|
||||
dWidth = 100;
|
||||
@@ -185,7 +187,7 @@ jsxc.Message.prototype.save = function() {
|
||||
|
||||
/**
|
||||
* Remove object from storage.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.Message
|
||||
*/
|
||||
jsxc.Message.prototype.delete = function() {
|
||||
@@ -204,7 +206,7 @@ jsxc.Message.prototype.getDOM = function() {
|
||||
|
||||
/**
|
||||
* Mark message as received.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.Message
|
||||
*/
|
||||
jsxc.Message.prototype.received = function() {
|
||||
@@ -244,7 +246,7 @@ jsxc.Message.delete = function(uid) {
|
||||
return el !== uid;
|
||||
});
|
||||
|
||||
jsxc.storage.setUserItem('history', data.bid);
|
||||
jsxc.storage.setUserItem('history', data.bid, history);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -263,7 +265,7 @@ jsxc.Message.getDOM = function(uid) {
|
||||
|
||||
/**
|
||||
* Message direction can be incoming, outgoing or system.
|
||||
*
|
||||
*
|
||||
* @typedef {(jsxc.Message.IN|jsxc.Message.OUT|jsxc.Message.SYS)} direction
|
||||
*/
|
||||
|
||||
@@ -287,6 +289,10 @@ jsxc.Message.OUT = 'out';
|
||||
* @default
|
||||
*/
|
||||
jsxc.Message.SYS = 'sys';
|
||||
|
||||
jsxc.Message.HTML = 'html';
|
||||
|
||||
jsxc.Message.PLAIN = 'plain';
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
@@ -297,13 +303,13 @@ jsxc.Message.SYS = 'sys';
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -0,0 +1,301 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.fileTransfer.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.fileTransfer.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* @namespace jsxc.fileTransfer
|
||||
* @type {Object}
|
||||
*/
|
||||
jsxc.fileTransfer = {};
|
||||
|
||||
/**
|
||||
* Make bytes more human readable.
|
||||
*
|
||||
* @memberOf jsxc.fileTransfer
|
||||
* @param {Integer} byte
|
||||
* @return {String}
|
||||
*/
|
||||
jsxc.fileTransfer.formatByte = function(byte) {
|
||||
var s = ['', 'KB', 'MB', 'GB', 'TB'];
|
||||
var i;
|
||||
|
||||
for (i = 1; i < s.length; i++) {
|
||||
if (byte < 1024) {
|
||||
break;
|
||||
}
|
||||
byte /= 1024;
|
||||
}
|
||||
|
||||
return (Math.round(byte * 10) / 10) + s[i - 1];
|
||||
};
|
||||
|
||||
/**
|
||||
* Start file transfer dialog.
|
||||
*
|
||||
* @memberOf jsxc.fileTransfer
|
||||
* @param {String} jid
|
||||
*/
|
||||
jsxc.fileTransfer.startGuiAction = function(jid) {
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var res = Strophe.getResourceFromJid(jid);
|
||||
|
||||
if (!res && !jsxc.xmpp.httpUpload.ready) {
|
||||
jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.fileTransfer.showFileSelection(jid);
|
||||
};
|
||||
|
||||
/**
|
||||
* Show select dialog for file transfer capable resources.
|
||||
*
|
||||
* @memberOf jsxc.fileTransfer
|
||||
* @param {String} bid
|
||||
* @param {Function} success_cb Called if user selects resource
|
||||
* @param {Function} error_cb Called if no resource was found or selected
|
||||
*/
|
||||
jsxc.fileTransfer.selectResource = function(bid, success_cb, error_cb) {
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
var jid = win.data('jid');
|
||||
var res = Strophe.getResourceFromJid(jid);
|
||||
|
||||
var fileCapableRes = jsxc.webrtc.getCapableRes(jid, jsxc.webrtc.reqFileFeatures);
|
||||
var resources = Object.keys(jsxc.storage.getUserItem('res', bid)) || [];
|
||||
|
||||
if (res === null && resources.length === 1 && fileCapableRes.length === 1) {
|
||||
// only one resource is available and this resource is also capable to receive files
|
||||
res = fileCapableRes[0];
|
||||
jid = bid + '/' + res;
|
||||
|
||||
success_cb(jid);
|
||||
} else if (fileCapableRes.indexOf(res) >= 0) {
|
||||
// currently used resource is capable to receive files
|
||||
success_cb(bid + '/' + res);
|
||||
} else if (fileCapableRes.indexOf(res) < 0) {
|
||||
// show selection dialog
|
||||
jsxc.gui.window.selectResource(bid, $.t('Your_contact_uses_multiple_clients_'), function(data) {
|
||||
if (data.status === 'unavailable') {
|
||||
jsxc.gui.window.hideOverlay(bid);
|
||||
|
||||
if (typeof error_cb === 'function') {
|
||||
error_cb();
|
||||
}
|
||||
} else if (data.status === 'selected') {
|
||||
success_cb(bid + '/' + data.result);
|
||||
}
|
||||
}, fileCapableRes);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Show file selector.
|
||||
*
|
||||
* @memberOf jsxc.fileTransfer
|
||||
* @param {String} jid
|
||||
*/
|
||||
jsxc.fileTransfer.showFileSelection = function(jid) {
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var msg = $('<div><div><label><input type="file" name="files" /><label></div></div>');
|
||||
msg.addClass('jsxc_chatmessage');
|
||||
|
||||
jsxc.gui.window.showOverlay(bid, msg, true);
|
||||
|
||||
// open file selection for user
|
||||
msg.find('label').click();
|
||||
|
||||
msg.find('[type="file"]').change(function(ev) {
|
||||
var file = ev.target.files[0]; // FileList object
|
||||
|
||||
if (!file) {
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.fileTransfer.fileSelected(jid, msg, file);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Callback for file selector.
|
||||
*
|
||||
* @memberOf jsxc.fileTransfer
|
||||
* @param {String} jid
|
||||
* @param {jQuery} msg jQuery object of temporary file message
|
||||
* @param {File} file selected file
|
||||
*/
|
||||
jsxc.fileTransfer.fileSelected = function(jid, msg, file) {
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var maxSize = jsxc.options.get('httpUpload').maxSize;
|
||||
|
||||
if (file.transportMethod !== 'webrtc' && jsxc.xmpp.httpUpload.ready && maxSize >= 0 && file.size > maxSize) {
|
||||
jsxc.debug('File too large for http upload.');
|
||||
|
||||
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.gui.window.hideOverlay(bid);
|
||||
});
|
||||
|
||||
return;
|
||||
} else if (!jsxc.xmpp.httpUpload.ready && Strophe.getResourceFromJid(jid)) {
|
||||
// http upload not available
|
||||
file.transportMethod = 'webrtc';
|
||||
}
|
||||
|
||||
var attachment = $('<div>');
|
||||
attachment.addClass('jsxc_attachment');
|
||||
attachment.addClass('jsxc_' + file.type.replace(/\//, '-'));
|
||||
attachment.addClass('jsxc_' + file.type.replace(/^([^/]+)\/.*/, '$1'));
|
||||
|
||||
msg.empty().append(attachment);
|
||||
|
||||
if (FileReader && file.type.match(/^image\//)) {
|
||||
// show image preview
|
||||
var img = $('<img alt="preview">').attr('title', file.name);
|
||||
img.attr('src', jsxc.options.get('root') + '/img/loading.gif');
|
||||
img.appendTo(attachment);
|
||||
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = function() {
|
||||
img.attr('src', reader.result);
|
||||
};
|
||||
|
||||
reader.readAsDataURL(file);
|
||||
} else {
|
||||
attachment.text(file.name + ' (' + file.size + ' byte)');
|
||||
}
|
||||
|
||||
$('<button>').addClass('jsxc_btn jsxc_btn-primary').text($.t('Send')).click(function() {
|
||||
// user confirmed file transfer
|
||||
jsxc.gui.window.hideOverlay(bid);
|
||||
msg.remove();
|
||||
|
||||
var message = jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: 'out',
|
||||
attachment: {
|
||||
name: file.name,
|
||||
size: file.size,
|
||||
type: file.type,
|
||||
data: (file.type.match(/^image\//)) ? img.attr('src') : null
|
||||
}
|
||||
});
|
||||
|
||||
if (file.transportMethod === 'webrtc') {
|
||||
var sess = jsxc.webrtc.sendFile(jid, file);
|
||||
|
||||
sess.sender.on('progress', function(sent, size) {
|
||||
jsxc.gui.window.updateProgress(message, sent, size);
|
||||
|
||||
if (sent === size) {
|
||||
message.received();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// progress is updated in xmpp.httpUpload.uploadFile
|
||||
jsxc.xmpp.httpUpload.sendFile(file, message);
|
||||
}
|
||||
}).appendTo(msg);
|
||||
|
||||
$('<button>').addClass('jsxc_btn jsxc_btn-default').text($.t('Abort')).click(function() {
|
||||
// user aborted file transfer
|
||||
jsxc.gui.window.hideOverlay(bid);
|
||||
}).appendTo(msg);
|
||||
};
|
||||
|
||||
/**
|
||||
* Enable/disable icons for file transfer.
|
||||
*
|
||||
* @memberOf jsxc.fileTransfer
|
||||
* @param {String} bid
|
||||
*/
|
||||
jsxc.fileTransfer.updateIcons = function(bid) {
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
if (!win || win.length === 0 || !jsxc.xmpp.conn) {
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.debug('Update file transfer icons for ' + bid);
|
||||
|
||||
if (jsxc.xmpp.httpUpload.ready) {
|
||||
win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var jid = win.data('jid');
|
||||
var res = Strophe.getResourceFromJid(jid);
|
||||
var fileCapableRes = jsxc.webrtc.getCapableRes(bid, jsxc.webrtc.reqFileFeatures);
|
||||
var resources = Object.keys(jsxc.storage.getUserItem('res', bid) || {}) || [];
|
||||
|
||||
if (fileCapableRes.indexOf(res) > -1 || (res === null && fileCapableRes.length === 1 && resources.length === 1)) {
|
||||
win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
|
||||
} else {
|
||||
win.find('.jsxc_sendFile').addClass('jsxc_disabled');
|
||||
}
|
||||
};
|
||||
|
||||
$(document).on('update.gui.jsxc', function(ev, bid) {
|
||||
jsxc.fileTransfer.updateIcons(bid);
|
||||
});
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,216 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.gui.avatar.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.gui.avatar.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>jsxc.gui.avatar = {
|
||||
queue: [],
|
||||
|
||||
PLACEHOLDER: 0,
|
||||
|
||||
DELAY: 300,
|
||||
|
||||
CHUNKSIZE: 20,
|
||||
|
||||
timeout: null,
|
||||
|
||||
lastRun: 0
|
||||
};
|
||||
|
||||
/**
|
||||
* Update avatar on all given elements.
|
||||
*
|
||||
* @memberOf jsxc.gui
|
||||
* @param {jQuery} el Elements with subelement .jsxc_avatar
|
||||
* @param {string} jid Jid
|
||||
* @param {string} aid Avatar id (sha1 hash of image)
|
||||
*/
|
||||
jsxc.gui.avatar.update = function(el, jid, aid) {
|
||||
var self = jsxc.gui.avatar;
|
||||
|
||||
if (typeof aid === 'undefined') {
|
||||
self.set(jid, el, self.PLACEHOLDER);
|
||||
return;
|
||||
}
|
||||
|
||||
var avatarSrc = jsxc.storage.getUserItem('avatar', aid);
|
||||
|
||||
if (!jsxc.master && !avatarSrc) {
|
||||
// force avatar placeholder for slave tab, until master tab requested vCard
|
||||
avatarSrc = self.PLACEHOLDER;
|
||||
}
|
||||
|
||||
if (avatarSrc !== null) {
|
||||
self.set(jid, el, avatarSrc);
|
||||
} else {
|
||||
var handler_cb = function(stanza) {
|
||||
var src = jsxc.gui.avatar.getPhotoFromVcard(stanza);
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, src);
|
||||
self.set(jid, el, src);
|
||||
};
|
||||
|
||||
var error_cb = function(msg) {
|
||||
jsxc.warn('Could not load vcard.', msg);
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, self.PLACEHOLDER);
|
||||
self.set(jid, el, self.PLACEHOLDER);
|
||||
};
|
||||
|
||||
var args = [];
|
||||
|
||||
// workaround for https://github.com/strophe/strophejs/issues/172
|
||||
if (Strophe.getBareJidFromJid(jid) === Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)) {
|
||||
args = [handler_cb, error_cb];
|
||||
} else {
|
||||
args = [handler_cb, Strophe.getBareJidFromJid(jid), error_cb];
|
||||
}
|
||||
|
||||
jsxc.gui.avatar.queueAction(jid, jsxc.xmpp.conn.vcard.get, args, jsxc.xmpp.conn.vcard);
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.getPhotoFromVcard = function(stanza) {
|
||||
jsxc.debug('vCard', stanza);
|
||||
|
||||
var vCard = $(stanza).find("vCard > PHOTO");
|
||||
var src;
|
||||
|
||||
if (vCard.length === 0) {
|
||||
jsxc.debug('No photo provided');
|
||||
src = '0';
|
||||
} else if (vCard.find('EXTVAL').length > 0) {
|
||||
src = vCard.find('EXTVAL').text();
|
||||
} else {
|
||||
var img = vCard.find('BINVAL').text();
|
||||
var type = vCard.find('TYPE').text();
|
||||
src = 'data:' + type + ';base64,' + img;
|
||||
}
|
||||
|
||||
// concat chunks
|
||||
src = src.replace(/[\t\r\n\f]/gi, '');
|
||||
|
||||
return src;
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.set = function(jid, el, src) {
|
||||
var self = jsxc.gui.avatar;
|
||||
|
||||
if (src === self.PLACEHOLDER || src === '0') {
|
||||
if (typeof jsxc.options.defaultAvatar === 'function') {
|
||||
jsxc.gui.avatar.queueAction(jid, function() {
|
||||
jsxc.options.defaultAvatar.call(el, jid);
|
||||
});
|
||||
return;
|
||||
}
|
||||
jsxc.gui.avatarPlaceholder(el.find('.jsxc_avatar'), jid);
|
||||
return;
|
||||
}
|
||||
|
||||
el.find('.jsxc_avatar').removeAttr('style');
|
||||
|
||||
el.find('.jsxc_avatar').css({
|
||||
'background-image': 'url(' + src + ')',
|
||||
'text-indent': '999px'
|
||||
});
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.queueAction = function(jid, fn, args, context) {
|
||||
var self = jsxc.gui.avatar;
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var data = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
var state = data.status;
|
||||
|
||||
var index = self.queue.indexOf(bid);
|
||||
if (index > -1) {
|
||||
self.queue.splice(index, 1);
|
||||
}
|
||||
|
||||
var action = {
|
||||
fn: fn,
|
||||
args: args || [],
|
||||
context: context || this
|
||||
};
|
||||
|
||||
if (state === 0) {
|
||||
self.queue.push(action);
|
||||
} else {
|
||||
self.queue.unshift(action);
|
||||
}
|
||||
|
||||
jsxc.gui.avatar.processQueue();
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.processQueue = function() {
|
||||
var self = jsxc.gui.avatar;
|
||||
var currentTime = (new Date()).getTime();
|
||||
|
||||
if (currentTime - self.lastRun < self.DELAY) {
|
||||
if (!self.timeout) {
|
||||
self.timeout = setTimeout(self.processQueue, self.DELAY);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
self.lastRun = currentTime;
|
||||
|
||||
var i, action;
|
||||
for (i = 0; i < self.CHUNKSIZE; i++) {
|
||||
if (self.queue.length > 0) {
|
||||
action = self.queue.shift();
|
||||
action.fn.apply(action.context, action.args);
|
||||
}
|
||||
}
|
||||
|
||||
if (self.queue.length > 0) {
|
||||
self.timeout = setTimeout(self.processQueue, self.DELAY);
|
||||
} else {
|
||||
self.timeout = null;
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
+187
-208
@@ -71,7 +71,8 @@ jsxc.gui = {
|
||||
':jabber:': ['jabber'],
|
||||
':xmpp:': ['xmpp'],
|
||||
':jsxc:': ['jsxc'],
|
||||
':owncloud:': ['owncloud']
|
||||
':owncloud:': ['owncloud'],
|
||||
':nextcloud:': ['nextcloud']
|
||||
},
|
||||
'emojione': emojione.emojioneList
|
||||
},
|
||||
@@ -84,7 +85,21 @@ jsxc.gui = {
|
||||
queryActions: {
|
||||
/** xmpp:JID?message[;body=TEXT] */
|
||||
message: function(jid, params) {
|
||||
var win = jsxc.gui.window.open(jsxc.jidToBid(jid));
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
|
||||
if (!jsxc.storage.getUserItem('buddy', bid)) {
|
||||
// init contact
|
||||
jsxc.storage.saveBuddy(bid, {
|
||||
jid: jid,
|
||||
name: bid,
|
||||
status: 0,
|
||||
sub: 'none',
|
||||
res: [],
|
||||
rnd: Math.random()
|
||||
});
|
||||
}
|
||||
|
||||
var win = jsxc.gui.window.open(bid);
|
||||
|
||||
if (params && typeof params.body === 'string') {
|
||||
win.find('.jsxc_textinput').val(params.body);
|
||||
@@ -129,6 +144,8 @@ jsxc.gui = {
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.changeUIState(jsxc.CONST.UISTATE.INITIATING);
|
||||
|
||||
jsxc.gui.regShortNames = new RegExp(emojione.regShortNames.source + '|(' + Object.keys(jsxc.gui.emoticonList.core).join('|') + ')', 'gi');
|
||||
|
||||
$('body').append($(jsxc.gui.template.get('windowList')));
|
||||
@@ -263,90 +280,9 @@ jsxc.gui = {
|
||||
|
||||
ri.find('.jsxc_name').attr('title', info);
|
||||
|
||||
jsxc.gui.updateAvatar(ri.add(we.find('.jsxc_bar')), data.jid, data.avatar);
|
||||
},
|
||||
jsxc.gui.avatar.update(ri.add(we.find('.jsxc_bar')), data.jid, data.avatar);
|
||||
|
||||
/**
|
||||
* Update avatar on all given elements.
|
||||
*
|
||||
* @memberOf jsxc.gui
|
||||
* @param {jQuery} el Elements with subelement .jsxc_avatar
|
||||
* @param {string} jid Jid
|
||||
* @param {string} aid Avatar id (sha1 hash of image)
|
||||
*/
|
||||
updateAvatar: function(el, jid, aid) {
|
||||
|
||||
var setAvatar = function(src) {
|
||||
if (src === 0 || src === '0') {
|
||||
if (typeof jsxc.options.defaultAvatar === 'function') {
|
||||
jsxc.options.defaultAvatar.call(el, jid);
|
||||
return;
|
||||
}
|
||||
jsxc.gui.avatarPlaceholder(el.find('.jsxc_avatar'), jid);
|
||||
return;
|
||||
}
|
||||
|
||||
el.find('.jsxc_avatar').removeAttr('style');
|
||||
|
||||
el.find('.jsxc_avatar').css({
|
||||
'background-image': 'url(' + src + ')',
|
||||
'text-indent': '999px'
|
||||
});
|
||||
};
|
||||
|
||||
if (typeof aid === 'undefined') {
|
||||
setAvatar(0);
|
||||
return;
|
||||
}
|
||||
|
||||
var avatarSrc = jsxc.storage.getUserItem('avatar', aid);
|
||||
|
||||
if (!jsxc.master && !avatarSrc) {
|
||||
// force avatar placeholder for slave tab, until master tab requested vCard
|
||||
avatarSrc = 0;
|
||||
}
|
||||
|
||||
if (avatarSrc !== null) {
|
||||
setAvatar(avatarSrc);
|
||||
} else {
|
||||
var handler_cb = function(stanza) {
|
||||
jsxc.debug('vCard', stanza);
|
||||
|
||||
var vCard = $(stanza).find("vCard > PHOTO");
|
||||
var src;
|
||||
|
||||
if (vCard.length === 0) {
|
||||
jsxc.debug('No photo provided');
|
||||
src = '0';
|
||||
} else if (vCard.find('EXTVAL').length > 0) {
|
||||
src = vCard.find('EXTVAL').text();
|
||||
} else {
|
||||
var img = vCard.find('BINVAL').text();
|
||||
var type = vCard.find('TYPE').text();
|
||||
src = 'data:' + type + ';base64,' + img;
|
||||
}
|
||||
|
||||
// concat chunks
|
||||
src = src.replace(/[\t\r\n\f]/gi, '');
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, src);
|
||||
setAvatar(src);
|
||||
};
|
||||
|
||||
var error_cb = function(msg) {
|
||||
jsxc.warn('Could not load vcard.', msg);
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, 0);
|
||||
setAvatar(0);
|
||||
};
|
||||
|
||||
// workaround for https://github.com/strophe/strophejs/issues/172
|
||||
if (Strophe.getBareJidFromJid(jid) === Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)) {
|
||||
jsxc.xmpp.conn.vcard.get(handler_cb, error_cb);
|
||||
} else {
|
||||
jsxc.xmpp.conn.vcard.get(handler_cb, Strophe.getBareJidFromJid(jid), error_cb);
|
||||
}
|
||||
}
|
||||
$(document).trigger('update.gui.jsxc', [bid]);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -454,9 +390,15 @@ jsxc.gui = {
|
||||
* Creates and show loginbox
|
||||
*/
|
||||
showLoginBox: function() {
|
||||
// Set focus to password field
|
||||
$(document).on("complete.dialog.jsxc", function() {
|
||||
$('#jsxc_password').focus();
|
||||
// Set focus to username or password field
|
||||
$(document).one("complete.dialog.jsxc", function() {
|
||||
setTimeout(function() {
|
||||
if ($("#jsxc_username").val().length === 0) {
|
||||
$("#jsxc_username").focus();
|
||||
} else {
|
||||
$('#jsxc_password').focus();
|
||||
}
|
||||
}, 50);
|
||||
});
|
||||
|
||||
jsxc.gui.dialog.open(jsxc.gui.template.get('loginBox'));
|
||||
@@ -690,6 +632,7 @@ jsxc.gui = {
|
||||
|
||||
if (val !== '') {
|
||||
jsxc.options.getUsers.call(this, val, function(list) {
|
||||
$('#jsxc_userlist').empty();
|
||||
$.each(list || {}, function(uid, displayname) {
|
||||
var option = $('<option>');
|
||||
option.attr('data-username', uid);
|
||||
@@ -893,7 +836,7 @@ jsxc.gui = {
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', bid);
|
||||
|
||||
if (data) {
|
||||
if (data && data.res) {
|
||||
// Display resources and corresponding information
|
||||
var i, j, res, identities, identity = null,
|
||||
cap, client;
|
||||
@@ -1211,6 +1154,26 @@ jsxc.gui = {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Show notification dialog.
|
||||
*
|
||||
* @param {String} subject
|
||||
* @param {String} body
|
||||
* @param {String} from
|
||||
*/
|
||||
showNotification: function(subject, body, from) {
|
||||
var dialog = jsxc.gui.dialog.open(jsxc.gui.template.get('notification'));
|
||||
|
||||
dialog.find('h3').text(subject);
|
||||
dialog.find('.jsxc_msg').text(body);
|
||||
|
||||
if (from) {
|
||||
dialog.find('.jsxc_meta').text($.t('from') + ' ' + from);
|
||||
} else {
|
||||
dialog.find('.jsxc_meta').hide();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Change own presence to pres.
|
||||
*
|
||||
@@ -1260,10 +1223,12 @@ jsxc.gui = {
|
||||
|
||||
el.attr('data-status', pres);
|
||||
|
||||
if (el.find('.jsxc_avatar').length > 0) {
|
||||
el = el.find('.jsxc_avatar');
|
||||
if (!el.hasClass('jsxc_statusIndicator')) {
|
||||
el = el.find('.jsxc_statusIndicator');
|
||||
}
|
||||
|
||||
el.attr('data-status', pres);
|
||||
|
||||
el.removeClass('jsxc_' + jsxc.CONST.STATUS.join(' jsxc_')).addClass('jsxc_' + pres);
|
||||
});
|
||||
},
|
||||
@@ -1365,6 +1330,9 @@ jsxc.gui = {
|
||||
var jid = href.split('?')[0];
|
||||
var action, params = {};
|
||||
|
||||
element.attr('data-bid', jsxc.jidToBid(jid));
|
||||
jsxc.gui.update(jsxc.jidToBid(jid));
|
||||
|
||||
if (href.indexOf('?') < 0) {
|
||||
action = 'message';
|
||||
} else {
|
||||
@@ -1386,7 +1354,11 @@ jsxc.gui = {
|
||||
element.off('click').click(function(ev) {
|
||||
ev.stopPropagation();
|
||||
|
||||
jsxc.gui.queryActions[action].call(jsxc, jid, params);
|
||||
if (jsxc.xmpp.conn && jsxc.xmpp.conn.connected) {
|
||||
jsxc.gui.queryActions[action].call(jsxc, jid, params);
|
||||
} else {
|
||||
jsxc.gui.showNotification($.t('no_connection'), $.t('You_have_to_go_online_'));
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
@@ -1474,7 +1446,7 @@ jsxc.gui = {
|
||||
filename = jsxc.gui.emoticonList.core[shortname][jsxc.gui.emoticonList.core[shortname].length - 1].replace(/^:([^:]+):$/, '$1');
|
||||
src = jsxc.options.root + '/img/emotions/' + filename + '.svg';
|
||||
} else if (jsxc.gui.emoticonList.emojione[shortname]) {
|
||||
filename = jsxc.gui.emoticonList.emojione[shortname][jsxc.gui.emoticonList.emojione[shortname].length - 1];
|
||||
filename = jsxc.gui.emoticonList.emojione[shortname].fname;
|
||||
src = jsxc.options.root + '/lib/emojione/assets/svg/' + filename + '.svg';
|
||||
}
|
||||
|
||||
@@ -1487,7 +1459,22 @@ jsxc.gui = {
|
||||
return div.prop('outerHTML');
|
||||
});
|
||||
|
||||
var obj = $('<div>' + str + '</div>');
|
||||
if (obj.find('.jsxc_emoticon').length === 1 && obj.text().replace(/ /, '').length === 0 && obj.find('*').length === 1) {
|
||||
obj.find('.jsxc_emoticon').addClass('jsxc_large');
|
||||
str = obj.prop('outerHTML');
|
||||
}
|
||||
|
||||
return str;
|
||||
},
|
||||
|
||||
restore: function() {
|
||||
jsxc.restoreRoster();
|
||||
jsxc.restoreWindows();
|
||||
jsxc.restoreCompleted = true;
|
||||
|
||||
$(document).trigger('restoreCompleted.jsxc');
|
||||
jsxc.changeUIState(jsxc.CONST.UISTATE.READY);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1609,7 +1596,8 @@ jsxc.gui.roster = {
|
||||
jsxc.notice.load();
|
||||
|
||||
jsxc.gui.roster.ready = true;
|
||||
$(document).trigger('ready.roster.jsxc');
|
||||
$(document).trigger('ready.roster.jsxc', [rosterState]);
|
||||
$(document).trigger('ready-roster-jsxc', [rosterState]);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2064,6 +2052,9 @@ jsxc.gui.window = {
|
||||
};
|
||||
|
||||
win.find('.jsxc_more').click(expandClick);
|
||||
win.find('.jsxc_menu').click(function() {
|
||||
$('body').click();
|
||||
});
|
||||
|
||||
win.find('.jsxc_verification').click(function() {
|
||||
jsxc.gui.showVerification(bid);
|
||||
@@ -2099,11 +2090,19 @@ jsxc.gui.window = {
|
||||
return false;
|
||||
});
|
||||
|
||||
var textinputBlurTimeout;
|
||||
win.find('.jsxc_textinput').keyup(function(ev) {
|
||||
var body = $(this).val();
|
||||
|
||||
if (ev.which === 13) {
|
||||
// I'm composing a message
|
||||
if (ev.which !== 13) {
|
||||
jsxc.xmpp.chatState.startComposing(bid);
|
||||
}
|
||||
|
||||
if (ev.which === 13 && !ev.shiftKey) {
|
||||
body = '';
|
||||
|
||||
jsxc.xmpp.chatState.endComposing(bid);
|
||||
}
|
||||
|
||||
jsxc.storage.updateUserItem('window', bid, 'text', body);
|
||||
@@ -2112,7 +2111,8 @@ jsxc.gui.window = {
|
||||
jsxc.gui.window.close(bid);
|
||||
}
|
||||
}).keypress(function(ev) {
|
||||
if (ev.which !== 13 || !$(this).val()) {
|
||||
if (ev.which !== 13 || ev.shiftKey || !$(this).val()) {
|
||||
resizeTextarea.call(this);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2122,16 +2122,40 @@ jsxc.gui.window = {
|
||||
msg: $(this).val()
|
||||
});
|
||||
|
||||
$(this).val('');
|
||||
$(this).css('height', '').val('');
|
||||
|
||||
ev.preventDefault();
|
||||
}).focus(function() {
|
||||
if (textinputBlurTimeout) {
|
||||
clearTimeout(textinputBlurTimeout);
|
||||
}
|
||||
|
||||
// remove unread flag
|
||||
jsxc.gui.readMsg(bid);
|
||||
|
||||
resizeTextarea.call(this);
|
||||
}).blur(function() {
|
||||
var self = $(this);
|
||||
|
||||
textinputBlurTimeout = setTimeout(function() {
|
||||
self.css('height', '');
|
||||
}, 1200);
|
||||
}).mouseenter(function() {
|
||||
$('#jsxc_windowList').data('isOver', true);
|
||||
}).mouseleave(function() {
|
||||
$('#jsxc_windowList').data('isOver', false);
|
||||
});
|
||||
|
||||
function resizeTextarea() {
|
||||
if (!$(this).data('originalHeight')) {
|
||||
$(this).data('originalHeight', $(this).outerHeight());
|
||||
}
|
||||
// compensate rounding error
|
||||
if ($(this).outerHeight() < (this.scrollHeight - 1) && $(this).val()) {
|
||||
$(this).height($(this).data('originalHeight') * 1.5);
|
||||
}
|
||||
}
|
||||
|
||||
win.find('.jsxc_textarea').click(function() {
|
||||
// check if user clicks element or selects text
|
||||
if (typeof getSelection === 'function' && !getSelection().toString()) {
|
||||
@@ -2191,8 +2215,8 @@ jsxc.gui.window = {
|
||||
li.append(jsxc.gui.shortnameToImage(':' + val[1] + ':'));
|
||||
li.find('div').attr('title', ins);
|
||||
li.click(function() {
|
||||
win.find('input').val(win.find('input').val() + ins);
|
||||
win.find('input').focus();
|
||||
win.find('.jsxc_textinput').val(win.find('.jsxc_textinput').val() + ins);
|
||||
win.find('.jsxc_textinput').focus();
|
||||
});
|
||||
win.find('.jsxc_emoticons ul').prepend(li);
|
||||
});
|
||||
@@ -2545,7 +2569,10 @@ jsxc.gui.window = {
|
||||
}
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', message.bid);
|
||||
var html_msg = message.msg;
|
||||
|
||||
if (!message.htmlMsg && message.msg) {
|
||||
message.htmlMsg = message.msg;
|
||||
}
|
||||
|
||||
// remove html tags and reencode html tags
|
||||
message.msg = jsxc.removeHTML(message.msg);
|
||||
@@ -2563,7 +2590,7 @@ jsxc.gui.window = {
|
||||
message.msg = $.t('unencrypted_message_received') + ' ' + message.msg;
|
||||
}
|
||||
|
||||
message.encrypted = message.encrypted || data.msgstate === OTR.CONST.MSGSTATE_ENCRYPTED;
|
||||
message.encrypted = (typeof message.encrypted === 'boolean') ? message.encrypted : data.msgstate === OTR.CONST.MSGSTATE_ENCRYPTED;
|
||||
|
||||
try {
|
||||
message.save();
|
||||
@@ -2579,11 +2606,11 @@ jsxc.gui.window = {
|
||||
if (message.direction === 'in' && !jsxc.gui.window.get(message.bid).find('.jsxc_textinput').is(":focus")) {
|
||||
jsxc.gui.unreadMsg(message.bid);
|
||||
|
||||
$(document).trigger('postmessagein.jsxc', [message.bid, html_msg]);
|
||||
$(document).trigger('postmessagein.jsxc', [message.bid, message.htmlMsg]);
|
||||
}
|
||||
|
||||
if (message.direction === jsxc.Message.OUT && jsxc.master && message.forwarded !== true && html_msg) {
|
||||
jsxc.xmpp.sendMessage(message.bid, html_msg, message._uid);
|
||||
if (message.direction === jsxc.Message.OUT && jsxc.master && message.forwarded !== true && message.htmlMsg) {
|
||||
jsxc.xmpp.sendMessage(message);
|
||||
}
|
||||
|
||||
jsxc.gui.window._postMessage(message);
|
||||
@@ -2654,6 +2681,17 @@ jsxc.gui.window = {
|
||||
// replace line breaks
|
||||
msg = msg.replace(/(\r\n|\r|\n)/g, '<br />');
|
||||
|
||||
// replace /me command (XEP-0245)
|
||||
var bidData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
if (direction === 'in') {
|
||||
msg = msg.replace(/^\/me /, '<i title="/me">' + jsxc.removeHTML(bidData.name || bid) + '</i> ');
|
||||
}
|
||||
|
||||
// hide unprocessed otr messages
|
||||
if (msg.match(/^\?OTR([:,|?]|[?v0-9x]+)/)) {
|
||||
msg = '<i title="' + msg + '">' + $.t('Unreadable_OTR_message') + '</i>';
|
||||
}
|
||||
|
||||
var msgDiv = $("<div>"),
|
||||
msgTsDiv = $("<div>");
|
||||
msgDiv.addClass('jsxc_chatmessage jsxc_' + direction);
|
||||
@@ -2664,16 +2702,31 @@ jsxc.gui.window = {
|
||||
|
||||
if (message.isReceived() || false) {
|
||||
msgDiv.addClass('jsxc_received');
|
||||
} else {
|
||||
msgDiv.removeClass('jsxc_received');
|
||||
}
|
||||
|
||||
if (message.forwarded) {
|
||||
msgDiv.addClass('jsxc_forwarded');
|
||||
} else {
|
||||
msgDiv.removeClass('jsxc_forwarded');
|
||||
}
|
||||
|
||||
if (message.encrypted) {
|
||||
msgDiv.addClass('jsxc_encrypted');
|
||||
} else {
|
||||
msgDiv.removeClass('jsxc_encrypted');
|
||||
}
|
||||
|
||||
if (message.error) {
|
||||
msgDiv.addClass('jsxc_error');
|
||||
} else {
|
||||
msgDiv.removeClass('jsxc_error');
|
||||
}
|
||||
|
||||
msgDiv.attr('title', message.error);
|
||||
msgDiv.attr('data-error-msg', message.error);
|
||||
|
||||
if (message.attachment && message.attachment.name) {
|
||||
var attachment = $('<div>');
|
||||
attachment.addClass('jsxc_attachment');
|
||||
@@ -2698,6 +2751,10 @@ jsxc.gui.window = {
|
||||
attachment = $('<a>').append(attachment);
|
||||
attachment.attr('href', message.attachment.data);
|
||||
attachment.attr('download', message.attachment.name);
|
||||
|
||||
if (message.attachment.data === message.msg) {
|
||||
msgDiv.find('div').first().empty();
|
||||
}
|
||||
}
|
||||
|
||||
msgDiv.find('div').first().append(attachment);
|
||||
@@ -2713,8 +2770,12 @@ jsxc.gui.window = {
|
||||
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(msg);
|
||||
}
|
||||
|
||||
if (jsxc.Message.getDOM(uid).length > 0) {
|
||||
jsxc.Message.getDOM(uid).replaceWith(msgDiv);
|
||||
var currentMessageElement = jsxc.Message.getDOM(uid);
|
||||
if (currentMessageElement.length > 0) {
|
||||
if (currentMessageElement.attr('data-queryId')) {
|
||||
msgDiv.attr('data-queryId', currentMessageElement.attr('data-queryId'));
|
||||
}
|
||||
currentMessageElement.replaceWith(msgDiv);
|
||||
} else {
|
||||
win.find('.jsxc_textarea').append(msgDiv);
|
||||
}
|
||||
@@ -2728,7 +2789,7 @@ jsxc.gui.window = {
|
||||
msgDiv.attr('data-bid', jsxc.jidToBid(message.sender.jid));
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', jsxc.jidToBid(message.sender.jid)) || {};
|
||||
jsxc.gui.updateAvatar(msgDiv, jsxc.jidToBid(message.sender.jid), data.avatar);
|
||||
jsxc.gui.avatar.update(msgDiv, jsxc.jidToBid(message.sender.jid), data.avatar);
|
||||
|
||||
title = jsxc.jidToBid(message.sender.jid);
|
||||
}
|
||||
@@ -2759,7 +2820,9 @@ jsxc.gui.window = {
|
||||
jsxc.gui.detectUriScheme(win);
|
||||
jsxc.gui.detectEmail(win);
|
||||
|
||||
jsxc.gui.window.scrollDown(bid);
|
||||
if (!message.forwarded) {
|
||||
jsxc.gui.window.scrollDown(bid);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2827,10 +2890,16 @@ jsxc.gui.window = {
|
||||
|
||||
jsxc.storage.setUserItem('history', bid, []);
|
||||
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
delete buddyData.lastArchiveUid;
|
||||
delete buddyData.archiveExhausted;
|
||||
jsxc.storage.setUserItem('buddy', bid, buddyData);
|
||||
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
if (win.length > 0) {
|
||||
win.find('.jsxc_textarea').empty();
|
||||
win.find('.jsxc_textarea').scroll();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2862,8 +2931,6 @@ jsxc.gui.window = {
|
||||
|
||||
if (sent === size) {
|
||||
span.remove();
|
||||
|
||||
message.received();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2964,99 +3031,7 @@ jsxc.gui.window = {
|
||||
},
|
||||
|
||||
sendFile: function(jid) {
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
var res = Strophe.getResourceFromJid(jid);
|
||||
|
||||
if (!res) {
|
||||
jid = win.data('jid');
|
||||
res = Strophe.getResourceFromJid(jid);
|
||||
|
||||
var fileCapableRes = jsxc.webrtc.getCapableRes(jid, jsxc.webrtc.reqFileFeatures);
|
||||
var resources = Object.keys(jsxc.storage.getUserItem('res', bid)) || [];
|
||||
|
||||
if (res === null && resources.length === 1 && fileCapableRes.length === 1) {
|
||||
res = fileCapableRes[0];
|
||||
jid = bid + '/' + res;
|
||||
} else if (fileCapableRes.indexOf(res) < 0) {
|
||||
jsxc.gui.window.selectResource(bid, $.t('Your_contact_uses_multiple_clients_'), function(data) {
|
||||
if (data.status === 'unavailable') {
|
||||
jsxc.gui.window.hideOverlay(bid);
|
||||
} else if (data.status === 'selected') {
|
||||
jsxc.gui.window.sendFile(bid + '/' + data.result);
|
||||
}
|
||||
}, fileCapableRes);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var msg = $('<div><div><label><input type="file" name="files" /><label></div></div>');
|
||||
msg.addClass('jsxc_chatmessage');
|
||||
|
||||
jsxc.gui.window.showOverlay(bid, msg, true);
|
||||
|
||||
msg.find('label').click();
|
||||
|
||||
msg.find('[type="file"]').change(function(ev) {
|
||||
var file = ev.target.files[0]; // FileList object
|
||||
|
||||
if (!file) {
|
||||
return;
|
||||
}
|
||||
|
||||
var attachment = $('<div>');
|
||||
attachment.addClass('jsxc_attachment');
|
||||
attachment.addClass('jsxc_' + file.type.replace(/\//, '-'));
|
||||
attachment.addClass('jsxc_' + file.type.replace(/^([^/]+)\/.*/, '$1'));
|
||||
|
||||
msg.empty().append(attachment);
|
||||
|
||||
if (FileReader && file.type.match(/^image\//)) {
|
||||
var img = $('<img alt="preview">').attr('title', file.name);
|
||||
img.attr('src', jsxc.options.get('root') + '/img/loading.gif');
|
||||
img.appendTo(attachment);
|
||||
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = function() {
|
||||
img.attr('src', reader.result);
|
||||
};
|
||||
|
||||
reader.readAsDataURL(file);
|
||||
} else {
|
||||
attachment.text(file.name + ' (' + file.size + ' byte)');
|
||||
}
|
||||
|
||||
$('<button>').addClass('jsxc_btn jsxc_btn-primary').text($.t('Send')).click(function() {
|
||||
var sess = jsxc.webrtc.sendFile(jid, file);
|
||||
|
||||
jsxc.gui.window.hideOverlay(bid);
|
||||
|
||||
var message = jsxc.gui.window.postMessage({
|
||||
_uid: sess.sid + ':msg',
|
||||
bid: bid,
|
||||
direction: 'out',
|
||||
attachment: {
|
||||
name: file.name,
|
||||
size: file.size,
|
||||
type: file.type,
|
||||
data: (file.type.match(/^image\//)) ? img.attr('src') : null
|
||||
}
|
||||
});
|
||||
|
||||
sess.sender.on('progress', function(sent, size) {
|
||||
jsxc.gui.window.updateProgress(message, sent, size);
|
||||
});
|
||||
|
||||
msg.remove();
|
||||
|
||||
}).appendTo(msg);
|
||||
|
||||
$('<button>').addClass('jsxc_btn jsxc_btn-default').text($.t('Abort')).click(function() {
|
||||
jsxc.gui.window.hideOverlay(bid);
|
||||
}).appendTo(msg);
|
||||
});
|
||||
jsxc.fileTransfer.startGuiAction(jid);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3090,7 +3065,7 @@ jsxc.gui.template.get = function(name, bid, msg) {
|
||||
$.extend(ph, {
|
||||
bid_priv_fingerprint: (data && data.fingerprint) ? data.fingerprint.replace(/(.{8})/g, '$1 ') : $.t('not_available'),
|
||||
bid_jid: bid,
|
||||
bid_name: (data && data.name) ? data.name : bid
|
||||
bid_name: (data && data.name) ? jsxc.escapeHTML(data.name) : bid
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3107,7 +3082,8 @@ jsxc.gui.template.get = function(name, bid, msg) {
|
||||
// prevent 404
|
||||
ret = ret.replace(/\{\{root\}\}/g, ph.root);
|
||||
|
||||
ret = $(ret);
|
||||
// encapsulate template to find all desired elements in the next step
|
||||
ret = $('<div>' + ret + '</div>');
|
||||
|
||||
ret.find('[data-var]').each(function() {
|
||||
var key = $(this).attr('data-var');
|
||||
@@ -3120,7 +3096,10 @@ jsxc.gui.template.get = function(name, bid, msg) {
|
||||
}
|
||||
});
|
||||
|
||||
ret.i18n();
|
||||
// remove encapsulation
|
||||
ret = ret.find('>*');
|
||||
|
||||
ret.localize(ph);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -3138,13 +3117,13 @@ jsxc.gui.template.get = function(name, bid, msg) {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+82
-27
@@ -56,9 +56,6 @@ jsxc = {
|
||||
/** Interval for keep-alive */
|
||||
keepaliveInterval: null,
|
||||
|
||||
/** True if jid, sid and rid was used to connect */
|
||||
reconnect: false,
|
||||
|
||||
/** True if restore is complete */
|
||||
restoreCompleted: false,
|
||||
|
||||
@@ -86,6 +83,12 @@ jsxc = {
|
||||
/** My bar id */
|
||||
bid: null,
|
||||
|
||||
/** Current state */
|
||||
currentState: null,
|
||||
|
||||
/** Current UI state */
|
||||
currentUIState: null,
|
||||
|
||||
/** Some constants */
|
||||
CONST: {
|
||||
NOTIFICATION_DEFAULT: 'default',
|
||||
@@ -103,10 +106,24 @@ jsxc = {
|
||||
},
|
||||
NS: {
|
||||
CARBONS: 'urn:xmpp:carbons:2',
|
||||
FORWARD: 'urn:xmpp:forward:0'
|
||||
FORWARD: 'urn:xmpp:forward:0',
|
||||
HINTS: 'urn:xmpp:hints'
|
||||
},
|
||||
HIDDEN: 'hidden',
|
||||
SHOWN: 'shown'
|
||||
SHOWN: 'shown',
|
||||
STATE: {
|
||||
INITIATING: 0,
|
||||
PREVCONFOUND: 1,
|
||||
SUSPEND: 2,
|
||||
TRYTOINTERCEPT: 3,
|
||||
INTERCEPTED: 4,
|
||||
ESTABLISHING: 5,
|
||||
READY: 6
|
||||
},
|
||||
UISTATE: {
|
||||
INITIATING: 0,
|
||||
READY: 1
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -218,6 +235,7 @@ jsxc = {
|
||||
* @param {object} options See {@link jsxc.options}
|
||||
*/
|
||||
init: function(options) {
|
||||
jsxc.changeState(jsxc.CONST.STATE.INITIATING);
|
||||
|
||||
if (options && options.loginForm && typeof options.loginForm.attachIfFound === 'boolean' && !options.loginForm.ifFound) {
|
||||
// translate deprated option attachIfFound found to new ifFound
|
||||
@@ -230,8 +248,8 @@ jsxc = {
|
||||
}
|
||||
|
||||
// Check localStorage
|
||||
if (typeof(localStorage) === 'undefined') {
|
||||
jsxc.warn("Browser doesn't support localStorage.");
|
||||
if (!jsxc.storage.hasSupport()) {
|
||||
jsxc.error("Browser doesn't support localStorage. JSXC will be disabled.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -278,15 +296,22 @@ jsxc = {
|
||||
lang = jsxc.options.defaultLang;
|
||||
}
|
||||
|
||||
// initialize i18n translator
|
||||
$.i18n.init({
|
||||
// initialize i18next translator
|
||||
window.i18next.init({
|
||||
lng: lang,
|
||||
fallbackLng: 'en',
|
||||
resStore: I18next,
|
||||
// use localStorage and set expiration to a day
|
||||
useLocalStorage: true,
|
||||
localStorageExpirationTime: 60 * 60 * 24 * 1000,
|
||||
debug: jsxc.storage.getItem('debug') === true
|
||||
resources: I18next,
|
||||
debug: jsxc.storage.getItem('debug') === true,
|
||||
interpolation: {
|
||||
prefix: '__',
|
||||
suffix: '__'
|
||||
}
|
||||
}, function() {
|
||||
window.jqueryI18next.init(window.i18next, $, {
|
||||
tName: 't',
|
||||
i18nName: 'i18next',
|
||||
handleName: 'localize',
|
||||
});
|
||||
});
|
||||
|
||||
if (jsxc.storage.getItem('debug') === true) {
|
||||
@@ -311,6 +336,7 @@ jsxc = {
|
||||
|
||||
// Looking for a login form
|
||||
if (!jsxc.isLoginForm()) {
|
||||
jsxc.changeState(jsxc.CONST.STATE.SUSPEND);
|
||||
|
||||
if (jsxc.options.displayRosterMinimized()) {
|
||||
// Show minimized roster
|
||||
@@ -322,6 +348,8 @@ jsxc = {
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.changeState(jsxc.CONST.STATE.TRYTOINTERCEPT);
|
||||
|
||||
if (typeof jsxc.options.formFound === 'function') {
|
||||
jsxc.options.formFound.call();
|
||||
}
|
||||
@@ -343,7 +371,9 @@ jsxc = {
|
||||
form.off('submit');
|
||||
|
||||
// Add jsxc login action to form
|
||||
form.submit(function() {
|
||||
form.submit(function(ev) {
|
||||
ev.preventDefault();
|
||||
|
||||
jsxc.prepareLogin(function(settings) {
|
||||
if (settings !== false) {
|
||||
// settings.xmpp.onlogin is deprecated since v2.1.0
|
||||
@@ -354,19 +384,24 @@ jsxc = {
|
||||
jsxc.options.loginForm.triggered = true;
|
||||
|
||||
jsxc.xmpp.login(jsxc.options.xmpp.jid, jsxc.options.xmpp.password);
|
||||
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
jsxc.submitLoginForm();
|
||||
}
|
||||
|
||||
jsxc.submitLoginForm();
|
||||
});
|
||||
|
||||
// Trigger submit in jsxc.xmpp.connected()
|
||||
return false;
|
||||
});
|
||||
|
||||
jsxc.changeState(jsxc.CONST.STATE.INTERCEPTED);
|
||||
|
||||
} else if (!jsxc.isLoginForm() || (jsxc.options.loginForm && jsxc.options.loginForm.ifFound === 'attach')) {
|
||||
|
||||
// Restore old connection
|
||||
jsxc.changeState(jsxc.CONST.STATE.PREVCONFOUND);
|
||||
|
||||
if (typeof jsxc.storage.getItem('alive') === 'undefined') {
|
||||
jsxc.onMaster();
|
||||
@@ -522,6 +557,10 @@ jsxc = {
|
||||
username = settings.xmpp.username;
|
||||
}
|
||||
|
||||
if (typeof settings.xmpp.password === 'string') {
|
||||
password = settings.xmpp.password;
|
||||
}
|
||||
|
||||
var resource = (settings.xmpp.resource) ? '/' + settings.xmpp.resource : '';
|
||||
var domain = settings.xmpp.domain;
|
||||
var jid;
|
||||
@@ -574,14 +613,10 @@ jsxc = {
|
||||
jsxc.gui.init();
|
||||
$('#jsxc_roster').removeClass('jsxc_noConnection');
|
||||
|
||||
jsxc.restoreRoster();
|
||||
jsxc.restoreWindows();
|
||||
jsxc.restoreCompleted = true;
|
||||
|
||||
jsxc.registerLogout();
|
||||
jsxc.gui.updateAvatar($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
jsxc.gui.avatar.update($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
|
||||
$(document).trigger('restoreCompleted.jsxc');
|
||||
jsxc.gui.restore();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -647,7 +682,7 @@ jsxc = {
|
||||
jsxc.otr.createDSA();
|
||||
}
|
||||
|
||||
jsxc.gui.updateAvatar($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
jsxc.gui.avatar.update($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -795,8 +830,12 @@ jsxc = {
|
||||
|
||||
if (form.find('#submit').length > 0) {
|
||||
form.find('#submit').click();
|
||||
} else {
|
||||
} else if (form.get(0) && typeof form.get(0).submit === 'function') {
|
||||
form.submit();
|
||||
} else if (form.find('[type="submit"]').length > 0) {
|
||||
form.find('[type="submit"]').click();
|
||||
} else {
|
||||
jsxc.warn('Could not submit login form.');
|
||||
}
|
||||
},
|
||||
|
||||
@@ -936,6 +975,22 @@ jsxc = {
|
||||
|
||||
isExtraSmallDevice: function() {
|
||||
return $(window).width() < 500;
|
||||
},
|
||||
|
||||
changeState: function(state) {
|
||||
jsxc.currentState = state;
|
||||
|
||||
jsxc.debug('State changed to ' + Object.keys(jsxc.CONST.STATE)[state]);
|
||||
|
||||
$(document).trigger('stateChange.jsxc', state);
|
||||
},
|
||||
|
||||
changeUIState: function(state) {
|
||||
jsxc.currentUIState = state;
|
||||
|
||||
jsxc.debug('UI State changed to ' + Object.keys(jsxc.CONST.UISTATE)[state]);
|
||||
|
||||
$(document).trigger('stateUIChange.jsxc', state);
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
@@ -948,13 +1003,13 @@ jsxc = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+115
-106
@@ -117,11 +117,14 @@ jsxc.muc = {
|
||||
$(document).one('ready.roster.jsxc', jsxc.muc.initMenu);
|
||||
}
|
||||
|
||||
// remove maybe previously attached handlers
|
||||
$(document).off('presence.jsxc', jsxc.muc.onPresence);
|
||||
$(document).off('error.presence.jsxc', jsxc.muc.onPresenceError);
|
||||
|
||||
$(document).on('presence.jsxc', jsxc.muc.onPresence);
|
||||
$(document).on('error.presence.jsxc', jsxc.muc.onPresenceError);
|
||||
|
||||
self.conn.addHandler(self.onGroupchatMessage, null, 'message', 'groupchat');
|
||||
self.conn.addHandler(self.onErrorMessage, null, 'message', 'error');
|
||||
self.conn.muc.roomNames = jsxc.storage.getUserItem('roomNames') || [];
|
||||
},
|
||||
|
||||
@@ -135,7 +138,9 @@ jsxc.muc = {
|
||||
|
||||
li.click(jsxc.muc.showJoinChat);
|
||||
|
||||
$('#jsxc_menu ul .jsxc_about').before(li);
|
||||
if ($('#jsxc_menu .jsxc_joinChat').length === 0) {
|
||||
$('#jsxc_menu ul .jsxc_about').before(li);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -149,6 +154,8 @@ jsxc.muc = {
|
||||
var self = jsxc.muc;
|
||||
var dialog = jsxc.gui.dialog.open(jsxc.gui.template.get('joinChat'));
|
||||
|
||||
// @TODO split this monster function apart
|
||||
|
||||
// hide second step button
|
||||
dialog.find('.jsxc_join').hide();
|
||||
|
||||
@@ -163,7 +170,27 @@ jsxc.muc = {
|
||||
}
|
||||
|
||||
// display conference server
|
||||
var serverInputTimeout;
|
||||
dialog.find('#jsxc_server').val(jsxc.options.get('muc').server);
|
||||
dialog.find('#jsxc_server').on('input', function() {
|
||||
var self = $(this);
|
||||
|
||||
if (serverInputTimeout) {
|
||||
clearTimeout(serverInputTimeout);
|
||||
dialog.find('.jsxc_inputinfo.jsxc_room').hide();
|
||||
}
|
||||
|
||||
dialog.find('.jsxc_inputinfo.jsxc_server').hide().text('');
|
||||
dialog.find('#jsxc_server').removeClass('jsxc_invalid');
|
||||
|
||||
if (self.val() && self.val().match(/^[.-0-9a-zA-Z]+$/i)) {
|
||||
dialog.find('.jsxc_inputinfo.jsxc_room').show().addClass('jsxc_waiting');
|
||||
|
||||
serverInputTimeout = setTimeout(function() {
|
||||
loadRoomList(self.val());
|
||||
}, 1800);
|
||||
}
|
||||
}).trigger('input');
|
||||
|
||||
// handle error response
|
||||
var error_handler = function(event, condition, room) {
|
||||
@@ -211,7 +238,7 @@ jsxc.muc = {
|
||||
delete self.conn.muc.rooms[room];
|
||||
}
|
||||
|
||||
dialog.find('.jsxc_warning').text(msg);
|
||||
$('<p>').addClass('jsxc_warning').text(msg).appendTo(dialog.find('.jsxc_msg'));
|
||||
};
|
||||
|
||||
$(document).on('error.muc.jsxc', error_handler);
|
||||
@@ -220,42 +247,6 @@ jsxc.muc = {
|
||||
$(document).off('error.muc.jsxc', error_handler);
|
||||
});
|
||||
|
||||
// load room list
|
||||
self.conn.muc.listRooms(jsxc.options.get('muc').server, function(stanza) {
|
||||
// workaround: chrome does not display dropdown arrow for dynamically filled datalists
|
||||
$('#jsxc_roomlist option:last').remove();
|
||||
|
||||
$(stanza).find('item').each(function() {
|
||||
var r = $('<option>');
|
||||
var rjid = $(this).attr('jid').toLowerCase();
|
||||
var rnode = Strophe.getNodeFromJid(rjid);
|
||||
var rname = $(this).attr('name') || rnode;
|
||||
|
||||
r.text(rname);
|
||||
r.attr('data-jid', rjid);
|
||||
r.attr('value', rnode);
|
||||
|
||||
$('#jsxc_roomlist select').append(r);
|
||||
});
|
||||
|
||||
var set = $(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');
|
||||
|
||||
if (set.length > 0) {
|
||||
var count = set.find('count').text() || '?';
|
||||
|
||||
dialog.find('.jsxc_inputinfo').removeClass('jsxc_waiting').text($.t('Could_load_only', {
|
||||
count: count
|
||||
}));
|
||||
} else {
|
||||
dialog.find('.jsxc_inputinfo').hide();
|
||||
}
|
||||
}, function() {
|
||||
jsxc.warn('Could not load rooms');
|
||||
|
||||
// room autocompletion is a comfort feature, so it is not necessary to inform the user
|
||||
dialog.find('.jsxc_inputinfo').hide();
|
||||
});
|
||||
|
||||
dialog.find('#jsxc_nickname').attr('placeholder', Strophe.getNodeFromJid(self.conn.jid));
|
||||
|
||||
dialog.find('#jsxc_bookmark').change(function() {
|
||||
@@ -273,7 +264,7 @@ jsxc.muc = {
|
||||
|
||||
var room = ($('#jsxc_room').val()) ? jsxc.jidToBid($('#jsxc_room').val()) : null;
|
||||
var nickname = $('#jsxc_nickname').val() || Strophe.getNodeFromJid(self.conn.jid);
|
||||
var password = $('#jsxc_password').val() || null;
|
||||
var server = dialog.find('#jsxc_server').val();
|
||||
|
||||
if (!room || !room.match(/^[^"&\'\/:<>@\s]+$/i)) {
|
||||
$('#jsxc_room').addClass('jsxc_invalid').keyup(function() {
|
||||
@@ -284,8 +275,12 @@ jsxc.muc = {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (dialog.find('#jsxc_server').hasClass('jsxc_invalid')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!room.match(/@(.*)$/)) {
|
||||
room += '@' + jsxc.options.get('muc').server;
|
||||
room += '@' + server;
|
||||
}
|
||||
|
||||
if (jsxc.xmpp.conn.muc.roomNames.indexOf(room) < 0) {
|
||||
@@ -307,6 +302,7 @@ jsxc.muc = {
|
||||
|
||||
var bookmark = $("#jsxc_bookmark").prop("checked");
|
||||
var autojoin = $('#jsxc_autojoin').prop('checked');
|
||||
var password = $('#jsxc_password').val() || null;
|
||||
|
||||
// clean up
|
||||
jsxc.gui.window.clear(room);
|
||||
@@ -329,12 +325,18 @@ jsxc.muc = {
|
||||
$(stanza).find('feature').each(function() {
|
||||
var feature = $(this).attr('var');
|
||||
|
||||
if (feature !== '' && i18n.exists(feature)) {
|
||||
if (feature !== '' && i18next.exists(feature)) {
|
||||
var tr = $('<tr>');
|
||||
$('<td>').text($.t(feature + '.keyword')).appendTo(tr);
|
||||
$('<td>').text($.t(feature + '.description')).appendTo(tr);
|
||||
tr.appendTo(table);
|
||||
}
|
||||
|
||||
if (feature === 'muc_passwordprotected') {
|
||||
dialog.find('#jsxc_password').parents('.form-group').removeClass('jsxc_hidden');
|
||||
dialog.find('#jsxc_password').attr('required', 'required');
|
||||
dialog.find('#jsxc_password').addClass('jsxc_invalid');
|
||||
}
|
||||
});
|
||||
|
||||
dialog.find('.jsxc_msg').append(table);
|
||||
@@ -352,7 +354,7 @@ jsxc.muc = {
|
||||
discoReceived();
|
||||
});
|
||||
} else {
|
||||
dialog.find('.jsxc_warning').text($.t('You_already_joined_this_room'));
|
||||
$('<p>').addClass('jsxc_warning').text($.t('You_already_joined_this_room')).appendTo(dialog.find('.jsxc_msg'));
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -363,12 +365,15 @@ jsxc.muc = {
|
||||
if (ev.which !== 13) {
|
||||
// reset messages and room information
|
||||
|
||||
dialog.find('.jsxc_warning').empty();
|
||||
dialog.find('.jsxc_warning').remove();
|
||||
|
||||
if (dialog.find('.jsxc_continue').is(":hidden")) {
|
||||
if (dialog.find('.jsxc_continue').is(":hidden") && $(this).attr('id') !== 'jsxc_password') {
|
||||
dialog.find('.jsxc_continue').show();
|
||||
dialog.find('.jsxc_join').hide().off('click');
|
||||
dialog.find('.jsxc_msg').empty();
|
||||
dialog.find('#jsxc_password').parents('.form-group').addClass('jsxc_hidden');
|
||||
dialog.find('#jsxc_password').attr('required', '');
|
||||
dialog.find('#jsxc_password').removeClass('jsxc_invalid');
|
||||
jsxc.gui.dialog.resize();
|
||||
}
|
||||
|
||||
@@ -381,6 +386,58 @@ jsxc.muc = {
|
||||
dialog.find('.jsxc_join').click();
|
||||
}
|
||||
});
|
||||
|
||||
function loadRoomList(server) {
|
||||
if (!server) {
|
||||
dialog.find('.jsxc_inputinfo').hide();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// load room list
|
||||
self.conn.muc.listRooms(server, function(stanza) {
|
||||
// workaround: chrome does not display dropdown arrow for dynamically filled datalists
|
||||
$('#jsxc_roomlist option:last').remove();
|
||||
|
||||
$(stanza).find('item').each(function() {
|
||||
var r = $('<option>');
|
||||
var rjid = $(this).attr('jid').toLowerCase();
|
||||
var rnode = Strophe.getNodeFromJid(rjid);
|
||||
var rname = $(this).attr('name') || rnode;
|
||||
|
||||
r.text(rname);
|
||||
r.attr('data-jid', rjid);
|
||||
r.attr('value', rnode);
|
||||
|
||||
$('#jsxc_roomlist select').append(r);
|
||||
});
|
||||
|
||||
var set = $(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');
|
||||
|
||||
if (set.length > 0) {
|
||||
var count = set.find('count').text() || '?';
|
||||
|
||||
dialog.find('.jsxc_inputinfo').show().removeClass('jsxc_waiting').text($.t('Could_load_only', {
|
||||
count: count
|
||||
}));
|
||||
} else {
|
||||
dialog.find('.jsxc_inputinfo').hide();
|
||||
}
|
||||
}, function(stanza) {
|
||||
var errTextMsg = $(stanza).find('error text').text() || null;
|
||||
jsxc.warn('Could not load rooms', errTextMsg);
|
||||
|
||||
if (errTextMsg) {
|
||||
dialog.find('.jsxc_inputinfo.jsxc_server').show().text(errTextMsg);
|
||||
}
|
||||
|
||||
if ($(stanza).find('error remote-server-not-found')) {
|
||||
dialog.find('#jsxc_server').addClass('jsxc_invalid');
|
||||
}
|
||||
|
||||
dialog.find('.jsxc_inputinfo.jsxc_room').hide();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -419,8 +476,8 @@ jsxc.muc = {
|
||||
var form = dialog.find('form');
|
||||
|
||||
// work around Strophe.x behaviour
|
||||
form.find('[type="checkbox"]').change(function(){
|
||||
$(this).val(this.checked ? 1 : 0);
|
||||
form.find('[type="checkbox"]').change(function() {
|
||||
$(this).val(this.checked ? 1 : 0);
|
||||
});
|
||||
|
||||
var submit = $('<button>');
|
||||
@@ -796,7 +853,6 @@ jsxc.muc = {
|
||||
var nickname = Strophe.unescapeNode(res);
|
||||
var own = jsxc.storage.getUserItem('ownNicknames') || {};
|
||||
var member = jsxc.storage.getUserItem('member', room) || {};
|
||||
var openWindow = false;
|
||||
var codes = [];
|
||||
|
||||
xdata.find('status').each(function() {
|
||||
@@ -810,6 +866,9 @@ jsxc.muc = {
|
||||
if (roomdata.state === self.CONST.ROOMSTATE.INIT) {
|
||||
// successfully joined
|
||||
|
||||
roomdata.status = jsxc.CONST.STATUS.indexOf('online');
|
||||
jsxc.storage.setUserItem('buddy', room, roomdata);
|
||||
|
||||
jsxc.storage.setUserItem('roomNames', jsxc.xmpp.conn.muc.roomNames);
|
||||
|
||||
if (jsxc.gui.roster.getItem(room).length === 0) {
|
||||
@@ -822,8 +881,9 @@ jsxc.muc = {
|
||||
|
||||
if ($('#jsxc_dialog').length > 0) {
|
||||
// User joined the room manually
|
||||
openWindow = true;
|
||||
jsxc.gui.dialog.close();
|
||||
|
||||
jsxc.gui.window.open(room);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -914,11 +974,6 @@ jsxc.muc = {
|
||||
$(document).trigger('status.muc.jsxc', [code, room, nickname, member[nickname] || {}, presence]);
|
||||
});
|
||||
|
||||
if (openWindow) {
|
||||
// we wait until all parameters are set up correctly (e.g. state)
|
||||
jsxc.gui.window.open(room);
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
@@ -1214,15 +1269,14 @@ jsxc.muc = {
|
||||
|
||||
if (typeof jid === 'string') {
|
||||
m.find('.jsxc_name').text(jsxc.jidToBid(jid));
|
||||
m.attr('data-bid', jsxc.jidToBid(jid));
|
||||
title = title + '\n' + jsxc.jidToBid(jid);
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', jsxc.jidToBid(jid));
|
||||
|
||||
if (data !== null && typeof data === 'object') {
|
||||
jsxc.gui.updateAvatar(m, jsxc.jidToBid(jid), data.avatar);
|
||||
jsxc.gui.avatar.update(m, jsxc.jidToBid(jid), data.avatar);
|
||||
} else if (jsxc.jidToBid(jid) === ownBid) {
|
||||
jsxc.gui.updateAvatar(m, jsxc.jidToBid(jid), 'own');
|
||||
jsxc.gui.avatar.update(m, jsxc.jidToBid(jid), 'own');
|
||||
}
|
||||
} else {
|
||||
m.find('.jsxc_name').text(nickname);
|
||||
@@ -1362,51 +1416,6 @@ jsxc.muc = {
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle group chat error message.
|
||||
*
|
||||
* @private
|
||||
* @memberOf jsxc.muc
|
||||
* @param {string} message Message stanza
|
||||
*/
|
||||
onErrorMessage: function(message) {
|
||||
var room = jsxc.jidToBid($(message).attr('from'));
|
||||
|
||||
if (jsxc.gui.window.get(room).length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($(message).find('item-not-found').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_item-not-found')
|
||||
});
|
||||
} else if ($(message).find('forbidden').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_forbidden')
|
||||
});
|
||||
} else if ($(message).find('not-acceptable').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_not-acceptable')
|
||||
});
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send')
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.debug('[muc] error message for ' + room, $(message).find('error')[0]);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Prepare group chat roster item.
|
||||
*
|
||||
@@ -1546,7 +1555,7 @@ jsxc.muc = {
|
||||
}
|
||||
o = $(opt.toHTML());
|
||||
|
||||
for (j = 0; j < self.values; j++) {
|
||||
for (j = 0; j < self.values.length; j++) {
|
||||
k = self.values[j];
|
||||
if (k.toString() === opt.value.toString()) {
|
||||
o.attr('selected', 'selected');
|
||||
@@ -1638,7 +1647,7 @@ jsxc.muc = {
|
||||
$(document).on('init.window.jsxc', jsxc.muc.initWindow);
|
||||
$(document).on('add.roster.jsxc', jsxc.muc.onAddRoster);
|
||||
|
||||
$(document).one('attached.jsxc', function() {
|
||||
$(document).on('attached.jsxc', function() {
|
||||
jsxc.muc.init();
|
||||
});
|
||||
|
||||
@@ -1656,13 +1665,13 @@ $(document).one('connected.jsxc', function() {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* This namespace handle the notice system.
|
||||
*
|
||||
*
|
||||
* @namspace jsxc.notice
|
||||
* @memberOf jsxc
|
||||
*/
|
||||
@@ -38,7 +38,7 @@ jsxc.notice = {
|
||||
|
||||
/**
|
||||
* Loads the saved notices.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
*/
|
||||
load: function() {
|
||||
@@ -54,25 +54,28 @@ jsxc.notice = {
|
||||
if (saved.hasOwnProperty(key)) {
|
||||
var val = saved[key];
|
||||
|
||||
jsxc.notice.add(val.msg, val.description, val.fnName, val.fnParams, key);
|
||||
jsxc.notice.add(val, val.fnName, val.fnParams, key);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a new notice to the stack;
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param msg Header message
|
||||
* @param description Notice description
|
||||
* @param fnName Function name to be called if you open the notice
|
||||
* @param {Object} data
|
||||
* @param {String} data.msg Header message
|
||||
* @param {String} data.description Notice description
|
||||
* @param {String} fnName Function name to be called if you open the notice
|
||||
* @param fnParams Array of params for function
|
||||
* @param id Notice id
|
||||
* @param {String} id Notice id
|
||||
*/
|
||||
add: function(msg, description, fnName, fnParams, id) {
|
||||
add: function(data, fnName, fnParams, id) {
|
||||
var nid = id || Date.now();
|
||||
var list = $('#jsxc_notice ul');
|
||||
var notice = $('<li/>');
|
||||
var msg = data.msg;
|
||||
var description = data.description;
|
||||
|
||||
notice.click(function() {
|
||||
jsxc.notice.remove(nid);
|
||||
@@ -82,6 +85,10 @@ jsxc.notice = {
|
||||
return false;
|
||||
});
|
||||
|
||||
if (data.type) {
|
||||
notice.addClass('jsxc_' + data.type + 'icon');
|
||||
}
|
||||
|
||||
notice.text(msg);
|
||||
notice.attr('title', description || '');
|
||||
notice.attr('data-nid', nid);
|
||||
@@ -89,11 +96,13 @@ jsxc.notice = {
|
||||
|
||||
$('#jsxc_notice > span').text(++jsxc.notice._num);
|
||||
|
||||
var saved = jsxc.storage.getUserItem('notices') || {};
|
||||
|
||||
if (!id) {
|
||||
var saved = jsxc.storage.getUserItem('notices') || {};
|
||||
saved[nid] = {
|
||||
msg: msg,
|
||||
description: description,
|
||||
type: data.type,
|
||||
fnName: fnName,
|
||||
fnParams: fnParams
|
||||
};
|
||||
@@ -101,11 +110,23 @@ jsxc.notice = {
|
||||
|
||||
jsxc.notification.notify(msg, description || '', null, true, jsxc.CONST.SOUNDS.NOTICE);
|
||||
}
|
||||
|
||||
if (Object.keys(saved).length > 3 && list.find('.jsxc_closeAll').length === 0) {
|
||||
// add close all button
|
||||
var closeAll = $('<li>');
|
||||
closeAll.addClass('jsxc_closeAll jsxc_deleteicon jsxc_warning');
|
||||
closeAll.text($.t('Close_all'));
|
||||
closeAll.prependTo(list);
|
||||
closeAll.click(jsxc.notice.removeAll);
|
||||
} else if (Object.keys(saved).length <= 3 && list.find('.jsxc_closeAll').length !== 0) {
|
||||
// remove close all button
|
||||
list.find('.jsxc_closeAll').remove();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes notice from stack
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param nid The notice id
|
||||
*/
|
||||
@@ -115,14 +136,30 @@ jsxc.notice = {
|
||||
el.remove();
|
||||
$('#jsxc_notice > span').text(--jsxc.notice._num || '');
|
||||
|
||||
var s = jsxc.storage.getUserItem('notices');
|
||||
var s = jsxc.storage.getUserItem('notices') || {};
|
||||
delete s[nid];
|
||||
jsxc.storage.setUserItem('notices', s);
|
||||
|
||||
if (Object.keys(s).length <= 3 && $('#jsxc_notice .jsxc_closeAll').length !== 0) {
|
||||
// remove close all button
|
||||
$('#jsxc_notice .jsxc_closeAll').remove();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Remove all notices.
|
||||
*/
|
||||
removeAll: function() {
|
||||
jsxc.notice._num = 0;
|
||||
jsxc.storage.setUserItem('notices', {});
|
||||
|
||||
$('#jsxc_notice ul').empty();
|
||||
$('#jsxc_notice > span').text('');
|
||||
},
|
||||
|
||||
/**
|
||||
* Check if there is already a notice for the given function name.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notice
|
||||
* @param {string} fnName Function name
|
||||
* @returns {boolean} True if there is >0 functions with the given name
|
||||
@@ -152,13 +189,13 @@ jsxc.notice = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* This namespace handles the Notification API.
|
||||
*
|
||||
*
|
||||
* @namespace jsxc.notification
|
||||
*/
|
||||
jsxc.notification = {
|
||||
@@ -38,7 +38,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Register notification on incoming messages.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
*/
|
||||
init: function() {
|
||||
@@ -67,7 +67,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Shows a pop up notification and optional play sound.
|
||||
*
|
||||
*
|
||||
* @param title Title
|
||||
* @param msg Message
|
||||
* @param d Duration
|
||||
@@ -136,7 +136,7 @@ jsxc.notification = {
|
||||
/**
|
||||
* Checks if browser has support for notifications and add on chrome to the
|
||||
* default api.
|
||||
*
|
||||
*
|
||||
* @returns {Boolean} True if the browser has support.
|
||||
*/
|
||||
hasSupport: function() {
|
||||
@@ -191,7 +191,10 @@ jsxc.notification = {
|
||||
|
||||
$(document).one('postmessagein.jsxc', function() {
|
||||
setTimeout(function() {
|
||||
jsxc.notice.add($.t('Notifications') + '?', $.t('Should_we_notify_you_'), 'gui.showRequestNotification');
|
||||
jsxc.notice.add({
|
||||
msg: $.t('Notifications') + '?',
|
||||
description: $.t('Should_we_notify_you_')
|
||||
}, 'gui.showRequestNotification');
|
||||
}, 1000);
|
||||
});
|
||||
},
|
||||
@@ -215,7 +218,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Check permission.
|
||||
*
|
||||
*
|
||||
* @returns {Boolean} True if we have the permission
|
||||
*/
|
||||
hasPermission: function() {
|
||||
@@ -224,7 +227,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Plays the given file.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {string} soundFile File relative to the sound directory
|
||||
* @param {boolean} loop True for loop
|
||||
@@ -258,7 +261,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Stop/remove current sound.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
*/
|
||||
stopSound: function() {
|
||||
@@ -272,7 +275,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Mute sound.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {boolean} external True if triggered from external tab. Default:
|
||||
* false.
|
||||
@@ -287,7 +290,7 @@ jsxc.notification = {
|
||||
|
||||
/**
|
||||
* Unmute sound.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.notification
|
||||
* @param {boolean} external True if triggered from external tab. Default:
|
||||
* false.
|
||||
@@ -310,13 +313,13 @@ jsxc.notification = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* Set some options for the chat.
|
||||
*
|
||||
*
|
||||
* @namespace jsxc.options
|
||||
*/
|
||||
jsxc.options = {
|
||||
@@ -47,7 +47,7 @@ jsxc.options = {
|
||||
enable: true,
|
||||
ERROR_START_AKE: false,
|
||||
debug: false,
|
||||
SEND_WHITESPACE_TAG: true,
|
||||
SEND_WHITESPACE_TAG: false,
|
||||
WHITESPACE_START_AKE: true
|
||||
},
|
||||
|
||||
@@ -88,9 +88,9 @@ jsxc.options = {
|
||||
},
|
||||
|
||||
/**
|
||||
* This function is called if a login form was found, but before any
|
||||
* This function is called if a login form was found, but before any
|
||||
* modification is done to it.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @function
|
||||
*/
|
||||
@@ -116,7 +116,7 @@ jsxc.options = {
|
||||
},
|
||||
|
||||
/**
|
||||
* Action after login was called: dialog [String] Show wait dialog, false [boolean] |
|
||||
* Action after login was called: dialog [String] Show wait dialog, false [boolean] |
|
||||
* quiet [String] Do nothing
|
||||
*/
|
||||
onConnecting: 'dialog',
|
||||
@@ -135,25 +135,25 @@ jsxc.options = {
|
||||
|
||||
/**
|
||||
* True: Attach connection even is login form was found.
|
||||
*
|
||||
*
|
||||
* @type {Boolean}
|
||||
* @deprecated since 3.0.0. Use now loginForm.ifFound (true => attach, false => pause)
|
||||
*/
|
||||
attachIfFound: true,
|
||||
|
||||
/**
|
||||
* Describes what we should do if login form was found:
|
||||
* Describes what we should do if login form was found:
|
||||
* - Attach connection
|
||||
* - Force new connection with loginForm.jid and loginForm.passed
|
||||
* - Pause connection and do nothing
|
||||
*
|
||||
*
|
||||
* @type {(attach|force|pause)}
|
||||
*/
|
||||
ifFound: 'attach',
|
||||
|
||||
/**
|
||||
* True: Display roster minimized after first login. Afterwards the last
|
||||
* roster state will be used.
|
||||
* True: Display roster minimized after first login. Afterwards the last
|
||||
* roster state will be used.
|
||||
*/
|
||||
startMinimized: false
|
||||
},
|
||||
@@ -198,13 +198,11 @@ jsxc.options = {
|
||||
|
||||
/**
|
||||
* If no avatar is found, this function is called.
|
||||
*
|
||||
*
|
||||
* @param jid Jid of that user.
|
||||
* @this {jQuery} Elements to update with probable .jsxc_avatar elements
|
||||
*/
|
||||
defaultAvatar: function(jid) {
|
||||
jsxc.gui.avatarPlaceholder($(this).find('.jsxc_avatar'), jid);
|
||||
},
|
||||
defaultAvatar: null,
|
||||
|
||||
/**
|
||||
* This callback processes all settings.
|
||||
@@ -214,7 +212,7 @@ jsxc.options = {
|
||||
|
||||
/**
|
||||
* Returns permanent saved settings and overwrite default jsxc.options.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @function
|
||||
* @param username {string} username
|
||||
@@ -225,7 +223,7 @@ jsxc.options = {
|
||||
|
||||
/**
|
||||
* Call this function to save user settings permanent.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.options
|
||||
* @param data Holds all data as key/value
|
||||
* @param cb Called with true on success, false otherwise
|
||||
@@ -236,19 +234,19 @@ jsxc.options = {
|
||||
|
||||
carbons: {
|
||||
/** Enable carbon copies? */
|
||||
enable: false
|
||||
enable: true
|
||||
},
|
||||
|
||||
/**
|
||||
* Processes user list.
|
||||
*
|
||||
*
|
||||
* @callback getUsers-cb
|
||||
* @param {object} list List of users, key: username, value: alias
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns a list of usernames and aliases
|
||||
*
|
||||
*
|
||||
* @function getUsers
|
||||
* @memberOf jsxc.options
|
||||
* @param {string} search Search token (start with)
|
||||
@@ -306,7 +304,40 @@ jsxc.options = {
|
||||
}
|
||||
},
|
||||
|
||||
maxStorableSize: 1000000
|
||||
/** Maximal storage size for attachments received via data channels (webrtc). */
|
||||
maxStorableSize: 1000000,
|
||||
|
||||
/** Options for file transfer. */
|
||||
fileTransfer: {
|
||||
httpUpload: {
|
||||
enable: true
|
||||
},
|
||||
// @TODO add option to enable/disable data channels
|
||||
},
|
||||
|
||||
/** Default option for chat state notifications */
|
||||
chatState: {
|
||||
enable: true
|
||||
},
|
||||
|
||||
/**
|
||||
* Download urls to screen media extensions.
|
||||
*
|
||||
* @type {Object}
|
||||
* @see example extensions {@link https://github.com/otalk/getScreenMedia}
|
||||
*/
|
||||
screenMediaExtension: {
|
||||
firefox: '',
|
||||
chrome: ''
|
||||
},
|
||||
|
||||
/**
|
||||
* Options for Message Archive Management (XEP-0313)
|
||||
*/
|
||||
mam: {
|
||||
enable: false,
|
||||
max: null
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
@@ -318,13 +349,13 @@ jsxc.options = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+24
-20
@@ -36,7 +36,7 @@ jsxc.otr = {
|
||||
dsaFallback: null,
|
||||
/**
|
||||
* Handler for otr receive event
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.otr
|
||||
* @param {Object} d
|
||||
* @param {string} d.bid
|
||||
@@ -63,33 +63,35 @@ jsxc.otr = {
|
||||
});
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
_uid: d._uid,
|
||||
bid: bid,
|
||||
direction: jsxc.Message.IN,
|
||||
msg: d.msg,
|
||||
encrypted: d.encrypted,
|
||||
forwarded: d.forwarded,
|
||||
stamp: d.stamp
|
||||
stamp: d.stamp,
|
||||
attachment: d.attachment
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handler for otr send event
|
||||
*
|
||||
*
|
||||
* @param {string} jid
|
||||
* @param {string} msg message to be send
|
||||
*/
|
||||
sendMessage: function(jid, msg, uid) {
|
||||
sendMessage: function(jid, msg, message) {
|
||||
if (jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate !== 0) {
|
||||
jsxc.otr.backup(jsxc.jidToBid(jid));
|
||||
}
|
||||
|
||||
jsxc.xmpp._sendMessage(jid, msg, uid);
|
||||
jsxc.xmpp._sendMessage(jid, msg, message);
|
||||
},
|
||||
|
||||
/**
|
||||
* Create new otr instance
|
||||
*
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
@@ -236,21 +238,23 @@ jsxc.otr = {
|
||||
// Receive message
|
||||
jsxc.otr.objects[bid].on('ui', function(msg, encrypted, meta) {
|
||||
jsxc.otr.receiveMessage({
|
||||
_uid: meta._uid,
|
||||
bid: bid,
|
||||
msg: msg,
|
||||
encrypted: encrypted === true,
|
||||
stamp: meta.stamp,
|
||||
forwarded: meta.forwarded
|
||||
forwarded: meta.forwarded,
|
||||
attachment: meta.attachment
|
||||
});
|
||||
});
|
||||
|
||||
// Send message
|
||||
jsxc.otr.objects[bid].on('io', function(msg, uid) {
|
||||
jsxc.otr.objects[bid].on('io', function(msg, message) {
|
||||
var jid = jsxc.gui.window.get(bid).data('jid') || jsxc.otr.objects[bid].jid;
|
||||
|
||||
jsxc.otr.objects[bid].jid = jid;
|
||||
|
||||
jsxc.otr.sendMessage(jid, msg, uid);
|
||||
jsxc.otr.sendMessage(jid, msg, message);
|
||||
});
|
||||
|
||||
jsxc.otr.objects[bid].on('error', function(err) {
|
||||
@@ -271,7 +275,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* show verification dialog with related part (secret or question)
|
||||
*
|
||||
*
|
||||
* @param {type} bid
|
||||
* @param {string} [data]
|
||||
* @returns {undefined}
|
||||
@@ -303,7 +307,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Send verification request to buddy
|
||||
*
|
||||
*
|
||||
* @param {string} bid
|
||||
* @param {string} sec secret
|
||||
* @param {string} [quest] question
|
||||
@@ -317,7 +321,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Toggle encryption state
|
||||
*
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
@@ -335,7 +339,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Send request to encrypt the session
|
||||
*
|
||||
*
|
||||
* @param {type} bid
|
||||
* @returns {undefined}
|
||||
*/
|
||||
@@ -351,7 +355,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Abort encryptet session
|
||||
*
|
||||
*
|
||||
* @param {type} bid
|
||||
* @param cb callback
|
||||
* @returns {undefined}
|
||||
@@ -371,7 +375,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Backups otr session
|
||||
*
|
||||
*
|
||||
* @param {string} bid
|
||||
*/
|
||||
backup: function(bid) {
|
||||
@@ -403,7 +407,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Restore old otr session
|
||||
*
|
||||
*
|
||||
* @param {string} bid
|
||||
*/
|
||||
restore: function(bid) {
|
||||
@@ -438,7 +442,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Create or load DSA key
|
||||
*
|
||||
*
|
||||
* @returns {unresolved}
|
||||
*/
|
||||
createDSA: function() {
|
||||
@@ -536,7 +540,7 @@ jsxc.otr = {
|
||||
|
||||
/**
|
||||
* Ending of DSA key generation.
|
||||
*
|
||||
*
|
||||
* @param {DSA} dsa DSA object
|
||||
*/
|
||||
DSAready: function(dsa) {
|
||||
@@ -566,13 +570,13 @@ jsxc.otr = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -41,6 +41,22 @@ jsxc.storage = {
|
||||
|
||||
SEP: ':',
|
||||
|
||||
hasSupport: function() {
|
||||
if (typeof localStorage === 'undefined' || localStorage === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
localStorage.setItem('jsxc:storage:test', 'jsxc');
|
||||
localStorage.removeItem('jsxc:storage:test');
|
||||
} catch (err) {
|
||||
jsxc.warn('Can not save any data. Probably your quota exceeded or you use Safari in private Mode:', (err) ? err.message : undefined);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {type} uk Should we generate a user prefix?
|
||||
* @returns {String} prefix
|
||||
@@ -50,7 +66,7 @@ jsxc.storage = {
|
||||
var self = jsxc.storage;
|
||||
|
||||
if (uk && !jsxc.bid) {
|
||||
console.trace('Unable to create user prefix');
|
||||
jsxc.warn('Unable to create user prefix');
|
||||
}
|
||||
|
||||
return self.PREFIX + self.SEP + ((uk && jsxc.bid) ? jsxc.bid + self.SEP : '');
|
||||
@@ -90,7 +106,11 @@ jsxc.storage = {
|
||||
});
|
||||
}
|
||||
|
||||
localStorage.setItem(jsxc.storage.getPrefix(uk) + key, value);
|
||||
try {
|
||||
localStorage.setItem(jsxc.storage.getPrefix(uk) + key, value);
|
||||
} catch (err) {
|
||||
jsxc.error('An error occured while saving data.', (err) ? err.message : undefined);
|
||||
}
|
||||
},
|
||||
|
||||
setUserItem: function(type, key, value) {
|
||||
@@ -422,6 +442,11 @@ jsxc.storage = {
|
||||
var history = JSON.parse(e.newValue);
|
||||
var uid, el, message;
|
||||
|
||||
if (!jsxc.master) {
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
win.find('.jsxc_textarea').empty();
|
||||
}
|
||||
|
||||
while (history.length > 0) {
|
||||
uid = history.pop();
|
||||
|
||||
@@ -430,7 +455,7 @@ jsxc.storage = {
|
||||
|
||||
if (el.length === 0) {
|
||||
if (jsxc.master && message.direction === jsxc.Message.OUT) {
|
||||
jsxc.xmpp.sendMessage(message.bid, message.msg, message._uid);
|
||||
jsxc.xmpp.sendMessage(message);
|
||||
}
|
||||
|
||||
jsxc.gui.window._postMessage(message, true);
|
||||
@@ -654,13 +679,13 @@ jsxc.storage = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+21
-10
@@ -60,20 +60,31 @@ jsxc.tab = {
|
||||
});
|
||||
},
|
||||
|
||||
/*jshint -W098 */
|
||||
execMaster: function(cmd, params) {
|
||||
/**
|
||||
* Execute command in master tab.
|
||||
*
|
||||
* @param {String} cmd Command
|
||||
* @param {String[]} params List of parameters
|
||||
*/
|
||||
execMaster: function() {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
args.unshift(jsxc.tab.CONST.MASTER);
|
||||
|
||||
jsxc.tab.exec.apply(this, args);
|
||||
},
|
||||
execSlave: function(cmd, params) {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
args.unshift(jsxc.tab.CONST.SLAVE);
|
||||
|
||||
jsxc.tab.exec.apply(this, args);
|
||||
}
|
||||
/*jshint +W098 */
|
||||
/**
|
||||
* Execute command in all slave tabs.
|
||||
*
|
||||
* @param {String} cmd Command
|
||||
* @param {String[]} params List of parameters
|
||||
*/
|
||||
execSlave: function() {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
args.unshift(jsxc.tab.CONST.SLAVE);
|
||||
|
||||
jsxc.tab.exec.apply(this, args);
|
||||
}
|
||||
};
|
||||
</code></pre>
|
||||
</article>
|
||||
@@ -85,13 +96,13 @@ jsxc.tab = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+556
-202
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -35,7 +35,7 @@ jsxc.xmpp.bookmarks = {};
|
||||
|
||||
/**
|
||||
* Determines if server is able to store bookmarks.
|
||||
*
|
||||
*
|
||||
* @return {boolean} True: Server supports bookmark storage
|
||||
*/
|
||||
jsxc.xmpp.bookmarks.remote = function() {
|
||||
@@ -98,7 +98,7 @@ jsxc.xmpp.bookmarks.loadFromLocal = function() {
|
||||
|
||||
/**
|
||||
* Load bookmarks from remote storage.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
jsxc.xmpp.bookmarks.loadFromRemote = function() {
|
||||
@@ -156,7 +156,11 @@ jsxc.xmpp.bookmarks.loadFromRemote = function() {
|
||||
if (err.reasons[0] === 'item-not-found') {
|
||||
jsxc.debug('create bookmark node');
|
||||
|
||||
bookmarks.createBookmarksNode();
|
||||
bookmarks.createBookmarksNode(function() {
|
||||
jsxc.debug('Bookmark node created.');
|
||||
}, function() {
|
||||
jsxc.debug('Could not create bookmark node.');
|
||||
});
|
||||
} else {
|
||||
jsxc.debug('[XMPP] Could not create bookmark: ' + err.type, err.reasons);
|
||||
}
|
||||
@@ -377,13 +381,13 @@ jsxc.xmpp.bookmarks.showDialog = function(room) {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -0,0 +1,285 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.xmpp.chatState.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.xmpp.chatState.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* Implements XEP-0085: Chat State Notifications.
|
||||
*
|
||||
* @namespace jsxc.xmpp.chatState
|
||||
* @see {@link http://xmpp.org/extensions/xep-0085.html}
|
||||
*/
|
||||
jsxc.xmpp.chatState = {
|
||||
conn: null,
|
||||
|
||||
/** Delay between two notification on the message composing */
|
||||
toComposingNotificationDelay: 900,
|
||||
};
|
||||
|
||||
jsxc.xmpp.chatState.init = function() {
|
||||
var self = jsxc.xmpp.chatState;
|
||||
|
||||
if (!jsxc.xmpp.conn || !jsxc.xmpp.connected) {
|
||||
$(document).on('attached.jsxc', self.init);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// prevent double execution after reconnect
|
||||
$(document).off('composing.chatstates', jsxc.xmpp.chatState.onComposing);
|
||||
$(document).off('paused.chatstates', jsxc.xmpp.chatState.onPaused);
|
||||
$(document).off('active.chatstates', jsxc.xmpp.chatState.onActive);
|
||||
|
||||
if (self.isDisabled()) {
|
||||
jsxc.debug('chat state notification disabled');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
self.conn = jsxc.xmpp.conn;
|
||||
|
||||
$(document).on('composing.chatstates', jsxc.xmpp.chatState.onComposing);
|
||||
$(document).on('paused.chatstates', jsxc.xmpp.chatState.onPaused);
|
||||
$(document).on('active.chatstates', jsxc.xmpp.chatState.onActive);
|
||||
};
|
||||
|
||||
/**
|
||||
* Composing event received. Display message.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {Event} ev
|
||||
* @param {String} jid
|
||||
*/
|
||||
jsxc.xmpp.chatState.onComposing = function(ev, jid) {
|
||||
var self = jsxc.xmpp.chatState;
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var data = jsxc.storage.getUserItem('buddy', bid) || null;
|
||||
|
||||
if (!data || jsxc.xmpp.chatState.isDisabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// ignore own notifications in groupchat
|
||||
if (data.type === 'groupchat' &&
|
||||
Strophe.getResourceFromJid(jid) === Strophe.getNodeFromJid(self.conn.jid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var user = data.type === 'groupchat' ? Strophe.getResourceFromJid(jid) : data.name;
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
if (win.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// add user in array if necessary
|
||||
var usersComposing = win.data('composing') || [];
|
||||
if (usersComposing.indexOf(user) === -1) {
|
||||
usersComposing.push(user);
|
||||
win.data('composing', usersComposing);
|
||||
}
|
||||
|
||||
var msg = self._genComposingMsg(data.type, usersComposing);
|
||||
jsxc.xmpp.chatState.setStatus(win, msg);
|
||||
};
|
||||
|
||||
/**
|
||||
* Pause event receive. Remove or update composing message.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {Event} ev
|
||||
* @param {String} jid
|
||||
*/
|
||||
jsxc.xmpp.chatState.onPaused = function(ev, jid) {
|
||||
var self = jsxc.xmpp.chatState;
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var data = jsxc.storage.getUserItem('buddy', bid) || null;
|
||||
|
||||
if (!data || jsxc.xmpp.chatState.isDisabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var user = data.type === 'groupchat' ? Strophe.getResourceFromJid(jid) : data.name;
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
if (win.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var usersComposing = win.data('composing') || [];
|
||||
|
||||
if (usersComposing.indexOf(user) >= 0) {
|
||||
// remove user from list
|
||||
usersComposing.splice(usersComposing.indexOf(user), 1);
|
||||
win.data('composing', usersComposing);
|
||||
}
|
||||
|
||||
var composingMsg;
|
||||
if (usersComposing.length !== 0) {
|
||||
composingMsg = self._genComposingMsg(data.type, usersComposing);
|
||||
}
|
||||
|
||||
jsxc.xmpp.chatState.setStatus(win, composingMsg);
|
||||
};
|
||||
|
||||
/**
|
||||
* Active event received.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {Event} ev
|
||||
* @param {String} jid
|
||||
*/
|
||||
jsxc.xmpp.chatState.onActive = function(ev, jid) {
|
||||
jsxc.xmpp.chatState.onPaused(ev, jid);
|
||||
};
|
||||
|
||||
/**
|
||||
* Send composing event.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {String} bid
|
||||
*/
|
||||
jsxc.xmpp.chatState.startComposing = function(bid) {
|
||||
var self = jsxc.xmpp.chatState;
|
||||
|
||||
if (!jsxc.xmpp.conn || !jsxc.xmpp.conn.chatstates || jsxc.xmpp.chatState.isDisabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
var timeout = win.data('composing-timeout');
|
||||
var type = win.hasClass('jsxc_groupchat') ? 'groupchat' : 'chat';
|
||||
|
||||
if (timeout) {
|
||||
// @REVIEW page reload?
|
||||
clearTimeout(timeout);
|
||||
} else {
|
||||
jsxc.xmpp.conn.chatstates.sendComposing(bid, type);
|
||||
}
|
||||
|
||||
timeout = setTimeout(function() {
|
||||
self.pauseComposing(bid, type);
|
||||
|
||||
win.data('composing-timeout', null);
|
||||
}, self.toComposingNotificationDelay);
|
||||
|
||||
win.data('composing-timeout', timeout);
|
||||
};
|
||||
|
||||
/**
|
||||
* Send pause event.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {String} bid
|
||||
*/
|
||||
jsxc.xmpp.chatState.pauseComposing = function(bid, type) {
|
||||
if (jsxc.xmpp.chatState.isDisabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
jsxc.xmpp.conn.chatstates.sendPaused(bid, type);
|
||||
};
|
||||
|
||||
/**
|
||||
* End composing without sending a pause event.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {String} bid
|
||||
*/
|
||||
jsxc.xmpp.chatState.endComposing = function(bid) {
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
if (win.data('composing-timeout')) {
|
||||
clearTimeout(win.data('composing-timeout'));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate composing message.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {String} the type of the chat ('groupchat' or 'chat')
|
||||
* @param {Array} usersComposing List of users which are currently composing a message
|
||||
*/
|
||||
jsxc.xmpp.chatState._genComposingMsg = function(chatType, usersComposing) {
|
||||
if (!usersComposing || usersComposing.length === 0) {
|
||||
jsxc.debug('usersComposing array is empty?');
|
||||
|
||||
return '';
|
||||
} else {
|
||||
if (chatType === 'groupchat') {
|
||||
return usersComposing.length > 1 ? usersComposing.join(', ') + $.t('_are_composing') :
|
||||
usersComposing[0] + $.t('_is_composing');
|
||||
}
|
||||
return $.t('_is_composing');
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.xmpp.chatState.setStatus = function(win, msg) {
|
||||
var statusMsgElement = win.find('.jsxc_status-msg');
|
||||
|
||||
statusMsgElement.text(msg || '');
|
||||
statusMsgElement.attr('title', msg || '');
|
||||
|
||||
if (msg) {
|
||||
statusMsgElement.addClass('jsxc_composing');
|
||||
win.addClass('jsxc_status-msg-show');
|
||||
} else {
|
||||
statusMsgElement.removeClass('jsxc_composing');
|
||||
win.removeClass('jsxc_status-msg-show');
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.xmpp.chatState.isDisabled = function() {
|
||||
var options = jsxc.options.get('chatState') || {};
|
||||
|
||||
return !options.enable;
|
||||
};
|
||||
|
||||
$(document).on('attached.jsxc', jsxc.xmpp.chatState.init);
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,380 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.xmpp.httpUpload.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.xmpp.httpUpload.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* Implements Http File Upload (XEP-0363)
|
||||
*
|
||||
* @namespace jsxc.xmpp.httpUpload
|
||||
* @see {@link http://xmpp.org/extensions/xep-0363.html}
|
||||
*/
|
||||
jsxc.xmpp.httpUpload = {
|
||||
conn: null,
|
||||
|
||||
ready: false,
|
||||
|
||||
CONST: {
|
||||
NS: {
|
||||
HTTPUPLOAD: 'urn:xmpp:http:upload'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Set up http file upload.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
* @param {Object} o options
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.init = function(o) {
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
self.conn = jsxc.xmpp.conn;
|
||||
|
||||
var fileTransferOptions = jsxc.options.get('fileTransfer') || {};
|
||||
var options = o || jsxc.options.get('httpUpload');
|
||||
|
||||
if (!fileTransferOptions.httpUpload.enable) {
|
||||
jsxc.debug('http upload disabled');
|
||||
|
||||
jsxc.options.set('httpUpload', false);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (options && options.server) {
|
||||
self.ready = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var caps = jsxc.xmpp.conn.caps;
|
||||
var domain = jsxc.xmpp.conn.domain;
|
||||
|
||||
if (!caps || !domain || typeof caps._knownCapabilities[caps._jidVerIndex[domain]] === 'undefined') {
|
||||
jsxc.debug('Waiting for server capabilities');
|
||||
|
||||
$(document).on('caps.strophe', function onCaps(ev, from) {
|
||||
|
||||
if (from !== domain) {
|
||||
return;
|
||||
}
|
||||
|
||||
self.init();
|
||||
|
||||
$(document).off('caps.strophe', onCaps);
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
self.discoverUploadService();
|
||||
};
|
||||
|
||||
/**
|
||||
* Discover upload service for http upload.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.discoverUploadService = function() {
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
var domain = self.conn.domain;
|
||||
|
||||
jsxc.debug('discover http upload service');
|
||||
|
||||
if (jsxc.xmpp.conn.caps.hasFeatureByJid(domain, self.CONST.NS.HTTPUPLOAD)) {
|
||||
self.queryItemForUploadService(domain);
|
||||
}
|
||||
|
||||
self.conn.disco.items(domain, null, function(items) {
|
||||
$(items).find('item').each(function() {
|
||||
var jid = $(this).attr('jid');
|
||||
|
||||
if (self.ready) {
|
||||
// abort, because we already found a service
|
||||
return false;
|
||||
}
|
||||
|
||||
self.queryItemForUploadService(jid);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Query item for upload service.
|
||||
*
|
||||
* @param {String} jid
|
||||
* @param {Function} cb Callback on success
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.queryItemForUploadService = function(jid, cb) {
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
|
||||
jsxc.debug('query ' + jid + ' for upload service');
|
||||
|
||||
self.conn.disco.info(jid, null, function(info) {
|
||||
var httpUploadFeature = $(info).find('feature[var="' + self.CONST.NS.HTTPUPLOAD + '"]');
|
||||
var httpUploadMaxSize = $(info).find('field[var="max-file-size"]');
|
||||
|
||||
if (httpUploadFeature.length > 0) {
|
||||
jsxc.debug('http upload service found on ' + jid);
|
||||
|
||||
jsxc.options.set('httpUpload', {
|
||||
server: jid,
|
||||
name: $(info).find('identity').attr('name'),
|
||||
maxSize: parseInt(httpUploadMaxSize.text()) || -1
|
||||
});
|
||||
|
||||
self.ready = true;
|
||||
|
||||
if (typeof cb === 'function') {
|
||||
cb.call(info);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Upload file and send link to peer.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
* @param {File} file
|
||||
* @param {Message} message Preview message
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.sendFile = function(file, message) {
|
||||
jsxc.debug('Send file via http upload');
|
||||
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
|
||||
// even if the link is encrypted the file isn't
|
||||
message.encrypted = false;
|
||||
|
||||
self.requestSlot(file, function(data) {
|
||||
if (!data) {
|
||||
// general error
|
||||
jsxc.warn('Unknown error occured. Please check the debug log.');
|
||||
} else if (data.error) {
|
||||
// specific error
|
||||
jsxc.warn('The xmpp server responded with an error of the type "' + data.error.type + '"');
|
||||
|
||||
message.getDOM().remove();
|
||||
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: message.bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: data.error.text
|
||||
});
|
||||
|
||||
message.delete();
|
||||
} else if (data.get && data.put) {
|
||||
// slot received, start upload
|
||||
self.uploadFile(data.put, file, message, function() {
|
||||
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);
|
||||
}
|
||||
|
||||
a.text(data.get);
|
||||
message.attachment.data = data.get;
|
||||
|
||||
message.msg = $('<span>').append(a).html();
|
||||
message.type = jsxc.Message.HTML;
|
||||
jsxc.gui.window.postMessage(message);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Upload the given file to the given url.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
* @param {String} url upload url
|
||||
* @param {File} file
|
||||
* @param {Message} message preview message
|
||||
* @param {Function} success_cb callback on successful transition
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.uploadFile = function(url, file, message, success_cb) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'PUT',
|
||||
contentType: 'application/octet-stream',
|
||||
data: file,
|
||||
processData: false,
|
||||
xhr: function() {
|
||||
var xhr = $.ajaxSettings.xhr();
|
||||
|
||||
// track upload progress
|
||||
xhr.upload.onprogress = function(ev) {
|
||||
if (ev.lengthComputable) {
|
||||
jsxc.gui.window.updateProgress(message, ev.loaded, ev.total);
|
||||
}
|
||||
};
|
||||
return xhr;
|
||||
},
|
||||
success: function() {
|
||||
jsxc.debug('file successful uploaded');
|
||||
|
||||
// In case that upload progress is not available, inform user
|
||||
jsxc.gui.window.updateProgress(message, 1, 1);
|
||||
|
||||
if (success_cb) {
|
||||
success_cb();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
jsxc.warn('error while uploading file to ' + url);
|
||||
|
||||
message.error = 'Could not upload file';
|
||||
jsxc.gui.window.postMessage(message);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Request upload slot.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
* @param {File} file
|
||||
* @param {Function} cb Callback after finished request
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.requestSlot = function(file, cb) {
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
var options = jsxc.options.get('httpUpload');
|
||||
|
||||
if (!options || !options.server) {
|
||||
jsxc.warn('could not request upload slot, because I am not aware of a server or http upload is disabled');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var iq = $iq({
|
||||
to: options.server,
|
||||
type: 'get'
|
||||
}).c('request', {
|
||||
xmlns: self.CONST.NS.HTTPUPLOAD
|
||||
}).c('filename').t(file.name)
|
||||
.up()
|
||||
.c('size').t(file.size);
|
||||
|
||||
self.conn.sendIQ(iq, function(stanza) {
|
||||
self.successfulRequestSlotCB(stanza, cb);
|
||||
}, function(stanza) {
|
||||
self.failedRequestSlotCB(stanza, cb);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Process successful response to slot request.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
* @param {String} stanza
|
||||
* @param {Function} cb
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.successfulRequestSlotCB = function(stanza, cb) {
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
var slot = $(stanza).find('slot[xmlns="' + self.CONST.NS.HTTPUPLOAD + '"]');
|
||||
|
||||
if (slot.length > 0) {
|
||||
var put = slot.find('put').text();
|
||||
var get = slot.find('get').text();
|
||||
|
||||
cb({
|
||||
put: put,
|
||||
get: get
|
||||
});
|
||||
} else {
|
||||
self.failedRequestSlotCB(stanza, cb);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Process failed response to slot request.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.httpUpload
|
||||
* @param {String} stanza
|
||||
* @param {Function} cb
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.failedRequestSlotCB = function(stanza, cb) {
|
||||
if ($(stanza).find('error').length <= 0) {
|
||||
jsxc.warn('response does not contain a slot element');
|
||||
|
||||
cb();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var error = {
|
||||
type: $(stanza).find('error').attr('type') || 'unknown',
|
||||
text: $(stanza).find('error text').text()
|
||||
};
|
||||
|
||||
if ($(stanza).find('error not-acceptable')) {
|
||||
error.reason = 'not-acceptable';
|
||||
} else if ($(stanza).find('error resource-constraint')) {
|
||||
error.reason = 'resource-constraint';
|
||||
} else if ($(stanza).find('error not-allowed')) {
|
||||
error.reason = 'not-allowed';
|
||||
}
|
||||
|
||||
cb({
|
||||
error: error
|
||||
});
|
||||
};
|
||||
|
||||
$(document).on('stateChange.jsxc', function(ev, state) {
|
||||
if (state === jsxc.CONST.STATE.READY) {
|
||||
jsxc.xmpp.httpUpload.init();
|
||||
}
|
||||
});
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
+328
-78
@@ -28,7 +28,7 @@
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* Handle XMPP stuff.
|
||||
*
|
||||
*
|
||||
* @namespace jsxc.xmpp
|
||||
*/
|
||||
jsxc.xmpp = {
|
||||
@@ -36,14 +36,14 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Create new connection or attach to old
|
||||
*
|
||||
*
|
||||
* @name login
|
||||
* @memberOf jsxc.xmpp
|
||||
* @private
|
||||
*/
|
||||
/**
|
||||
* Create new connection with given parameters.
|
||||
*
|
||||
*
|
||||
* @name login^2
|
||||
* @param {string} jid
|
||||
* @param {string} password
|
||||
@@ -52,7 +52,7 @@ jsxc.xmpp = {
|
||||
*/
|
||||
/**
|
||||
* Attach connection with given parameters.
|
||||
*
|
||||
*
|
||||
* @name login^3
|
||||
* @param {string} jid
|
||||
* @param {string} sid
|
||||
@@ -122,6 +122,7 @@ jsxc.xmpp = {
|
||||
$(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
|
||||
|
||||
Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
|
||||
Strophe.addNamespace('VERSION', 'jabber:iq:version');
|
||||
}
|
||||
|
||||
// Create new connection (no login)
|
||||
@@ -169,12 +170,12 @@ jsxc.xmpp = {
|
||||
jsxc.xmpp.conn.caps.node = 'http://jsxc.org/';
|
||||
}
|
||||
|
||||
jsxc.changeState(jsxc.CONST.STATE.ESTABLISHING);
|
||||
|
||||
if (sid && rid) {
|
||||
jsxc.debug('Try to attach');
|
||||
jsxc.debug('SID: ' + sid);
|
||||
|
||||
jsxc.reconnect = true;
|
||||
|
||||
jsxc.xmpp.conn.attach(jid, sid, rid, callback);
|
||||
} else {
|
||||
jsxc.debug('New connection');
|
||||
@@ -182,6 +183,7 @@ jsxc.xmpp = {
|
||||
if (jsxc.xmpp.conn.caps) {
|
||||
// Add system handler, because user handler isn't called before
|
||||
// we are authenticated
|
||||
// @REVIEW this could maybe retrieved from jsxc.xmpp.conn.features
|
||||
jsxc.xmpp.conn._addSysHandler(function(stanza) {
|
||||
var from = jsxc.xmpp.conn.domain,
|
||||
c = stanza.querySelector('c'),
|
||||
@@ -204,7 +206,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Logs user out of his xmpp session and does some clean up.
|
||||
*
|
||||
*
|
||||
* @param {boolean} complete If set to false, roster will not be removed
|
||||
* @returns {Boolean}
|
||||
*/
|
||||
@@ -222,7 +224,6 @@ jsxc.xmpp = {
|
||||
|
||||
// REVIEW: this should maybe moved to xmpp.disconnected
|
||||
// clean up
|
||||
jsxc.storage.removeUserItem('buddylist');
|
||||
jsxc.storage.removeUserItem('windowlist');
|
||||
jsxc.storage.removeUserItem('unreadMsg');
|
||||
|
||||
@@ -271,7 +272,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Triggered if connection is established
|
||||
*
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
connected: function() {
|
||||
@@ -282,6 +283,9 @@ jsxc.xmpp = {
|
||||
|
||||
jsxc.xmpp.saveSessionParameter();
|
||||
|
||||
var rosterVerSupport = $(jsxc.xmpp.conn.features).find('[xmlns="urn:xmpp:features:rosterver"]').length > 0;
|
||||
jsxc.storage.setUserItem('rosterVerSupport', rosterVerSupport);
|
||||
|
||||
if (jsxc.options.loginForm.triggered) {
|
||||
switch (jsxc.options.loginForm.onConnected || 'submit') {
|
||||
case 'submit':
|
||||
@@ -299,22 +303,28 @@ jsxc.xmpp = {
|
||||
jsxc.xmpp.conn.resume();
|
||||
jsxc.onMaster();
|
||||
|
||||
jsxc.changeState(jsxc.CONST.STATE.READY);
|
||||
$(document).trigger('attached.jsxc');
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggered if connection is attached
|
||||
*
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
attached: function() {
|
||||
|
||||
$('#jsxc_roster').removeClass('jsxc_noConnection');
|
||||
|
||||
Strophe.addNamespace('VERSION', 'jabber:iq:version');
|
||||
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged, 'jabber:iq:roster', 'iq', 'set');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage, null, 'message', 'chat');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onChatMessage, null, 'message', 'chat');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onErrorMessage, null, 'message', 'error');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onHeadlineMessage, null, 'message', 'headline');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived, null, 'message');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence, null, 'presence');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onVersionRequest, Strophe.NS.VERSION, 'iq', 'get');
|
||||
|
||||
jsxc.gui.init();
|
||||
|
||||
@@ -355,36 +365,43 @@ jsxc.xmpp = {
|
||||
}
|
||||
}
|
||||
|
||||
var rosterLoaded = jsxc.storage.getUserItem('rosterLoaded');
|
||||
|
||||
// Only load roaster if necessary
|
||||
if (!jsxc.reconnect || !jsxc.storage.getUserItem('buddylist')) {
|
||||
if (rosterLoaded !== jsxc.xmpp.conn._proto.sid) {
|
||||
// in order to not overide existing presence information, we send
|
||||
// pres first after roster is ready
|
||||
$(document).one('cloaded.roster.jsxc', jsxc.xmpp.sendPres);
|
||||
|
||||
$('#jsxc_roster > p:first').remove();
|
||||
|
||||
var queryAttr = {
|
||||
xmlns: 'jabber:iq:roster'
|
||||
};
|
||||
|
||||
if (jsxc.storage.getUserItem('rosterVerSupport')) {
|
||||
// @TODO check if we really cached the roster
|
||||
queryAttr.ver = jsxc.storage.getUserItem('rosterVer') || '';
|
||||
}
|
||||
|
||||
var iq = $iq({
|
||||
type: 'get'
|
||||
}).c('query', {
|
||||
xmlns: 'jabber:iq:roster'
|
||||
});
|
||||
}).c('query', queryAttr);
|
||||
|
||||
jsxc.xmpp.conn.sendIQ(iq, jsxc.xmpp.onRoster);
|
||||
} else {
|
||||
jsxc.xmpp.sendPres();
|
||||
|
||||
if (!jsxc.restoreCompleted) {
|
||||
jsxc.restoreRoster();
|
||||
jsxc.restoreWindows();
|
||||
jsxc.restoreCompleted = true;
|
||||
|
||||
$(document).trigger('restoreCompleted.jsxc');
|
||||
jsxc.gui.restore();
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.xmpp.saveSessionParameter();
|
||||
|
||||
jsxc.masterActions();
|
||||
|
||||
jsxc.changeState(jsxc.CONST.STATE.READY);
|
||||
},
|
||||
|
||||
saveSessionParameter: function() {
|
||||
@@ -397,14 +414,12 @@ jsxc.xmpp = {
|
||||
},
|
||||
|
||||
initNewConnection: function() {
|
||||
// make shure roster will be reloaded
|
||||
jsxc.storage.removeUserItem('buddylist');
|
||||
|
||||
jsxc.storage.removeUserItem('windowlist');
|
||||
jsxc.storage.removeUserItem('own');
|
||||
jsxc.storage.removeUserItem('avatar', 'own');
|
||||
jsxc.storage.removeUserItem('otrlist');
|
||||
jsxc.storage.removeUserItem('unreadMsg');
|
||||
jsxc.storage.removeUserItem('features');
|
||||
|
||||
// reset user options
|
||||
jsxc.storage.removeUserElement('options', 'RTCPeerConfig');
|
||||
@@ -419,6 +434,7 @@ jsxc.xmpp = {
|
||||
jsxc.xmpp.conn.disco.addIdentity('client', 'web', 'JSXC');
|
||||
jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO);
|
||||
jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS);
|
||||
jsxc.xmpp.conn.disco.addFeature(Strophe.NS.VERSION);
|
||||
}
|
||||
|
||||
// create presence stanza
|
||||
@@ -441,11 +457,28 @@ jsxc.xmpp = {
|
||||
|
||||
jsxc.debug('Send presence', pres.toString());
|
||||
jsxc.xmpp.conn.send(pres);
|
||||
|
||||
if (!jsxc.storage.getUserItem('features')) {
|
||||
jsxc.xmpp.conn.flush();
|
||||
|
||||
var barJid = Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid);
|
||||
|
||||
jsxc.xmpp.conn.disco.info(barJid, undefined, function(stanza) {
|
||||
var features = $(stanza).find('feature').map(function() {
|
||||
return $(this).attr('var');
|
||||
});
|
||||
|
||||
jsxc.storage.setUserItem('features', features.toArray());
|
||||
$(document).trigger('features.jsxc');
|
||||
});
|
||||
} else {
|
||||
$(document).trigger('features.jsxc');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggered if lost connection
|
||||
*
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
disconnected: function() {
|
||||
@@ -457,6 +490,7 @@ jsxc.xmpp = {
|
||||
jsxc.storage.removeItem('hidden');
|
||||
jsxc.storage.removeUserItem('avatar', 'own');
|
||||
jsxc.storage.removeUserItem('otrlist');
|
||||
jsxc.storage.removeUserItem('features');
|
||||
|
||||
$(document).off('connected.jsxc', jsxc.xmpp.connected);
|
||||
$(document).off('attached.jsxc', jsxc.xmpp.attached);
|
||||
@@ -470,6 +504,7 @@ jsxc.xmpp = {
|
||||
|
||||
if (jsxc.triggeredFromElement) {
|
||||
$(document).trigger('toggle.roster.jsxc', ['hidden', 0]);
|
||||
jsxc.gui.roster.ready = false;
|
||||
$('#jsxc_roster').remove();
|
||||
|
||||
// REVIEW: logoutElement without href attribute?
|
||||
@@ -484,11 +519,13 @@ jsxc.xmpp = {
|
||||
jsxc.role_allocation = false;
|
||||
jsxc.master = false;
|
||||
jsxc.storage.removeItem('alive');
|
||||
|
||||
jsxc.changeState(jsxc.CONST.STATE.SUSPEND);
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggered on connection fault
|
||||
*
|
||||
*
|
||||
* @param {String} condition information why we lost the connection
|
||||
* @private
|
||||
*/
|
||||
@@ -502,7 +539,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Triggered on auth fail.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
onAuthFail: function() {
|
||||
@@ -524,18 +561,22 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Triggered on initial roster load
|
||||
*
|
||||
*
|
||||
* @param {dom} iq
|
||||
* @private
|
||||
*/
|
||||
onRoster: function(iq) {
|
||||
/*
|
||||
* <iq from='' type='get' id=''> <query xmlns='jabber:iq:roster'> <item
|
||||
* jid='' name='' subscription='' /> ... </query> </iq>
|
||||
*/
|
||||
|
||||
jsxc.debug('Load roster', iq);
|
||||
|
||||
jsxc.storage.setUserItem('rosterLoaded', jsxc.xmpp.conn._proto.sid);
|
||||
|
||||
if ($(iq).find('query').length === 0) {
|
||||
jsxc.debug('Use cached roster');
|
||||
|
||||
jsxc.restoreRoster();
|
||||
return;
|
||||
}
|
||||
|
||||
var buddies = [];
|
||||
|
||||
$(iq).find('item').each(function() {
|
||||
@@ -566,29 +607,39 @@ jsxc.xmpp = {
|
||||
|
||||
jsxc.storage.setUserItem('buddylist', buddies);
|
||||
|
||||
if ($(iq).find('query').attr('ver')) {
|
||||
jsxc.storage.setUserItem('rosterVer', $(iq).find('query').attr('ver'));
|
||||
}
|
||||
|
||||
// load bookmarks
|
||||
jsxc.xmpp.bookmarks.load();
|
||||
|
||||
jsxc.gui.roster.loaded = true;
|
||||
jsxc.debug('Roster loaded');
|
||||
$(document).trigger('cloaded.roster.jsxc');
|
||||
jsxc.changeUIState(jsxc.CONST.UISTATE.READY);
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggerd on roster changes
|
||||
*
|
||||
*
|
||||
* @param {dom} iq
|
||||
* @returns {Boolean} True to preserve handler
|
||||
* @private
|
||||
*/
|
||||
onRosterChanged: function(iq) {
|
||||
/*
|
||||
* <iq from='' type='set' id=''> <query xmlns='jabber:iq:roster'> <item
|
||||
* jid='' name='' subscription='' /> </query> </iq>
|
||||
*/
|
||||
|
||||
var iqSender = $(iq).attr('from');
|
||||
var ownBareJid = Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid);
|
||||
|
||||
if (iqSender && iqSender !== ownBareJid) {
|
||||
return true;
|
||||
}
|
||||
|
||||
jsxc.debug('onRosterChanged', iq);
|
||||
|
||||
// @REVIEW there should be only one item, according to RFC6121
|
||||
// https://xmpp.org/rfcs/rfc6121.html#roster-syntax-actions-push
|
||||
$(iq).find('item').each(function() {
|
||||
var jid = $(this).attr('jid');
|
||||
var name = $(this).attr('name') || jid;
|
||||
@@ -639,6 +690,10 @@ jsxc.xmpp = {
|
||||
}
|
||||
});
|
||||
|
||||
if ($(iq).find('query').attr('ver')) {
|
||||
jsxc.storage.setUserItem('rosterVer', $(iq).find('query').attr('ver'));
|
||||
}
|
||||
|
||||
if (!jsxc.storage.getUserItem('buddylist') || jsxc.storage.getUserItem('buddylist').length === 0) {
|
||||
jsxc.gui.roster.empty();
|
||||
} else {
|
||||
@@ -651,19 +706,19 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Triggered on incoming presence stanzas
|
||||
*
|
||||
*
|
||||
* @param {dom} presence
|
||||
* @private
|
||||
*/
|
||||
onPresence: function(presence) {
|
||||
/*
|
||||
* <presence xmlns='jabber:client' type='unavailable' from='' to=''/>
|
||||
*
|
||||
*
|
||||
* <presence xmlns='jabber:client' from='' to=''> <priority>5</priority>
|
||||
* <c xmlns='http://jabber.org/protocol/caps'
|
||||
* node='http://psi-im.org/caps' ver='caps-b75d8d2b25' ext='ca cs
|
||||
* ep-notify-2 html'/> </presence>
|
||||
*
|
||||
*
|
||||
* <presence xmlns='jabber:client' from='' to=''> <show>chat</show>
|
||||
* <status></status> <priority>5</priority> <c
|
||||
* xmlns='http://jabber.org/protocol/caps' node='http://psi-im.org/caps'
|
||||
@@ -714,7 +769,11 @@ jsxc.xmpp = {
|
||||
jid: jid,
|
||||
approve: -1
|
||||
});
|
||||
jsxc.notice.add($.t('Friendship_request'), $.t('from') + ' ' + jid, 'gui.showApproveDialog', [jid]);
|
||||
jsxc.notice.add({
|
||||
msg: $.t('Friendship_request'),
|
||||
description: $.t('from') + ' ' + jid,
|
||||
type: 'contact'
|
||||
}, 'gui.showApproveDialog', [jid]);
|
||||
|
||||
return true;
|
||||
} else if (ptype === 'unavailable' || ptype === 'unsubscribed') {
|
||||
@@ -730,7 +789,7 @@ jsxc.xmpp = {
|
||||
|
||||
if (status === 0) {
|
||||
delete res[r];
|
||||
} else {
|
||||
} else if (r) {
|
||||
res[r] = status;
|
||||
}
|
||||
|
||||
@@ -758,9 +817,7 @@ jsxc.xmpp = {
|
||||
});
|
||||
}
|
||||
|
||||
if (data.type === 'groupchat') {
|
||||
data.status = status;
|
||||
} else {
|
||||
if (data.type !== 'groupchat') {
|
||||
data.status = max;
|
||||
}
|
||||
|
||||
@@ -785,7 +842,7 @@ jsxc.xmpp = {
|
||||
jsxc.storage.setUserItem('buddy', bid, data);
|
||||
jsxc.storage.setUserItem('res', bid, res);
|
||||
|
||||
jsxc.debug('Presence (' + from + '): ' + status);
|
||||
jsxc.debug('Presence (' + from + '): ' + jsxc.CONST.STATUS[status]);
|
||||
|
||||
jsxc.gui.update(bid);
|
||||
jsxc.gui.roster.reorder(bid);
|
||||
@@ -798,15 +855,15 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Triggered on incoming message stanzas
|
||||
*
|
||||
*
|
||||
* @param {dom} presence
|
||||
* @returns {Boolean}
|
||||
* @private
|
||||
*/
|
||||
onMessage: function(stanza) {
|
||||
|
||||
onChatMessage: function(stanza) {
|
||||
var forwarded = $(stanza).find('forwarded[xmlns="' + jsxc.CONST.NS.FORWARD + '"]');
|
||||
var message, carbon;
|
||||
var originalSender = $(stanza).attr('from');
|
||||
|
||||
if (forwarded.length > 0) {
|
||||
message = forwarded.find('> message');
|
||||
@@ -815,6 +872,9 @@ jsxc.xmpp = {
|
||||
|
||||
if (carbon.length === 0) {
|
||||
carbon = false;
|
||||
} else if (originalSender !== Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)) {
|
||||
// ignore this carbon copy
|
||||
return true;
|
||||
}
|
||||
|
||||
jsxc.debug('Incoming forwarded message', message);
|
||||
@@ -827,6 +887,7 @@ jsxc.xmpp = {
|
||||
}
|
||||
|
||||
var body = $(message).find('body:first').text();
|
||||
var htmlBody = $(message).find('body[xmlns="' + Strophe.NS.XHTML + '"]');
|
||||
|
||||
if (!body || (body.match(/\?OTR/i) && forwarded)) {
|
||||
return true;
|
||||
@@ -876,13 +937,24 @@ jsxc.xmpp = {
|
||||
var chat = jsxc.storage.getUserItem('chat', bid) || [];
|
||||
|
||||
if (chat.length === 0) {
|
||||
jsxc.notice.add($.t('Unknown_sender'), $.t('You_received_a_message_from_an_unknown_sender') + ' (' + bid + ').', 'gui.showUnknownSender', [bid]);
|
||||
jsxc.notice.add({
|
||||
msg: $.t('Unknown_sender'),
|
||||
description: $.t('You_received_a_message_from_an_unknown_sender_') + ' (' + bid + ').'
|
||||
}, 'gui.showUnknownSender', [bid]);
|
||||
}
|
||||
|
||||
var msg = jsxc.removeHTML(body);
|
||||
msg = jsxc.escapeHTML(msg);
|
||||
|
||||
jsxc.storage.saveMessage(bid, 'in', msg, false, forwarded, stamp);
|
||||
var messageObj = new jsxc.Message({
|
||||
bid: bid,
|
||||
msg: msg,
|
||||
direction: jsxc.Message.IN,
|
||||
encrypted: false,
|
||||
forwarded: forwarded,
|
||||
stamp: stamp
|
||||
});
|
||||
messageObj.save();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -914,19 +986,53 @@ jsxc.xmpp = {
|
||||
}));
|
||||
}
|
||||
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid)) {
|
||||
var attachment;
|
||||
if (htmlBody.length === 1) {
|
||||
var httpUploadElement = htmlBody.find('a[data-type][data-name][data-size]');
|
||||
|
||||
if (httpUploadElement.length === 1) {
|
||||
attachment = {
|
||||
type: httpUploadElement.attr('data-type'),
|
||||
name: httpUploadElement.attr('data-name'),
|
||||
size: httpUploadElement.attr('data-size'),
|
||||
};
|
||||
|
||||
if (httpUploadElement.attr('data-thumbnail') && httpUploadElement.attr('data-thumbnail').match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+/]+$/i)) {
|
||||
attachment.thumbnail = httpUploadElement.attr('data-thumbnail');
|
||||
}
|
||||
|
||||
if (httpUploadElement.attr('href') && httpUploadElement.attr('href').match(/^https:\/\//)) {
|
||||
attachment.data = httpUploadElement.attr('href');
|
||||
body = null;
|
||||
}
|
||||
|
||||
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.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid) && body) {
|
||||
// @TODO check for file upload url after decryption
|
||||
jsxc.otr.objects[bid].receiveMsg(body, {
|
||||
_uid: mid,
|
||||
foo: 'bar',
|
||||
stamp: stamp,
|
||||
forwarded: forwarded
|
||||
forwarded: forwarded,
|
||||
attachment: attachment
|
||||
});
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
_uid: mid,
|
||||
bid: bid,
|
||||
direction: jsxc.Message.IN,
|
||||
msg: body,
|
||||
encrypted: false,
|
||||
forwarded: forwarded,
|
||||
stamp: stamp
|
||||
stamp: stamp,
|
||||
attachment: attachment
|
||||
});
|
||||
}
|
||||
|
||||
@@ -934,9 +1040,116 @@ jsxc.xmpp = {
|
||||
return true;
|
||||
},
|
||||
|
||||
onErrorMessage: function(message) {
|
||||
var bid = jsxc.jidToBid($(message).attr('from'));
|
||||
|
||||
if (jsxc.gui.window.get(bid).length === 0 || !$(message).attr('id')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($(message).find('item-not-found').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_item-not-found')
|
||||
});
|
||||
} else if ($(message).find('forbidden').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_forbidden')
|
||||
});
|
||||
} else if ($(message).find('not-acceptable').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_not-acceptable')
|
||||
});
|
||||
} else if ($(message).find('remote-server-not-found').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_remote-server-not-found')
|
||||
});
|
||||
} else if ($(message).find('service-unavailable').length > 0) {
|
||||
if ($(message).find('[xmlns="' + Strophe.NS.CHATSTATES + '"]').length === 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_resource-unavailable')
|
||||
});
|
||||
}
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send')
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.debug('error message for ' + bid, $(message).find('error')[0]);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Process message stanzas of type headline.
|
||||
*
|
||||
* @param {String} stanza Message stanza of type headline
|
||||
* @return {Boolean}
|
||||
*/
|
||||
onHeadlineMessage: function(stanza) {
|
||||
stanza = $(stanza);
|
||||
|
||||
var from = stanza.attr('from');
|
||||
var domain = Strophe.getDomainFromJid(from);
|
||||
|
||||
if (domain !== from) {
|
||||
if (!jsxc.storage.getUserItem('buddy', jsxc.jidToBid(from))) {
|
||||
return true;
|
||||
}
|
||||
} else if (domain !== Strophe.getDomainFromJid(jsxc.xmpp.conn.jid)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var subject = stanza.find('subject:first').text() || $.t('Notification');
|
||||
var body = stanza.find('body:first').text();
|
||||
|
||||
jsxc.notice.add({
|
||||
msg: subject,
|
||||
description: body,
|
||||
type: (domain === from) ? 'announcement' : null
|
||||
}, 'gui.showNotification', [subject, body, from]);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Respond to version request (XEP-0092).
|
||||
*/
|
||||
onVersionRequest: function(stanza) {
|
||||
stanza = $(stanza);
|
||||
|
||||
var from = stanza.attr('from');
|
||||
var id = stanza.attr('id');
|
||||
|
||||
var iq = $iq({
|
||||
type: 'result',
|
||||
to: from,
|
||||
id: id
|
||||
}).c('query', {
|
||||
xmlns: Strophe.NS.VERSION
|
||||
}).c('name').t('JSXC').up()
|
||||
.c('version').t(jsxc.version);
|
||||
|
||||
jsxc.xmpp.conn.sendIQ(iq);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggerd if the rid changed
|
||||
*
|
||||
*
|
||||
* @param {integer} rid next valid request id
|
||||
* @private
|
||||
*/
|
||||
@@ -946,7 +1159,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* response to friendship request
|
||||
*
|
||||
*
|
||||
* @param {string} from jid from original friendship req
|
||||
* @param {boolean} approve
|
||||
*/
|
||||
@@ -967,7 +1180,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Add buddy to my friends
|
||||
*
|
||||
*
|
||||
* @param {string} username jid
|
||||
* @param {string} alias
|
||||
*/
|
||||
@@ -992,9 +1205,9 @@ jsxc.xmpp = {
|
||||
type: 'subscribe'
|
||||
}));
|
||||
|
||||
jsxc.storage.removeUserItem('add_' + bid);
|
||||
jsxc.storage.removeUserItem('add', bid);
|
||||
} else {
|
||||
jsxc.storage.setUserItem('add_' + bid, {
|
||||
jsxc.storage.setUserItem('add', bid, {
|
||||
username: username,
|
||||
alias: alias || null
|
||||
});
|
||||
@@ -1003,7 +1216,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Remove buddy from my friends
|
||||
*
|
||||
*
|
||||
* @param {type} jid
|
||||
*/
|
||||
removeBuddy: function(jid) {
|
||||
@@ -1038,39 +1251,63 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Public function to send message.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp
|
||||
* @param bid css jid of user
|
||||
* @param msg message
|
||||
* @param uid unique id
|
||||
*/
|
||||
sendMessage: function(bid, msg, uid) {
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid)) {
|
||||
jsxc.otr.objects[bid].sendMsg(msg, uid);
|
||||
sendMessage: function(message) {
|
||||
var bid = message.bid;
|
||||
var msg = message.htmlMsg;
|
||||
|
||||
var mucRoomNames = (jsxc.xmpp.conn.muc && jsxc.xmpp.conn.muc.roomNames) ? jsxc.xmpp.conn.muc.roomNames : [];
|
||||
var isMucBid = mucRoomNames.indexOf(bid) >= 0;
|
||||
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid) && !isMucBid) {
|
||||
jsxc.otr.objects[bid].sendMsg(msg, message);
|
||||
} else {
|
||||
jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data('jid'), msg, uid);
|
||||
jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data('jid'), msg, message);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Create message stanza and send it.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp
|
||||
* @param jid Jabber id
|
||||
* @param msg Message
|
||||
* @param uid unique id
|
||||
* @private
|
||||
*/
|
||||
_sendMessage: function(jid, msg, uid) {
|
||||
_sendMessage: function(jid, msg, message) {
|
||||
// @TODO put jid into message object
|
||||
var data = jsxc.storage.getUserItem('buddy', jsxc.jidToBid(jid)) || {};
|
||||
var isBar = (Strophe.getBareJidFromJid(jid) === jid);
|
||||
var type = data.type || 'chat';
|
||||
message = message || {};
|
||||
|
||||
var xmlMsg = $msg({
|
||||
to: jid,
|
||||
type: type,
|
||||
id: uid
|
||||
}).c('body').t(msg);
|
||||
id: message._uid
|
||||
});
|
||||
|
||||
if (message.type === jsxc.Message.HTML) {
|
||||
xmlMsg.c("html", {
|
||||
xmlns: Strophe.NS.XHTML_IM
|
||||
});
|
||||
|
||||
// Omit StropheJS XEP-0071 limitations
|
||||
var body = Strophe.xmlElement("body", {
|
||||
xmlns: Strophe.NS.XHTML
|
||||
});
|
||||
body.innerHTML = msg;
|
||||
|
||||
xmlMsg.node.appendChild(body);
|
||||
} else {
|
||||
xmlMsg.c('body').t(msg);
|
||||
}
|
||||
|
||||
if (jsxc.xmpp.carbons.enabled && msg.match(/^\?OTR/)) {
|
||||
xmlMsg.up().c("private", {
|
||||
@@ -1078,6 +1315,12 @@ jsxc.xmpp = {
|
||||
});
|
||||
}
|
||||
|
||||
if (msg.match(/^\?OTR/)) {
|
||||
xmlMsg.up().c("no-permanent-store", {
|
||||
xmlns: jsxc.CONST.NS.HINTS
|
||||
});
|
||||
}
|
||||
|
||||
if (type === 'chat' && (isBar || jsxc.xmpp.conn.caps.hasFeatureByJid(jid, Strophe.NS.RECEIPTS))) {
|
||||
// Add request according to XEP-0184
|
||||
xmlMsg.up().c('request', {
|
||||
@@ -1085,12 +1328,19 @@ jsxc.xmpp = {
|
||||
});
|
||||
}
|
||||
|
||||
if (jsxc.xmpp.conn.chatstates && !jsxc.xmpp.chatState.isDisabled()) {
|
||||
// send active event (XEP-0085)
|
||||
xmlMsg.up().c('active', {
|
||||
xmlns: Strophe.NS.CHATSTATES
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.xmpp.conn.send(xmlMsg);
|
||||
},
|
||||
|
||||
/**
|
||||
* This function loads a vcard.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp
|
||||
* @param bid
|
||||
* @param cb
|
||||
@@ -1114,7 +1364,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Retrieves capabilities.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp
|
||||
* @param jid
|
||||
* @returns List of known capabilities
|
||||
@@ -1136,7 +1386,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Test if jid has given features
|
||||
*
|
||||
*
|
||||
* @param {string} jid Jabber id
|
||||
* @param {string[]} feature Single feature or list of features
|
||||
* @param {Function} cb Called with the result as first param.
|
||||
@@ -1188,7 +1438,7 @@ jsxc.xmpp = {
|
||||
|
||||
/**
|
||||
* Handle carbons (XEP-0280);
|
||||
*
|
||||
*
|
||||
* @namespace jsxc.xmpp.carbons
|
||||
*/
|
||||
jsxc.xmpp.carbons = {
|
||||
@@ -1196,7 +1446,7 @@ jsxc.xmpp.carbons = {
|
||||
|
||||
/**
|
||||
* Enable carbons.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp.carbons
|
||||
* @param cb callback
|
||||
*/
|
||||
@@ -1222,7 +1472,7 @@ jsxc.xmpp.carbons = {
|
||||
|
||||
/**
|
||||
* Disable carbons.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp.carbons
|
||||
* @param cb callback
|
||||
*/
|
||||
@@ -1248,7 +1498,7 @@ jsxc.xmpp.carbons = {
|
||||
|
||||
/**
|
||||
* Enable/Disable carbons depending on options key.
|
||||
*
|
||||
*
|
||||
* @memberOf jsxc.xmpp.carbons
|
||||
* @param err error message
|
||||
*/
|
||||
@@ -1274,13 +1524,13 @@ jsxc.xmpp.carbons = {
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -0,0 +1,268 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Source: jsxc.lib.xmpp.mam.js</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Source: jsxc.lib.xmpp.mam.js</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
<article>
|
||||
<pre class="prettyprint source linenums"><code>/**
|
||||
* Implements XEP-0313: Message Archive Management.
|
||||
*
|
||||
* @namespace jsxc.xmpp.mam
|
||||
* @see {@link https://xmpp.org/extensions/xep-0313.html}
|
||||
*/
|
||||
jsxc.xmpp.mam = {
|
||||
conn: null
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.init = function() {
|
||||
var self = jsxc.xmpp.mam;
|
||||
|
||||
self.conn = jsxc.xmpp.conn;
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.isEnabled = function() {
|
||||
var mamOptions = jsxc.options.get('mam') || {};
|
||||
|
||||
var features = jsxc.storage.getUserItem('features') || [];
|
||||
var hasFeatureMam2 = features.indexOf(Strophe.NS.MAM) >= 0;
|
||||
|
||||
return hasFeatureMam2 && mamOptions.enable;
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.nextMessages = function(bid) {
|
||||
var self = jsxc.xmpp.mam;
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
var lastArchiveUid = buddyData.lastArchiveUid;
|
||||
var queryId = self.conn.getUniqueId();
|
||||
var mamOptions = jsxc.options.get('mam') || {};
|
||||
var history = jsxc.storage.getUserItem('history', bid) || [];
|
||||
|
||||
if (buddyData.archiveExhausted) {
|
||||
jsxc.debug('No more archived messages.');
|
||||
return;
|
||||
}
|
||||
|
||||
var queryOptions = {
|
||||
queryid: queryId,
|
||||
before: lastArchiveUid || '',
|
||||
with: bid,
|
||||
onMessage: function() {
|
||||
var args = Array.from(arguments);
|
||||
args.unshift(bid);
|
||||
self.onMessage.apply(this, args);
|
||||
return true;
|
||||
},
|
||||
onComplete: function() {
|
||||
var args = Array.from(arguments);
|
||||
args.unshift(bid);
|
||||
self.onComplete.apply(this, args);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
var oldestMessageId = history[history.length - 1];
|
||||
|
||||
if (oldestMessageId && !lastArchiveUid) {
|
||||
var oldestMessage = new jsxc.Message(oldestMessageId);
|
||||
queryOptions.end = (new Date(oldestMessage.stamp)).toISOString();
|
||||
}
|
||||
|
||||
if (mamOptions.max) {
|
||||
queryOptions.max = mamOptions.max;
|
||||
}
|
||||
|
||||
self.conn.mam.query(undefined, queryOptions);
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.onMessage = function(bid, stanza) {
|
||||
stanza = $(stanza);
|
||||
var result = stanza.find('result[xmlns="' + Strophe.NS.MAM + '"]');
|
||||
var queryId = result.attr('queryid');
|
||||
|
||||
if (result.length !== 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
var forwarded = result.find('forwarded[xmlns="' + jsxc.CONST.NS.FORWARD + '"]');
|
||||
var message = forwarded.find('message');
|
||||
var messageId = $(message).attr('id');
|
||||
|
||||
if (message.length !== 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
var from = message.attr('from');
|
||||
var to = message.attr('to');
|
||||
|
||||
if (jsxc.jidToBid(from) !== bid && jsxc.jidToBid(to) !== bid) {
|
||||
return;
|
||||
}
|
||||
|
||||
var delay = forwarded.find('delay[xmlns="urn:xmpp:delay"]');
|
||||
var stamp = (delay.length > 0) ? new Date(delay.attr('stamp')) : new Date();
|
||||
stamp = stamp.getTime();
|
||||
|
||||
var body = $(message).find('body:first').text();
|
||||
|
||||
if (!body || body.match(/\?OTR/i)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var direction = (jsxc.jidToBid(to) === bid) ? jsxc.Message.OUT : jsxc.Message.IN;
|
||||
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
var textarea = win.find('.jsxc_textarea');
|
||||
if (textarea.find('[id="' + messageId + '"]').length === 0) {
|
||||
var pseudoChatElement = $('<div>');
|
||||
pseudoChatElement.attr('id', messageId.replace(/:/g, '-'));
|
||||
pseudoChatElement.attr('data-queryId', queryId);
|
||||
|
||||
var lastMessage = textarea.find('[data-queryId="' + queryId + '"]').last();
|
||||
var history = jsxc.storage.getUserItem('history', bid) || [];
|
||||
|
||||
if (history.indexOf(messageId) < 0) {
|
||||
if (lastMessage.length === 0) {
|
||||
textarea.prepend(pseudoChatElement);
|
||||
history.push(messageId);
|
||||
} else {
|
||||
lastMessage.after(pseudoChatElement);
|
||||
history.splice(history.indexOf(lastMessage.attr('id').replace(/-/g, ':')), 0, messageId);
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('history', bid, history);
|
||||
}
|
||||
|
||||
jsxc.gui.window.postMessage({
|
||||
_uid: messageId,
|
||||
bid: bid,
|
||||
direction: direction,
|
||||
msg: body,
|
||||
encrypted: false,
|
||||
forwarded: true,
|
||||
stamp: stamp
|
||||
});
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.onComplete = function(bid, stanza) {
|
||||
stanza = $(stanza);
|
||||
var fin = stanza.find('fin[xmlns="' + Strophe.NS.MAM + '"]');
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
buddyData.archiveExhausted = fin.attr('complete') === 'true';
|
||||
buddyData.lastArchiveUid = fin.find('first').text();
|
||||
|
||||
if (buddyData.archiveExhausted) {
|
||||
win.find('.jsxc_fade').removeClass('jsxc_mam-enable');
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('buddy', bid, buddyData);
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.initWindow = function(ev, win) {
|
||||
var self = jsxc.xmpp.mam;
|
||||
|
||||
if (!jsxc.xmpp.conn && jsxc.master) {
|
||||
$(document).one('attached.jsxc', function() {
|
||||
self.initWindow(null, win);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!jsxc.master) {
|
||||
return;
|
||||
}
|
||||
|
||||
$(document).on('features.jsxc', function() {
|
||||
jsxc.xmpp.mam.addLoadButton(win);
|
||||
});
|
||||
|
||||
var features = jsxc.storage.getUserItem('features');
|
||||
if (features !== null) {
|
||||
// features.jsxc was already fired
|
||||
jsxc.xmpp.mam.addLoadButton(win);
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.addLoadButton = function(win) {
|
||||
if (!jsxc.xmpp.mam.isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var classNameShow = 'jsxc_show';
|
||||
var classNameMamEnable = 'jsxc_mam-enable';
|
||||
var bid = win.attr('data-bid');
|
||||
|
||||
var element = $('<div>');
|
||||
element.addClass('jsxc_mam-load-more');
|
||||
element.appendTo(win.find('.slimScrollDiv'));
|
||||
element.click(function() {
|
||||
jsxc.xmpp.mam.nextMessages(bid);
|
||||
});
|
||||
element.text($.t('Load_older_messages'));
|
||||
|
||||
win.find('.jsxc_textarea').scroll(function() {
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
|
||||
if (this.scrollTop < 42 && !buddyData.archiveExhausted) {
|
||||
element.addClass(classNameShow);
|
||||
} else {
|
||||
element.removeClass(classNameShow);
|
||||
}
|
||||
|
||||
if (!buddyData.archiveExhausted) {
|
||||
win.find('.jsxc_fade').addClass(classNameMamEnable);
|
||||
}
|
||||
});
|
||||
|
||||
win.find('.jsxc_textarea').scroll();
|
||||
};
|
||||
|
||||
$(document).on('attached.jsxc', jsxc.xmpp.mam.init);
|
||||
$(document).on('init.window.jsxc', jsxc.xmpp.mam.initWindow);
|
||||
</code></pre>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
+17
-17
@@ -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#line1448">line 1448</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1457">line 1457</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#line930">line 930</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line985">line 985</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -466,7 +466,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#line572">line 572</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line629">line 629</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -643,7 +643,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#line536">line 536</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line593">line 593</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#line1261">line 1261</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1315">line 1315</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -856,7 +856,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#line105">line 105</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line108">line 108</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#line1173">line 1173</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1228">line 1228</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1304,7 +1304,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#line452">line 452</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line509">line 509</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1435,7 +1435,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#line481">line 481</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line538">line 538</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#line906">line 906</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line961">line 961</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#line1138">line 1138</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1193">line 1193</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -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#line1216">line 1216</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1270">line 1270</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#line1232">line 1232</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line1286">line 1286</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2267,7 +2267,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#line120">line 120</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line125">line 125</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2398,7 +2398,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#line364">line 364</a>
|
||||
<a href="jsxc.lib.muc.js.html">jsxc.lib.muc.js</a>, <a href="jsxc.lib.muc.js.html#line421">line 421</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2440,13 +2440,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line193">line 193</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line196">line 196</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -567,7 +567,7 @@ default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line252">line 252</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line255">line 255</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -978,7 +978,7 @@ default api.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line205">line 205</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line208">line 208</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1143,7 +1143,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line174">line 174</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line177">line 177</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1225,7 +1225,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line236">line 236</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line239">line 239</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1357,7 +1357,7 @@ messages.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line267">line 267</a>
|
||||
<a href="jsxc.lib.notification.js.html">jsxc.lib.notification.js</a>, <a href="jsxc.lib.notification.js.html#line270">line 270</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1399,13 +1399,13 @@ messages.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+401
-141
@@ -290,6 +290,130 @@
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".chatState"><span class="type-signature">(static) </span>chatState<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Default option for chat state notifications
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line291">line 291</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".defaultAvatar"><span class="type-signature">(static) </span>defaultAvatar<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
If no avatar is found, this function is called.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line177">line 177</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".defaultLang"><span class="type-signature">(static) </span>defaultLang<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
@@ -396,7 +520,69 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line232">line 232</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line230">line 230</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".fileTransfer"><span class="type-signature">(static) </span>fileTransfer<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Options for file transfer.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line283">line 283</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -600,6 +786,130 @@
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".mam"><span class="type-signature">(static) </span>mam<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Options for Message Archive Management (XEP-0313)
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line309">line 309</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".maxStorableSize"><span class="type-signature">(static) </span>maxStorableSize<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Maximal storage size for attachments received via data channels (webrtc).
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line280">line 280</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".muteNotification"><span class="type-signature">(static) </span>muteNotification<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
@@ -830,7 +1140,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line263">line 263</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line261">line 261</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1202,7 +1512,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line246">line 246</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line244">line 244</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1220,6 +1530,85 @@
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".screenMediaExtension"><span class="type-signature">(static) </span>screenMediaExtension<span class="type-signature"> :Object</span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Download urls to screen media extensions.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h5>Type:</h5>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<span class="param-type">Object</span>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line301">line 301</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-see">See:</dt>
|
||||
<dd class="tag-see">
|
||||
<ul>
|
||||
<li>example extensions <a href="https://github.com/otalk/getScreenMedia">https://github.com/otalk/getScreenMedia</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".timeout"><span class="type-signature">(static) </span>timeout<span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
@@ -1324,7 +1713,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line243">line 243</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line241">line 241</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1412,135 +1801,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".defaultAvatar"><span class="type-signature">(static) </span>defaultAvatar<span class="signature">(jid)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
If no avatar is found, this function is called.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>This:</h5>
|
||||
<ul><li>{jQuery}</li></ul>
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>jid</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Jid of that user.</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line177">line 177</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".displayRosterMinimized"><span class="type-signature">(static) </span>displayRosterMinimized<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||
|
||||
@@ -1632,7 +1892,7 @@ connection is found.
|
||||
|
||||
|
||||
<div class="description">
|
||||
This function is called if a login form was found, but before any
|
||||
This function is called if a login form was found, but before any
|
||||
modification is done to it.
|
||||
</div>
|
||||
|
||||
@@ -1808,7 +2068,7 @@ modification is done to it.
|
||||
|
||||
<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#line216">line 216</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line234">line 234</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1972,7 +2232,7 @@ modification is done to it.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line221">line 221</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line219">line 219</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2149,7 +2409,7 @@ modification is done to it.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line196">line 196</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line194">line 194</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2293,7 +2553,7 @@ modification is done to it.
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line205">line 205</a>
|
||||
<a href="jsxc.lib.options.js.html">jsxc.lib.options.js</a>, <a href="jsxc.lib.options.js.html#line203">line 203</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2447,7 +2707,7 @@ modification is done to it.
|
||||
|
||||
<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#line232">line 232</a>
|
||||
<a href="jsxc.lib.js.html">jsxc.lib.js</a>, <a href="jsxc.lib.js.html#line250">line 250</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2489,13 +2749,13 @@ modification is done to it.
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+14
-14
@@ -224,7 +224,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line500">line 500</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line504">line 504</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -355,7 +355,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line349">line 349</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line353">line 353</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -486,7 +486,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line68">line 68</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line70">line 70</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -586,7 +586,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line416">line 416</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line420">line 420</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -735,7 +735,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line514">line 514</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line518">line 518</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -866,7 +866,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line314">line 314</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line318">line 318</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.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line331">line 331</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line335">line 335</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1225,7 +1225,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line251">line 251</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line255">line 255</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1646,7 +1646,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line381">line 381</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line385">line 385</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1800,7 +1800,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line54">line 54</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line56">line 56</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2005,7 +2005,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line284">line 284</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line288">line 288</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2154,7 +2154,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line296">line 296</a>
|
||||
<a href="jsxc.lib.otr.js.html">jsxc.lib.otr.js</a>, <a href="jsxc.lib.otr.js.html#line300">line 300</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2214,13 +2214,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+14
-14
@@ -298,7 +298,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line89">line 89</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line109">line 109</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -425,7 +425,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line21">line 21</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line37">line 37</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -573,7 +573,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line106">line 106</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line126">line 126</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -737,7 +737,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line219">line 219</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line239">line 239</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -986,7 +986,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line269">line 269</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line289">line 289</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1163,7 +1163,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line232">line 232</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line252">line 252</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1335,7 +1335,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line125">line 125</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line145">line 145</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1461,7 +1461,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line143">line 143</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line163">line 163</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1605,7 +1605,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line595">line 595</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line620">line 620</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1804,7 +1804,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line39">line 39</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line55">line 55</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2044,7 +2044,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line165">line 165</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line185">line 185</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2284,7 +2284,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line198">line 198</a>
|
||||
<a href="jsxc.lib.storage.js.html">jsxc.lib.storage.js</a>, <a href="jsxc.lib.storage.js.html#line218">line 218</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -2326,13 +2326,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+314
-2
@@ -102,6 +102,318 @@
|
||||
|
||||
|
||||
|
||||
<h3 class="subsection-title">Methods</h3>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".execMaster"><span class="type-signature">(static) </span>execMaster<span class="signature">(cmd, params)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Execute command in master tab.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>cmd</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">String</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Command</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>params</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">Array.<String></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">List of parameters</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.tab.js.html">jsxc.lib.tab.js</a>, <a href="jsxc.lib.tab.js.html#line41">line 41</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".execSlave"><span class="type-signature">(static) </span>execSlave<span class="signature">(cmd, params)</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Execute command in all slave tabs.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>cmd</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">String</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Command</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>params</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">Array.<String></span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">List of parameters</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.tab.js.html">jsxc.lib.tab.js</a>, <a href="jsxc.lib.tab.js.html#line54">line 54</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -116,13 +428,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:05 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
+1306
-15
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -278,7 +278,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line235">line 235</a>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line239">line 239</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -464,7 +464,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line165">line 165</a>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line169">line 169</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -677,7 +677,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line146">line 146</a>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line150">line 150</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -974,7 +974,7 @@
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line299">line 299</a>
|
||||
<a href="jsxc.lib.xmpp.bookmarks.js.html">jsxc.lib.xmpp.bookmarks.js</a>, <a href="jsxc.lib.xmpp.bookmarks.js.html#line303">line 303</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1016,13 +1016,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:06 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
@@ -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#line1161">line 1161</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1411">line 1411</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#line1201">line 1201</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1451">line 1451</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#line1175">line 1175</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1425">line 1425</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#line1227">line 1227</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1477">line 1477</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -498,13 +498,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:06 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
+251
-11
@@ -106,6 +106,15 @@
|
||||
|
||||
<dt><a href="jsxc.xmpp.carbons.html">carbons</a></dt>
|
||||
<dd></dd>
|
||||
|
||||
<dt><a href="jsxc.xmpp.chatState.html">chatState</a></dt>
|
||||
<dd></dd>
|
||||
|
||||
<dt><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></dt>
|
||||
<dd></dd>
|
||||
|
||||
<dt><a href="jsxc.xmpp.mam.html">mam</a></dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@@ -242,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#line946">line 946</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1159">line 1159</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -368,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#line1094">line 1094</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1344">line 1344</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -555,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#line1117">line 1117</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1367">line 1367</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -739,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#line1071">line 1071</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1321">line 1321</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -870,7 +879,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#line183">line 183</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line185">line 185</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -918,6 +927,237 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".onHeadlineMessage"><span class="type-signature">(static) </span>onHeadlineMessage<span class="signature">(stanza)</span><span class="type-signature"> → {Boolean}</span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Process message stanzas of type headline.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Parameters:</h5>
|
||||
|
||||
|
||||
<table class="params">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th>Name</th>
|
||||
|
||||
|
||||
<th>Type</th>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td class="name"><code>stanza</code></td>
|
||||
|
||||
|
||||
<td class="type">
|
||||
|
||||
|
||||
<span class="param-type">String</span>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<td class="description last">Message stanza of type headline</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1073">line 1073</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h5>Returns:</h5>
|
||||
|
||||
|
||||
|
||||
|
||||
<dl>
|
||||
<dt>
|
||||
Type
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<span class="param-type">Boolean</span>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".onVersionRequest"><span class="type-signature">(static) </span>onVersionRequest<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="description">
|
||||
Respond to version request (XEP-0092).
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1102">line 1102</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h4 class="name" id=".removeBuddy"><span class="type-signature">(static) </span>removeBuddy<span class="signature">(jid)</span><span class="type-signature"></span></h4>
|
||||
|
||||
@@ -1019,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#line981">line 981</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1194">line 1194</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1173,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#line925">line 925</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1138">line 1138</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1335,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#line1019">line 1019</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line1232">line 1232</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1417,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#line388">line 388</a>
|
||||
<a href="jsxc.lib.xmpp.js.html">jsxc.lib.xmpp.js</a>, <a href="jsxc.lib.xmpp.js.html#line403">line 403</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
@@ -1459,13 +1699,13 @@
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<br class="clear">
|
||||
|
||||
<footer>
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.2</a> on Fri Oct 28 2016 13:29:06 GMT+0200 (CEST)
|
||||
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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
|
||||
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -0,0 +1,138 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>JSDoc: Namespace: mam</title>
|
||||
|
||||
<script src="scripts/prettify/prettify.js"> </script>
|
||||
<script src="scripts/prettify/lang-css.js"> </script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<h1 class="page-title">Namespace: mam</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section>
|
||||
|
||||
<header>
|
||||
|
||||
<h2>
|
||||
<span class="ancestors"><a href="jsxc.html">jsxc</a><a href="jsxc.xmpp.html">.xmpp</a>.</span>mam</h2>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<article>
|
||||
<div class="container-overview">
|
||||
|
||||
|
||||
<div class="description">Implements XEP-0313: Message Archive Management.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dl class="details">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-source">Source:</dt>
|
||||
<dd class="tag-source"><ul class="dummy"><li>
|
||||
<a href="jsxc.lib.xmpp.mam.js.html">jsxc.lib.xmpp.mam.js</a>, <a href="jsxc.lib.xmpp.mam.js.html#line1">line 1</a>
|
||||
</li></ul></dd>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dt class="tag-see">See:</dt>
|
||||
<dd class="tag-see">
|
||||
<ul>
|
||||
<li><a href="https://xmpp.org/extensions/xep-0313.html">https://xmpp.org/extensions/xep-0313.html</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="jsxc.Message.html">Message</a></li></ul><h3>Namespaces</h3><ul><li><a href="jsxc.html">jsxc</a></li><li><a href="jsxc.fileTransfer.html">fileTransfer</a></li><li><a href="jsxc.gui.html">gui</a></li><li><a href="jsxc.gui.dialog.html">dialog</a></li><li><a href="jsxc.gui.queryActions.html">queryActions</a></li><li><a href="jsxc.gui.roster.html">roster</a></li><li><a href="jsxc.gui.window.html">window</a></li><li><a href="jsxc.muc.html">muc</a></li><li><a href="jsxc.notification.html">notification</a></li><li><a href="jsxc.options.html">options</a></li><li><a href="jsxc.otr.html">otr</a></li><li><a href="jsxc.storage.html">storage</a></li><li><a href="jsxc.tab.html">tab</a></li><li><a href="jsxc.webrtc.html">webrtc</a></li><li><a href="jsxc.xmpp.html">xmpp</a></li><li><a href="jsxc.xmpp.bookmarks.html">bookmarks</a></li><li><a href="jsxc.xmpp.carbons.html">carbons</a></li><li><a href="jsxc.xmpp.chatState.html">chatState</a></li><li><a href="jsxc.xmpp.httpUpload.html">httpUpload</a></li><li><a href="jsxc.xmpp.mam.html">mam</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||
</nav>
|
||||
|
||||
<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)
|
||||
</footer>
|
||||
|
||||
<script> prettyPrint(); </script>
|
||||
<script src="scripts/linenumber.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -117,6 +117,7 @@ $(function() {
|
||||
localStorage.setItem('bosh-url', url);
|
||||
localStorage.setItem('xmpp-domain', domain);
|
||||
|
||||
jsxc.options.xmpp.url = url;
|
||||
settings.xmpp.url = url;
|
||||
settings.xmpp.domain = domain;
|
||||
|
||||
|
||||
+1
-1
Submodule lib/strophe.jinglejs updated: 651a2ba8d2...aac6d4610b
@@ -0,0 +1,312 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "يتم تسجيل الدخول…",
|
||||
"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,
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"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
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+18
-10
@@ -56,7 +56,7 @@
|
||||
"Deny": "Ablehnen",
|
||||
"Approve": "Bestätigen",
|
||||
"Remove_buddy": "Kontakt entfernen",
|
||||
"You_are_about_to_remove_": "Du bist gerade dabei __bid_name__ (<b>__bid_jid__</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.",
|
||||
"You_are_about_to_remove_": "Du bist gerade dabei __bid_name__ (<b>__bid_jid__</b>) von deiner Kontaktliste zu entfernen. Alle zugehörigen Chats werden geschlossen.",
|
||||
"Continue_without_chat": "Weiter ohne Chat",
|
||||
"Please_wait": "Bitte warten",
|
||||
"Login_failed": "Chat-Anmeldung fehlgeschlagen",
|
||||
@@ -95,7 +95,7 @@
|
||||
"Remove": "Löschen",
|
||||
"Online_help": "Online Hilfe",
|
||||
"FN": "Name",
|
||||
"N": " ",
|
||||
"N": "Name",
|
||||
"FAMILY": "Familienname",
|
||||
"GIVEN": "Vorname",
|
||||
"NICKNAME": "Spitzname",
|
||||
@@ -110,7 +110,7 @@
|
||||
"TEL": "Telefon",
|
||||
"NUMBER": "Nummer",
|
||||
"EMAIL": "E-Mail",
|
||||
"USERID": " ",
|
||||
"USERID": "Benutzerkennung",
|
||||
"ORG": "Organisation",
|
||||
"ORGNAME": "Name",
|
||||
"ORGUNIT": "Abteilung",
|
||||
@@ -118,7 +118,7 @@
|
||||
"ROLE": "Rolle",
|
||||
"BDAY": "Geburtstag",
|
||||
"DESC": "Beschreibung",
|
||||
"PHOTO": " ",
|
||||
"PHOTO": "Foto",
|
||||
"send_message": "Sende Nachricht",
|
||||
"get_info": "Benutzerinformationen",
|
||||
"Settings": "Einstellungen",
|
||||
@@ -240,6 +240,8 @@
|
||||
"message_not_send_item-not-found": "Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert",
|
||||
"message_not_send_forbidden": "Deine Nachricht wurde nicht versandt, da du kein \"Mitspracherecht\" hast",
|
||||
"message_not_send_not-acceptable": "Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist",
|
||||
"message_not_send_resource-unavailable": "Ihre Nachricht wurde nicht gesendet, weil Ihr Gesprächspartner sich nicht verbunden hat",
|
||||
"message_not_send_remote-server-not-found": "Ihre Nachricht wurde nicht gesendet, weil keine Server-zu-Server Verbindung aufgebaut werden konnte",
|
||||
"This_room_has_been_closed": "Diese Gruppe wurde geschlossen",
|
||||
"Room_logging_is_enabled": "Gesprächsverlauf kann öffentlich einsehbar sein",
|
||||
"A_password_is_required": "Es wird ein Passwort benötigt",
|
||||
@@ -265,10 +267,10 @@
|
||||
"Use_local_audio_device": "Nutze eigenes Audio Gerät",
|
||||
"Use_local_video_device": "Benutze eigene Webcam",
|
||||
"is_": "ist __status__",
|
||||
"You_received_a_message_from_an_unknown_sender_": "Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?",
|
||||
"You_received_a_message_from_an_unknown_sender_": "Du hast eine Nachricht von einem unbekannten Absender erhalten (__sender__). Möchtest du sie sehen?",
|
||||
"Your_roster_is_empty_add_": "Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>",
|
||||
"onsmp_explanation_question": "Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.",
|
||||
"onsmp_explanation_secret": "Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.",
|
||||
"onsmp_explanation_question": "Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.",
|
||||
"onsmp_explanation_secret": "Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.",
|
||||
"from_sender": "von __sender__",
|
||||
"Verified_private_conversation_started": "Verifizierte private Konversation gestartet.",
|
||||
"Unverified_private_conversation_started": "Unverifizierte private Konversation gestartet.",
|
||||
@@ -283,9 +285,9 @@
|
||||
"Change": "Ändern",
|
||||
"Send_file": "Datei senden",
|
||||
"setting-explanation-carbon": "Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.",
|
||||
"setting-explanation-login": "Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.",
|
||||
"setting-explanation-login": "Wenn diese Option aktiviert ist, wird der Chat beim Anmelden automatisch gestartet.",
|
||||
"setting-explanation-priority": "Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.",
|
||||
"setting-explanation-xmpp": "Diese Optionen werden für die Verbindung zum XMPP server genutzt.",
|
||||
"setting-explanation-xmpp": "Diese Optionen werden für die Verbindung zum XMPP Server genutzt.",
|
||||
"_is_composing": " tippt gerade...",
|
||||
"_are_composing": " tippen gerade...",
|
||||
"Chat_state_notifications": "Statusbenachrichtigungen",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": "Bitte installieren Sie die Erweiterung um ihren Bildschirm zu teilen: ",
|
||||
"Connection_accepted": "Verbindung angenommen",
|
||||
"Stream_terminated": "Stream beendet",
|
||||
"Close_all": "Schließe alle"
|
||||
"Close_all": "Schließe alle",
|
||||
"Notification": "Benachrichtigung",
|
||||
"Unreadable_OTR_message": "Unlesbare OTR Nachricht verworfen",
|
||||
"Load_older_messages": "Ältere Nachrichten laden",
|
||||
"Message_history": "Nachrichten Verlauf",
|
||||
"setting-mam-enable": "Falls aktiviert können Sie gespeicherte Nachrichten vom Server abrufen",
|
||||
"You_have_to_go_online_": "Du musst online sein um diese Aktion auszuführen."
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+20
-14
@@ -95,7 +95,7 @@
|
||||
"Remove": "Remove",
|
||||
"Online_help": "Online help",
|
||||
"FN": "Full name",
|
||||
"N": " ",
|
||||
"N": "Name",
|
||||
"FAMILY": "Family name",
|
||||
"GIVEN": "Given name",
|
||||
"NICKNAME": "Nickname",
|
||||
@@ -110,7 +110,7 @@
|
||||
"TEL": "Telephone",
|
||||
"NUMBER": "Number",
|
||||
"EMAIL": "Email",
|
||||
"USERID": " ",
|
||||
"USERID": "User ID",
|
||||
"ORG": "Organization",
|
||||
"ORGNAME": "Name",
|
||||
"ORGUNIT": "Unit",
|
||||
@@ -118,7 +118,7 @@
|
||||
"ROLE": "Role",
|
||||
"BDAY": "Birthday",
|
||||
"DESC": "Description",
|
||||
"PHOTO": " ",
|
||||
"PHOTO": "Photo",
|
||||
"send_message": "Send message",
|
||||
"get_info": "Show information",
|
||||
"Settings": "Settings",
|
||||
@@ -236,10 +236,12 @@
|
||||
"muc_removed_info_membersonly": "__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member",
|
||||
"muc_removed_shutdown": "You have been removed from the room, because the MUC service is being shut down",
|
||||
"Reason": "Reason",
|
||||
"message_not_send": "Your message was not send because of an error",
|
||||
"message_not_send_item-not-found": "Your message was not send because this room does not exist",
|
||||
"message_not_send_forbidden": "Your message was not send because you have no voice in this room",
|
||||
"message_not_send_not-acceptable": "Your message was not send because you are no occupant of this room",
|
||||
"message_not_send": "Your message was not sent because of an error",
|
||||
"message_not_send_item-not-found": "Your message was not sent because this room does not exist",
|
||||
"message_not_send_forbidden": "Your message was not sent because you have no voice in this room",
|
||||
"message_not_send_not-acceptable": "Your message was not sent because you are no occupant of this room",
|
||||
"message_not_send_resource-unavailable": "Your message was not sent because your interlocutor isn't available or connected",
|
||||
"message_not_send_remote-server-not-found": "Your message was not sent because the server-to-server connection failed",
|
||||
"This_room_has_been_closed": "This room has been closed",
|
||||
"Room_logging_is_enabled": "Room logging is enabled",
|
||||
"A_password_is_required": "A password is required",
|
||||
@@ -265,13 +267,13 @@
|
||||
"Use_local_audio_device": "Use local audio device.",
|
||||
"Use_local_video_device": "Use local video device.",
|
||||
"is_": "is __status__",
|
||||
"You_received_a_message_from_an_unknown_sender_": "You received a message from an unknown sender (__sender__) Do you want to display them?",
|
||||
"You_received_a_message_from_an_unknown_sender_": "You received a message from an unknown sender (__sender__). Do you want to display them?",
|
||||
"Your_roster_is_empty_add_": "Your roster is empty, add a <a>new contact</a>",
|
||||
"onsmp_explanation_question": "You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.",
|
||||
"onsmp_explanation_secret": "You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.",
|
||||
"onsmp_explanation_question": "Your contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.",
|
||||
"onsmp_explanation_secret": "Your contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.",
|
||||
"from_sender": "from __sender__",
|
||||
"Verified_private_conversation_started": "Verified Private conversation started.",
|
||||
"Unverified_private_conversation_started": "Unverified Private conversation started.",
|
||||
"Verified_private_conversation_started": "Verified private conversation started.",
|
||||
"Unverified_private_conversation_started": "Unverified private conversation started.",
|
||||
"Bookmark": "Bookmark",
|
||||
"Auto-join": "Auto-join",
|
||||
"Edit_bookmark": "Edit bookmark",
|
||||
@@ -301,6 +303,10 @@
|
||||
"Stream_terminated": "Stream terminated",
|
||||
"Close_all": "Close all",
|
||||
"Notification": "Notification",
|
||||
"Unreadable_OTR_message": "Unreadable OTR message omitted"
|
||||
"Unreadable_OTR_message": "Unreadable OTR message omitted",
|
||||
"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.",
|
||||
"You_have_to_go_online_": "You have to go online to execute this operation."
|
||||
}
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"message_not_send_item-not-found": "Tu mensaje no fue enviado debido a que esta sala no existe",
|
||||
"message_not_send_forbidden": "Tu mensaje no fue enviado debido a que no tienes voz en esta sala",
|
||||
"message_not_send_not-acceptable": "Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ",
|
||||
"message_not_send_resource-unavailable": "Tu mensaje no fue enviado porque tu interlocutor no está disponible o conectado",
|
||||
"message_not_send_remote-server-not-found": null,
|
||||
"This_room_has_been_closed": "Esta sala ha sido cerrada",
|
||||
"Room_logging_is_enabled": "Log de sala está habilitado",
|
||||
"A_password_is_required": "Se requiere una contraseña",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+10
-2
@@ -240,6 +240,8 @@
|
||||
"message_not_send_item-not-found": "Votre message n'a pu être envoyé parce que ce salon n'existe pas",
|
||||
"message_not_send_forbidden": "Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon",
|
||||
"message_not_send_not-acceptable": "Votre message n'a pas été envoyé car il n'y a personne dans ce salon",
|
||||
"message_not_send_resource-unavailable": "Votre message n'a pas été envoyé parce que votre interlocuteur n'est pas connecté ou disponible",
|
||||
"message_not_send_remote-server-not-found": "Votre message n'a pas été envoyé car la connexion entre serveurs a échouée",
|
||||
"This_room_has_been_closed": "Ce salon a été fermé",
|
||||
"Room_logging_is_enabled": "L'historique du salon est conservé",
|
||||
"A_password_is_required": "Un mot de passe est requis",
|
||||
@@ -267,7 +269,7 @@
|
||||
"is_": "est __status__",
|
||||
"You_received_a_message_from_an_unknown_sender_": "Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?",
|
||||
"Your_roster_is_empty_add_": "Votre liste est vide, ajouter <a>Nouveau contact</a>",
|
||||
"onsmp_explanation_question": "Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.",
|
||||
"onsmp_explanation_question": "Votre contact tente de déterminer si il ou elle vous parle vraiment. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.",
|
||||
"onsmp_explanation_secret": "Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret",
|
||||
"from_sender": "de __sender__",
|
||||
"Verified_private_conversation_started": "La conversation privée vérifiée a démarré.",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": "Veuillez installer l'extension afin d'utiliser le partage d'écran: ",
|
||||
"Connection_accepted": "Connexion acceptée",
|
||||
"Stream_terminated": "Flux terminé",
|
||||
"Close_all": "Tout fermer"
|
||||
"Close_all": "Tout fermer",
|
||||
"Notification": "Notification",
|
||||
"Unreadable_OTR_message": "Message OTR illisible omis",
|
||||
"Load_older_messages": "Charger des messages plus anciens",
|
||||
"Message_history": null,
|
||||
"setting-mam-enable": null,
|
||||
"You_have_to_go_online_": "Vous devez être connecté pour exécuter cette opération"
|
||||
}
|
||||
}
|
||||
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+4
-1
@@ -240,6 +240,7 @@
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"message_not_send_resource-unavailable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
@@ -299,6 +300,8 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": null
|
||||
"Close_all": null,
|
||||
"Notification": null,
|
||||
"Unreadable_OTR_message": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,312 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Inloggen…",
|
||||
"your_connection_is_unencrypted": "Je verbinding is niet versleuteld.",
|
||||
"your_connection_is_encrypted": "Je verbinding is versleuteld.",
|
||||
"your_buddy_closed_the_private_connection": "Je contactpersoon sloot de prive-verbinding.",
|
||||
"start_private": "start privé",
|
||||
"close_private": "Sluit privé",
|
||||
"your_buddy_is_verificated": "Je contactpersoon is geverifieerd.",
|
||||
"you_have_only_a_subscription_in_one_way": "Je hebt een eenrichtingsabonnement.",
|
||||
"authentication_query_sent": "Verificatie vraag gestuurd.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Je bericht is niet verzonden. Beëindig prive gesprek.",
|
||||
"unencrypted_message_received": "Ongecodeerde bericht ontvangen",
|
||||
"not_available": "Niet beschikbaar",
|
||||
"no_connection": "Geen verbinding!",
|
||||
"relogin": "opnieuw inloggen",
|
||||
"trying_to_start_private_conversation": "Proberen om privé-gesprek te beginnen!",
|
||||
"Verified": "Geverifieerd",
|
||||
"Unverified": "Ongeverifieerd",
|
||||
"private_conversation_aborted": "Privé-gesprek afgebroken!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Je contact sloot het Privé-gesprek! Doe hetzelfde.",
|
||||
"conversation_is_now_verified": "Gesprek is geverifieerd.",
|
||||
"authentication_failed": "Verificatie mislukt.",
|
||||
"Creating_your_private_key_": "Een persoonlijke sleutel maken. Dit kan een tijdje duren.",
|
||||
"Authenticating_a_buddy_helps_": "Authenticatie met een contact helpt ervoor te zorgen dat de persoon met wie u praat echt de persoon is die ze beweert te zijn.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Hoe wilt u verificeren __bid_name__ (<b>__bid_jid__</b>)?",
|
||||
"Select_method": "Selectie methode...",
|
||||
"Manual": "Handleiding",
|
||||
"Question": "Vraag",
|
||||
"Secret": "Geheim",
|
||||
"To_verify_the_fingerprint_": "Neem via een ander betrouwbaar kanaal, contact op met uw gesprekspartner om de vingerafdruk te controleren. Bijvoorbeeld per telefoon.",
|
||||
"Your_fingerprint": "Jou vingerafdruk",
|
||||
"Buddy_fingerprint": "Contact vingerafdruk",
|
||||
"Close": "Sluiten",
|
||||
"Compared": "Vergeleken",
|
||||
"To_authenticate_using_a_question_": "Gebruik een vraag om te verificeeren, neem een antwoord alleen bekend bij Jou en je contact.",
|
||||
"Ask": "Vraag",
|
||||
"To_authenticate_pick_a_secret_": "Voor verificatie, kies een geheim alleen bekend is bij jou en je contact.",
|
||||
"Compare": "Vergelijk",
|
||||
"Fingerprints": "Vingerafdrukken",
|
||||
"Authentication": "Verificatie",
|
||||
"Message": "Bericht",
|
||||
"Add_buddy": "Contact toevoegen",
|
||||
"rename_buddy": "contact hernoemen",
|
||||
"delete_buddy": "contact verwijderen",
|
||||
"Login": "Login",
|
||||
"Username": "Gebruikersnaam",
|
||||
"Password": "Wachtwoord",
|
||||
"Cancel": "Annuleer",
|
||||
"Connect": "Verbind",
|
||||
"Type_in_the_full_username_": "Vul de volledige gebruikersnaam en een optionele alias in.",
|
||||
"Alias": "Alias",
|
||||
"Add": "Voeg toe",
|
||||
"Subscription_request": "Abonnementsverzoek",
|
||||
"You_have_a_request_from": "Je hebt een uitnodiging van",
|
||||
"Deny": "Ontken",
|
||||
"Approve": "Toestaan",
|
||||
"Remove_buddy": "Contact verwijderen",
|
||||
"You_are_about_to_remove_": "Je staat op het punt om __bid_name__ (<b>__bid_jid__</b>) van je contactlijst te verwijderen. Alle chats worden afgesloten.",
|
||||
"Continue_without_chat": "Doorgaan zonder chat",
|
||||
"Please_wait": "Even geduld",
|
||||
"Login_failed": "Chat login mislukt",
|
||||
"Sorry_we_cant_authentikate_": "Verificatie is mislukt met de chatserver. Is het paswoord fout?",
|
||||
"Retry": "Terug",
|
||||
"clear_history": "Wis geschiedenis",
|
||||
"New_message_from": "Nieuw bericht van__name__",
|
||||
"Should_we_notify_you_": "Zullen wij u notificeren over nieuwe berichten in de toekomst?",
|
||||
"Please_accept_": "Klik op \"Toestaan\" aan de bovenkant.",
|
||||
"Hide_offline": "Offline contacten verbergen",
|
||||
"Show_offline": "Offline contacten weergeven",
|
||||
"About": "Over",
|
||||
"dnd": "Niet storen",
|
||||
"Mute": "Dempen aan",
|
||||
"Unmute": "Dempen uit",
|
||||
"Subscription": "Abonnement",
|
||||
"both": "Beide",
|
||||
"Status": "Status",
|
||||
"online": "online",
|
||||
"chat": "chat",
|
||||
"away": "afwezig",
|
||||
"xa": "langer afwezig",
|
||||
"offline": "offline",
|
||||
"none": "geen",
|
||||
"Unknown_instance_tag": "Voorbeeld tag onbekend.",
|
||||
"Not_one_of_our_latest_keys": "Niet één van onze laatste sleutels.",
|
||||
"Received_an_unreadable_encrypted_message": "Een niet leesbare versleuteld bericht ontvangen.",
|
||||
"Online": "Online",
|
||||
"Chatty": "Spraakzaam",
|
||||
"Away": "Afwezig",
|
||||
"Extended_away": "Langer afwezig",
|
||||
"Offline": "Offline",
|
||||
"Friendship_request": "Contact verzoek",
|
||||
"Confirm": "Bevestig",
|
||||
"Dismiss": "Afwijzen",
|
||||
"Remove": "Verwijder",
|
||||
"Online_help": "Online hulp",
|
||||
"FN": "Volledige naam",
|
||||
"N": " N ",
|
||||
"FAMILY": "Familienaam",
|
||||
"GIVEN": "Voornaam",
|
||||
"NICKNAME": "Bijnaam",
|
||||
"URL": "URL",
|
||||
"ADR": "Adres",
|
||||
"STREET": "Straatnaam",
|
||||
"EXTADD": "Uitgebreid adres",
|
||||
"LOCALITY": "Plaats",
|
||||
"REGION": "Regio",
|
||||
"PCODE": "Postcode",
|
||||
"CTRY": "Land",
|
||||
"TEL": "Telefoon",
|
||||
"NUMBER": "Nummer",
|
||||
"EMAIL": "E-mail",
|
||||
"USERID": " USERID ",
|
||||
"ORG": "Organisatie",
|
||||
"ORGNAME": "Naam",
|
||||
"ORGUNIT": "Afdeling",
|
||||
"TITLE": "functietitel",
|
||||
"ROLE": "Functie",
|
||||
"BDAY": "Verjaardag",
|
||||
"DESC": "Beschrijving",
|
||||
"PHOTO": " FOTO ",
|
||||
"send_message": "Zend bericht",
|
||||
"get_info": "Gegevens weergeven",
|
||||
"Settings": "Instellingen",
|
||||
"Priority": "Prioriteit",
|
||||
"Save": "Opslaan",
|
||||
"User_settings": "Gebruikersinstellingen",
|
||||
"A_fingerprint_": "Een vingerafdruk wordt gebruikt om er zeker van te zijn dat uw gesprekspartner ook is wie hij of zij zegt te zijn.",
|
||||
"is": "is",
|
||||
"Login_options": "Login options",
|
||||
"BOSH_url": "BOSH URL",
|
||||
"Domain": "Domein",
|
||||
"Resource": "Bron",
|
||||
"On_login": "Tijdens login",
|
||||
"Received_an_unencrypted_message": "Een niet-versleuteld bericht ontvangen",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Sorry, je contact verschaft geen informatie.",
|
||||
"Info_about": "Gegevens van",
|
||||
"Authentication_aborted": "Verificatie afgebroken.",
|
||||
"Authentication_request_received": "Authenticatie verzoek ontvangen.",
|
||||
"Log_in_without_chat": "Zonder chat inloggen",
|
||||
"has_come_online": "is online gekomen",
|
||||
"Unknown_sender": "Afzender onbekend",
|
||||
"Please_allow_access_to_microphone_and_camera": "Klik op \"Toestaan\" aan de bovenkant voor de microfoon en camera.",
|
||||
"Incoming_call": "Inkomend gesprek",
|
||||
"from": "van",
|
||||
"Do_you_want_to_accept_the_call_from": "Wilt u het gesprek accepteren",
|
||||
"Reject": "Weiger",
|
||||
"Accept": "Aanvaard",
|
||||
"hang_up": "ophangen",
|
||||
"snapshot": "momentopname",
|
||||
"mute_my_audio": "mijn geluid dempen",
|
||||
"pause_my_video": "mijn video pauzeren",
|
||||
"fullscreen": "volledige scherm",
|
||||
"Info": "Info",
|
||||
"Local_IP": "Lokaal IP",
|
||||
"Remote_IP": "Extern IP",
|
||||
"Local_Fingerprint": "Lokale vingerafdruk",
|
||||
"Remote_Fingerprint": "Afstand vingerafdruk",
|
||||
"Video_call_not_possible": "Video-gesprek is niet mogelijk. Je contact heeft geen ondersteuning voor video-oproepen.",
|
||||
"Start_video_call": "Video gesprek starten",
|
||||
"Join_chat": "Neem deel aan chat",
|
||||
"Join": "Meedoen",
|
||||
"Room": "Kamer",
|
||||
"Nickname": "Bijnaam",
|
||||
"left_the_building": "__nickname__heeft het gebouw verlaten",
|
||||
"entered_the_room": "__nickname__kwam de kamer binnen",
|
||||
"is_now_known_as": "__newNickname__ is bekend als __oldNickname__",
|
||||
"This_room_is": "Deze kamer is",
|
||||
"muc_hidden": {
|
||||
"keyword": "verborgen",
|
||||
"description": "kan niet worden gevonden via zoeken"
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": "Alleen leden",
|
||||
"description": "Je dient lid te zijn van deze ledenlijst"
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": "gemodereerd",
|
||||
"description": "Alleen personen met \"spraak\" zijn toegestaan om berichten te zenden"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": "niet-anoniem",
|
||||
"description": "Je jabber ID is verlopen voor alle andere deelnemers"
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": "open",
|
||||
"description": "iedereen kan deelnemen"
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": "beschermd wachtwoord",
|
||||
"description": "je dient je correcte wachtwoord in te geven"
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": "aanhoudend",
|
||||
"description": "zal niet worden vernietigd nadat de laatste deelnemer is vertrokken"
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": "publiek",
|
||||
"description": "kan gevonden worden door te zoeken"
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": "semi-anoniem",
|
||||
"description": "je Jabber id is alleen vrijgegeven voor kamer beheerders"
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": "tijdelijk",
|
||||
"description": "zal worden vernietigd nadat de laatste deelnemer is vertrokken"
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": "ongemodereerd",
|
||||
"description": "verzenden van berichten is toegestaan voor iedereen"
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": "niet beveiligd",
|
||||
"description": "je hoeft geen wachtwoord in te voeren"
|
||||
},
|
||||
"Continue": "Doorgaan",
|
||||
"Server": "Server",
|
||||
"Rooms_are_loaded": "Kamers zijn geladen",
|
||||
"Could_load_only": "Alleen aanvullen voor__count__kamers",
|
||||
"muc_explanation": "Vul de kamernaam, optioneel een bijnaam en wachtwoord in om deel te nemen een chat",
|
||||
"You_already_joined_this_room": "Je bent al verbonden met deze kamer",
|
||||
"This_room_will_be_closed": "De kamer wordt gesloten",
|
||||
"Room_not_found_": "Een nieuwe kamer wordt aangemaakt",
|
||||
"Loading_room_information": "Kamer informatie laden",
|
||||
"Destroy": "Vernietigen",
|
||||
"Leave": "Vertrekken",
|
||||
"changed_subject_to": "__nickname__veranderde het onderwerp van de kamer naar \"__subject__\"",
|
||||
"muc_removed_kicked": "Je bent afgemeld van de kamer",
|
||||
"muc_removed_info_kicked": "__nickname__is uit de kamer gegooid",
|
||||
"muc_removed_banned": "Je bent uit de kamer gezet",
|
||||
"muc_removed_info_banned": "__nickname__is uit de kamer gezet",
|
||||
"muc_removed_affiliation": "Je bent verwijderd van de kamer door een verwantschap wijziging",
|
||||
"muc_removed_info_affiliation": "__nickname__is verwijderd van de kamer door een verwantschap wijziging",
|
||||
"muc_removed_membersonly": "Je bent verwijderd van de kamer, omdat de kamer alleen voor leden is. Je bent geen lid.",
|
||||
"muc_removed_info_membersonly": "__nickname__is verwijderd van de kamer, door de wijziging naar alleen voor leden. Je bent geen lid.",
|
||||
"muc_removed_shutdown": "Je bent verwijderd van de kamer, omdat de MUC dienst is uitgeschakeld",
|
||||
"Reason": "Reden",
|
||||
"message_not_send": "Je bericht was niet verzonden door een foutmelding",
|
||||
"message_not_send_item-not-found": "Je bericht was niet verzonden omdat de kamer niet bestaat",
|
||||
"message_not_send_forbidden": "Je bericht was niet verzonden omdat er geen spraak is in deze kamer",
|
||||
"message_not_send_not-acceptable": "Je bericht is niet verzonden omdat je geen deelnemer bent van deze kamer",
|
||||
"message_not_send_resource-unavailable": "Je bericht was niet verzonden omdat je gesprekspartner niet verbonden is",
|
||||
"message_not_send_remote-server-not-found": "Je bericht was niet verzonden omdat de server tot server verbinding faalde",
|
||||
"This_room_has_been_closed": "Deze kamer is gesloten",
|
||||
"Room_logging_is_enabled": "Kamerlog is ingeschakeld",
|
||||
"A_password_is_required": "Een wachtwoord is vereist",
|
||||
"You_are_not_on_the_member_list": "Je staat niet op de ledenlijst",
|
||||
"You_are_banned_from_this_room": "Je bent uit deze kamer gezet",
|
||||
"Your_desired_nickname_": "Je favoriete bijnaam is al in gebruik. Aub kies een andere",
|
||||
"The_maximum_number_": "Het maximum aantal kamer gebruikers is bereikt",
|
||||
"This_room_is_locked_": "Deze kamer is afgesloten",
|
||||
"You_are_not_allowed_to_create_": "Je hebt geen rechten om een kamer aan te maken",
|
||||
"Alert": "alarm",
|
||||
"Call_started": "Gesprek gestart",
|
||||
"Call_terminated": "Gesprek beëindigd",
|
||||
"Carbon_copy": "Carbon kopie",
|
||||
"Enable": "Inschakelen",
|
||||
"jingle_reason_busy": "bezet",
|
||||
"jingle_reason_decline": "afwijzen",
|
||||
"jingle_reason_success": "opgehangen",
|
||||
"Media_failure": "Media storing",
|
||||
"No_local_audio_device": "Lokaal audioapparaat niet aanwezig.",
|
||||
"No_local_video_device": "Lokaal videoapparaat niet aanwezig.",
|
||||
"Ok": "Ok",
|
||||
"PermissionDeniedError": "De media toestemming is geweigerd voor jou of je browser",
|
||||
"Use_local_audio_device": "Lokaal audioapparaat gebruiken.",
|
||||
"Use_local_video_device": "Lokaal videoapparaat gebruiken.",
|
||||
"is_": "is __status__",
|
||||
"You_received_a_message_from_an_unknown_sender_": "U ontvangt een bericht van een onbekende afzender (__sender__). Wilt u om het weergeven?",
|
||||
"Your_roster_is_empty_add_": "Jou rooster is leeg, voeg een <a>nieuw contact</a> toe",
|
||||
"onsmp_explanation_question": "Je contact probeert te bepalen of ze echt met jou praten. Voer om te verifiëren naar uw contact het antwoord in.",
|
||||
"onsmp_explanation_secret": "Je contact probeert te bepalen of ze echt met jou praten. Voer om te verifiëren naar jou contact het geheim in.",
|
||||
"from_sender": "van__sender__",
|
||||
"Verified_private_conversation_started": "Privé-gesprek geverifieerd gestart.",
|
||||
"Unverified_private_conversation_started": "Privé-gesprek ongeverifieerd gestart.",
|
||||
"Bookmark": "Favorieten",
|
||||
"Auto-join": "Automatisch deelnemen",
|
||||
"Edit_bookmark": "Favorieten bewerken",
|
||||
"Room_logging_is_disabled": "Kamerlog is uitgeschakeld",
|
||||
"Room_is_now_non-anoymous": "Kamer is nu niet-anoniem",
|
||||
"Room_is_now_semi-anonymous": "Kamer is nu semi-anoniem",
|
||||
"Do_you_want_to_change_the_default_room_configuration": "Wil je de standaard kamer instellingen wijzigen?",
|
||||
"Default": "Standaard",
|
||||
"Change": "Wijzigen",
|
||||
"Send_file": "Bestand zenden",
|
||||
"setting-explanation-carbon": "Met carbon kopie ingeschakeld zal de XMPP server een kopie van elk inkomend bericht doorsturen naar deze client, zelfs als het niet aan haar is gericht.",
|
||||
"setting-explanation-login": "Wanneer ingeschakeld zal de chat starten bij het inloggen.",
|
||||
"setting-explanation-priority": "Je XMPP dienst zal een prioriteitsbericht verzenden wanneer je meerdere keren ingelogd bent met hetzelfde account.",
|
||||
"setting-explanation-xmpp": "Deze opties worden gebruikt om met de XMPP server te verbinden.",
|
||||
"_is_composing": " is aan het schrijven...",
|
||||
"_are_composing": " zijn aan het schrijven...",
|
||||
"Chat_state_notifications": "Chat status notificatie",
|
||||
"setting-explanation-chat-state": "Wil je zend en ontvangst notificaties van iemand die start of stopt met het maken van een bericht?",
|
||||
"Share_screen": "Scherm delen",
|
||||
"Incoming_stream": "Stream inkomend",
|
||||
"Stream_started": "Stream gestart",
|
||||
"HTTPS_REQUIRED": "Deze actie vereist een versleutelde verbinding.",
|
||||
"EXTENSION_UNAVAILABLE": "Je hebt een browser extensie/addon nodig.",
|
||||
"UNKNOWN_ERROR": "Een onbekende foutmelding vond plaats.",
|
||||
"Install_extension": "Installeer extensie om scherm delen te gebruiken: ",
|
||||
"Connection_accepted": "Verbinding geaccepteerd",
|
||||
"Stream_terminated": "Stream beëindigd",
|
||||
"Close_all": "Alle sluiten",
|
||||
"Notification": "Notificatie",
|
||||
"Unreadable_OTR_message": "Onleesbaar OTR bericht is weggelaten",
|
||||
"Load_older_messages": "Oudere berichten laden",
|
||||
"Message_history": "Berichten geschiedenis",
|
||||
"setting-mam-enable": "Wanneer ingeschakeld ontvang je opgeslagen berichten van de server.",
|
||||
"You_have_to_go_online_": "Je dient online te gaan om deze operatie uit te voeren"
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"message_not_send_item-not-found": "Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje",
|
||||
"message_not_send_forbidden": "Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju",
|
||||
"message_not_send_not-acceptable": "Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju",
|
||||
"message_not_send_resource-unavailable": null,
|
||||
"message_not_send_remote-server-not-found": null,
|
||||
"This_room_has_been_closed": "Ten pokój został zamknięty",
|
||||
"Room_logging_is_enabled": "Logowanie do pokoju jest włączone",
|
||||
"A_password_is_required": "Hasło jest wymagane",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
@@ -240,6 +240,8 @@
|
||||
"message_not_send_item-not-found": "Sua mensagem não foi enviada por que essa sala nao existe mais",
|
||||
"message_not_send_forbidden": "Sua mensagem não foi enviada por que não tem 'voz' para essa sala",
|
||||
"message_not_send_not-acceptable": "Sua mensagem não foi enviada por que você nao é ocupante desta sala",
|
||||
"message_not_send_resource-unavailable": null,
|
||||
"message_not_send_remote-server-not-found": null,
|
||||
"This_room_has_been_closed": "Essa sala foi fechada",
|
||||
"Room_logging_is_enabled": "O Logging esta habilitado",
|
||||
"A_password_is_required": "Senha é obrigatória",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+235
-227
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "Autentificare...",
|
||||
"Logging_in": "Se autentifică...",
|
||||
"your_connection_is_unencrypted": "Conexiunea nu este criptată.",
|
||||
"your_connection_is_encrypted": "Conexiunea este criptată.",
|
||||
"your_buddy_closed_the_private_connection": "Interlocutorul a închis conexiunea privată.",
|
||||
@@ -9,31 +9,31 @@
|
||||
"your_buddy_is_verificated": "Interlocutorul este verificat.",
|
||||
"you_have_only_a_subscription_in_one_way": "Subscrierea este într-o singură direcție.",
|
||||
"authentication_query_sent": "Cererea de autentificare a fost trimisă.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Mesajul nu a fost trimis. Te rog închide conversația în privat.",
|
||||
"unencrypted_message_received": "A fost primit un mesaj necriptat",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Mesajul nu a fost trimis. Vă rugăm să închideţi conversația în privat.",
|
||||
"unencrypted_message_received": "S-a primit un mesaj necriptat",
|
||||
"not_available": "Indisponibil",
|
||||
"no_connection": "Fără conexiune!",
|
||||
"no_connection": "Nici o conexiune!",
|
||||
"relogin": "Re-autentificare",
|
||||
"trying_to_start_private_conversation": "Se încearcă deschiderea conversației în privat!",
|
||||
"Verified": "Verificat",
|
||||
"Unverified": "Neverificat",
|
||||
"private_conversation_aborted": "Conversație în privat eșuată!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.",
|
||||
"private_conversation_aborted": "Conversație în privat terminată!",
|
||||
"your_buddy_closed_the_private_conversation_you_should_do_the_same": "Interlocutorul a închis conversația în privat! Vă rugăm să faceţi la fel şi dumneavoastră.",
|
||||
"conversation_is_now_verified": "Conversația este acum verificată.",
|
||||
"authentication_failed": "Autentificarea a eşuat.",
|
||||
"Creating_your_private_key_": "Se crează cheia privată; ar putea să dureze ceva timp.",
|
||||
"Authenticating_a_buddy_helps_": "Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)",
|
||||
"Select_method": "Alege metoda...",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Cum doriţi să vă autentificaţi __bid_name__ (<b>__bid_jid__</b>)?",
|
||||
"Select_method": "Alegeţi metoda...",
|
||||
"Manual": "Manual",
|
||||
"Question": "Întrebare",
|
||||
"Secret": "Secret",
|
||||
"To_verify_the_fingerprint_": "Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.",
|
||||
"Your_fingerprint": "Amprenta ta",
|
||||
"Your_fingerprint": "Amprenta dumneavoastră",
|
||||
"Buddy_fingerprint": "Amprenta interlocutorului",
|
||||
"Close": "Închide",
|
||||
"Compared": "Prin comparație",
|
||||
"To_authenticate_using_a_question_": "Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.",
|
||||
"To_authenticate_using_a_question_": "Pentru autentificarea prin întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.",
|
||||
"Ask": "Întreabă",
|
||||
"To_authenticate_pick_a_secret_": "Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.",
|
||||
"Compare": "Compară",
|
||||
@@ -44,11 +44,11 @@
|
||||
"rename_buddy": "redenumește contact",
|
||||
"delete_buddy": "șterge contact",
|
||||
"Login": "Logare",
|
||||
"Username": "Utilizator",
|
||||
"Username": "Nume de utilizator",
|
||||
"Password": "Parolă",
|
||||
"Cancel": "Renunță",
|
||||
"Connect": "Conectare",
|
||||
"Type_in_the_full_username_": "Scrie numele complet al utilizatorului și un alias opțional.",
|
||||
"Type_in_the_full_username_": "Scrieţi numele complet al utilizatorului și un alias opțional.",
|
||||
"Alias": "Alias",
|
||||
"Add": "Adaugă",
|
||||
"Subscription_request": "Cerere de subscriere",
|
||||
@@ -56,249 +56,257 @@
|
||||
"Deny": "Refuză",
|
||||
"Approve": "Aprobă",
|
||||
"Remove_buddy": "Șterge contact",
|
||||
"You_are_about_to_remove_": "Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.",
|
||||
"Continue_without_chat": "Continuă fără chat",
|
||||
"Please_wait": "Te rog așteaptă",
|
||||
"You_are_about_to_remove_": "Urmează să ștergeţi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.",
|
||||
"Continue_without_chat": "Continuaţi fără chat",
|
||||
"Please_wait": "Vă rugăm aşteptaţi",
|
||||
"Login_failed": "Logarea pe chat a eșuat",
|
||||
"Sorry_we_cant_authentikate_": "Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?",
|
||||
"Retry": "Înapoi",
|
||||
"clear_history": "Curăță istoria",
|
||||
"New_message_from": "Un nou mesaj de la __name__",
|
||||
"Should_we_notify_you_": "Vrei să fi notificat despre mesajele noi în viitor ?",
|
||||
"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,
|
||||
"Should_we_notify_you_": "Vreţi să fiţi notificat despre mesajele noi în viitor ?",
|
||||
"Please_accept_": "Vă rugăm apăsaţi pe butonul \"Permite\" din partea de sus.",
|
||||
"Hide_offline": "Ascundeţi contactele deconectate",
|
||||
"Show_offline": "Arâtaţi contactele deconectate",
|
||||
"About": "Despre",
|
||||
"dnd": "Nu deranja",
|
||||
"Mute": "Dezactivaţi sunetul",
|
||||
"Unmute": "Activaţi sunetul",
|
||||
"Subscription": "Subscriere",
|
||||
"both": "amândouă",
|
||||
"Status": "Status",
|
||||
"online": "Conectat",
|
||||
"chat": "chat",
|
||||
"away": "plecat",
|
||||
"xa": "plecat extins",
|
||||
"offline": "deconectat",
|
||||
"none": "niciunul",
|
||||
"Unknown_instance_tag": "Tag pentru instanţă necunoscut",
|
||||
"Not_one_of_our_latest_keys": "Niciuna dintre ultimele chei",
|
||||
"Received_an_unreadable_encrypted_message": "S-a primit un mesaj criptat necitibil",
|
||||
"Online": "Conectat",
|
||||
"Chatty": "Vorbăreţ",
|
||||
"Away": "Plecat",
|
||||
"Extended_away": "Plecat extins",
|
||||
"Offline": "Deconectat",
|
||||
"Friendship_request": "Cerinţa pentru contacte",
|
||||
"Confirm": "Confirmaţi",
|
||||
"Dismiss": "Îndepărtaţi",
|
||||
"Remove": "Ştergeţi",
|
||||
"Online_help": "Ajutor online",
|
||||
"FN": "Nume complet",
|
||||
"N": "Nume",
|
||||
"FAMILY": "Nume de familie",
|
||||
"GIVEN": "Prenume",
|
||||
"NICKNAME": "Poreclă",
|
||||
"URL": "URL",
|
||||
"ADR": "Adresă",
|
||||
"STREET": "Adresa străzii",
|
||||
"EXTADD": "Adresa extinsă",
|
||||
"LOCALITY": "Localitatea",
|
||||
"REGION": "Regiunea",
|
||||
"PCODE": "Cod poştal",
|
||||
"CTRY": "Ţara",
|
||||
"TEL": "Telefon",
|
||||
"NUMBER": "Număr",
|
||||
"EMAIL": "Email",
|
||||
"USERID": "ID-ul utilizatorului",
|
||||
"ORG": "Organizaţia",
|
||||
"ORGNAME": "Nume",
|
||||
"ORGUNIT": "Unitate",
|
||||
"TITLE": "Titlul funcţiei",
|
||||
"ROLE": "Rolul",
|
||||
"BDAY": "Ziua de naştere",
|
||||
"DESC": "Descriere",
|
||||
"PHOTO": "Foto",
|
||||
"send_message": "Trimite mesajul",
|
||||
"get_info": "Arată informaţia",
|
||||
"Settings": "Setări",
|
||||
"Priority": "Prioritate",
|
||||
"Save": "Salvează",
|
||||
"User_settings": "Setările utilizatorului",
|
||||
"A_fingerprint_": "Se foloseşte o amprentă pentru a ne asigura ca persoana cu care vorbiţi este cine pretinde că este.",
|
||||
"is": "este",
|
||||
"Login_options": "Opţiuni de autentificare",
|
||||
"BOSH_url": "BOSH URL",
|
||||
"Domain": "Domeniu",
|
||||
"Resource": "Resursă",
|
||||
"On_login": "La autentificare",
|
||||
"Received_an_unencrypted_message": "S-a primit un mesaj necriptat",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Ne pare rău, contactul nu a furnizat nici o informaţie",
|
||||
"Info_about": "Informaţii despre",
|
||||
"Authentication_aborted": "Autentificarea a fost întreruptă.",
|
||||
"Authentication_request_received": "Cerere de autentificare primită.",
|
||||
"Log_in_without_chat": "Autentificare fără chat.",
|
||||
"has_come_online": "s-a conectat",
|
||||
"Unknown_sender": "Expeditor necunoscut",
|
||||
"Please_allow_access_to_microphone_and_camera": "Vă rugăm apăsaţi pe butonul \"Permiteti\" din partea de sus, pentru a permite accesul la microfon şi cameră",
|
||||
"Incoming_call": "Apel de intrare",
|
||||
"from": "de la",
|
||||
"Do_you_want_to_accept_the_call_from": "Doriţi să acceptaţi apelul de la",
|
||||
"Reject": "Respingeţi",
|
||||
"Accept": "Acceptaţi",
|
||||
"hang_up": "închideţi",
|
||||
"snapshot": "instant",
|
||||
"mute_my_audio": "dezactivaţi sunetul",
|
||||
"pause_my_video": "puneţi video-ul pe pauză",
|
||||
"fullscreen": "Pe tot ecranul",
|
||||
"Info": "Info",
|
||||
"Local_IP": "IP local",
|
||||
"Remote_IP": "IP remote",
|
||||
"Local_Fingerprint": "Amprentă locală",
|
||||
"Remote_Fingerprint": "Amprentă remote",
|
||||
"Video_call_not_possible": "Apelul video nu este posibil. Interlocutorul nu suportă apeluri video.",
|
||||
"Start_video_call": "Începeţi apelul video",
|
||||
"Join_chat": "Alăturaţi-vă chat-ului",
|
||||
"Join": "Alăturaţi-vă",
|
||||
"Room": "Cameră",
|
||||
"Nickname": "Poreclă",
|
||||
"left_the_building": "__nickname__ a părasit clădirea",
|
||||
"entered_the_room": "__nickname__ a intrat în cameră",
|
||||
"is_now_known_as": "__oldNickname__ este acum cunoscut ca __newNickname__",
|
||||
"This_room_is": "Această cameră este",
|
||||
"muc_hidden": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "ascuns",
|
||||
"description": "nu poate fi găsit prin căutare"
|
||||
},
|
||||
"muc_membersonly": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "doar-membri",
|
||||
"description": "trebuie să fiţi pe lista membrilor"
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "moderat",
|
||||
"description": "doar persoanele cu \"voce\" au dreptul să trimită mesaje"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "non-anonim",
|
||||
"description": "id-ul dumneavoastră este expus tuturor ocupanţilor"
|
||||
},
|
||||
"muc_open": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "deschis",
|
||||
"description": "oricui îi este permis să se alăture"
|
||||
},
|
||||
"muc_passwordprotected": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "protejat prin parolă",
|
||||
"description": "trebuie să introduceţi parola corectă"
|
||||
},
|
||||
"muc_persistent": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "persistent",
|
||||
"description": "nu va fi distrus dacă ultimult ocupant pleacă"
|
||||
},
|
||||
"muc_public": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "public",
|
||||
"description": "poate fi găsit prin căutare"
|
||||
},
|
||||
"muc_semianonymous": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "semi-anonim",
|
||||
"description": "id-ul jabber este expus doar administratorilor camerei"
|
||||
},
|
||||
"muc_temporary": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "temporar",
|
||||
"description": "va fi distrus dacă ultimul ocupant pleacă"
|
||||
},
|
||||
"muc_unmoderated": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "nemoderat",
|
||||
"description": "oricui îi este permis să trimită mesaje"
|
||||
},
|
||||
"muc_unsecured": {
|
||||
"keyword": null,
|
||||
"description": null
|
||||
"keyword": "ne-securizat",
|
||||
"description": "nu aveţi nevoie de parolă pentru a intra"
|
||||
},
|
||||
"Continue": null,
|
||||
"Server": null,
|
||||
"Rooms_are_loaded": null,
|
||||
"Could_load_only": null,
|
||||
"muc_explanation": null,
|
||||
"You_already_joined_this_room": null,
|
||||
"This_room_will_be_closed": null,
|
||||
"Room_not_found_": null,
|
||||
"Loading_room_information": null,
|
||||
"Destroy": null,
|
||||
"Leave": null,
|
||||
"changed_subject_to": null,
|
||||
"muc_removed_kicked": null,
|
||||
"muc_removed_info_kicked": null,
|
||||
"muc_removed_banned": null,
|
||||
"muc_removed_info_banned": null,
|
||||
"muc_removed_affiliation": null,
|
||||
"muc_removed_info_affiliation": null,
|
||||
"muc_removed_membersonly": null,
|
||||
"muc_removed_info_membersonly": null,
|
||||
"muc_removed_shutdown": null,
|
||||
"Reason": null,
|
||||
"message_not_send": null,
|
||||
"message_not_send_item-not-found": null,
|
||||
"message_not_send_forbidden": null,
|
||||
"message_not_send_not-acceptable": null,
|
||||
"This_room_has_been_closed": null,
|
||||
"Room_logging_is_enabled": null,
|
||||
"A_password_is_required": null,
|
||||
"You_are_not_on_the_member_list": null,
|
||||
"You_are_banned_from_this_room": null,
|
||||
"Your_desired_nickname_": null,
|
||||
"The_maximum_number_": null,
|
||||
"This_room_is_locked_": null,
|
||||
"You_are_not_allowed_to_create_": null,
|
||||
"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
|
||||
"Continue": "Continuaţi",
|
||||
"Server": "Server",
|
||||
"Rooms_are_loaded": "Camerele sunt încărcate",
|
||||
"Could_load_only": "S-au putut încărca doar __count__ camere pentru autocompletare",
|
||||
"muc_explanation": "Vă rugăm introduceţi numele camerei şi opţional o poreclă şi o parolă pentru a vă alătura chat-ului",
|
||||
"You_already_joined_this_room": "Deja v-aţi alăturat acestei camere",
|
||||
"This_room_will_be_closed": "Această cameră va fi închisă",
|
||||
"Room_not_found_": "O cameră noua va fi creată",
|
||||
"Loading_room_information": "Se încarcă informaţiile camerei",
|
||||
"Destroy": "Distruge",
|
||||
"Leave": "Pleacă",
|
||||
"changed_subject_to": "__nickname__ a schimbat subiectul camerei în \"__subject__\"",
|
||||
"muc_removed_kicked": "Aţi fost dat afară din cameră",
|
||||
"muc_removed_info_kicked": "__nickname__ a fost dat afară din cameră",
|
||||
"muc_removed_banned": "V-a fost interzis accesul în cameră",
|
||||
"muc_removed_info_banned": "Lui __nickname__ i s-a interzis accesul in cameră",
|
||||
"muc_removed_affiliation": "Aţi fost înlăturat din cameră, pentru ca o afiliere s-a schimbat",
|
||||
"muc_removed_info_affiliation": "__nickname__ a fost înlăturat din camera pentru ca o afiliere s-a schimbat",
|
||||
"muc_removed_membersonly": "Aţi fost înlăturat din cameră pentru că setările camerei s-au schimbat în permis doar pentru membri iar dumneavoastră nu sunteţi membru",
|
||||
"muc_removed_info_membersonly": "__nickname__ a fost înlăturat din camera pentru că setările camerei s-au schimbat în permis doar pentru membri iar el nu era membru",
|
||||
"muc_removed_shutdown": "Aţi fost înlăturat din cameră pentru ca serviciul MUC se opreşte",
|
||||
"Reason": "Motiv",
|
||||
"message_not_send": "Mesajul dumneavoastră nu a fost transmis din cauza unei erori",
|
||||
"message_not_send_item-not-found": "Mesajul dumneavostră nu a fost transmis pentru că această cameră nu există",
|
||||
"message_not_send_forbidden": "Mesajul dumneavostra nu a fost transmis pentru că nu aveţi voce în această cameră",
|
||||
"message_not_send_not-acceptable": "Mesajul dumneavostra nu a fost transmis pentru că nu sunteţi ocupant al acestei camere",
|
||||
"message_not_send_resource-unavailable": "Mesajul nu a fost trimis deoarece interlocutorul nu este disponibil sau conectat.",
|
||||
"message_not_send_remote-server-not-found": "Mesajul nu a fost trimis deoarece conexiunea server-la-server a eşuat",
|
||||
"This_room_has_been_closed": "Această cameră a fost închisă",
|
||||
"Room_logging_is_enabled": "Logging-ul pentru cameră este activat",
|
||||
"A_password_is_required": "O parolă este necesară",
|
||||
"You_are_not_on_the_member_list": "Nu sunteţi pe lista membrilor",
|
||||
"You_are_banned_from_this_room": "Vă este interzis accesul in această cameră",
|
||||
"Your_desired_nickname_": "Porecla pe care doriţi sâ o utilizaţi este deja folosită. Vă rugăm alegeţi alta",
|
||||
"The_maximum_number_": "Numarul maxim de utilizatori a fost atins pentru această cameră",
|
||||
"This_room_is_locked_": "Această cameră este încuiată",
|
||||
"You_are_not_allowed_to_create_": "Nu aveţi dreptul să creaţi o cameră",
|
||||
"Alert": "Alertă",
|
||||
"Call_started": "Apelul a început",
|
||||
"Call_terminated": "Apelul s-a terminat",
|
||||
"Carbon_copy": "Copie carbon",
|
||||
"Enable": "Activaţi",
|
||||
"jingle_reason_busy": "ocupat",
|
||||
"jingle_reason_decline": "refuzaţi",
|
||||
"jingle_reason_success": "inchideţi",
|
||||
"Media_failure": "Eroare media",
|
||||
"No_local_audio_device": "Nu există nici un dispozitiv audio local.",
|
||||
"No_local_video_device": "Nu există nici un dispozitiv media local.",
|
||||
"Ok": "Ok",
|
||||
"PermissionDeniedError": "Browser-ul dumneavoastră a respins permisiunea media",
|
||||
"Use_local_audio_device": "Folosiţi dispozitivul audio local",
|
||||
"Use_local_video_device": "Folosiţi dispozitivul media local.",
|
||||
"is_": "este __status__",
|
||||
"You_received_a_message_from_an_unknown_sender_": "Aţi primit un mesaj de la un expeditor necunoscut (__sender__). Doriţi să îl afişaţi?",
|
||||
"Your_roster_is_empty_add_": "Roster-ul este gol, adaugati un <a>contact nou</a>",
|
||||
"onsmp_explanation_question": "Interlocutorul încearca sa determine dacă vorbeşte întradevăr cu dumneavostră. Pentru a vă autentifica cu acesta, introduceţi răspunsul si apăsaţi pe Răspunde.",
|
||||
"onsmp_explanation_secret": "Interlocutorul încearca sa determine dacă vorbeşte întradevăr cu dumneavostră. Pentru a vă autentifica cu acesta, introduceţi secretul.",
|
||||
"from_sender": "de la __sender__",
|
||||
"Verified_private_conversation_started": "Conversaţia privată verificată a început.",
|
||||
"Unverified_private_conversation_started": "Conversaţia privată neverificată a început.",
|
||||
"Bookmark": "Semn de carte",
|
||||
"Auto-join": "Auto-alăturare",
|
||||
"Edit_bookmark": "Editaţi semnul de carte",
|
||||
"Room_logging_is_disabled": "Logging-ul pentru cameră este dezactivat",
|
||||
"Room_is_now_non-anoymous": "Camera este acum non-anonimă",
|
||||
"Room_is_now_semi-anonymous": "Camera este acum semi-aninomă",
|
||||
"Do_you_want_to_change_the_default_room_configuration": "Doriţi să schimbaţi configuraţia implicită a camerei?",
|
||||
"Default": "Implicit",
|
||||
"Change": "Schimbaţi",
|
||||
"Send_file": "Trimiteţi fila",
|
||||
"setting-explanation-carbon": "Cu copia carbon activa, serverul XMPP vă v-a trimite o copie a fiecarui mesaj primit la acest client chiar dacă nu a fost adresată acestuia.",
|
||||
"setting-explanation-login": "Dacă această opţiune este activă, chat-ul v-a porni la autentificare.",
|
||||
"setting-explanation-priority": "Dacă sunteţi autentificat de mai multe ori cu acelas cont, serverul XMPP va livra mesajele către clientul cu prioritatea cea mai ridicată.",
|
||||
"setting-explanation-xmpp": "Aceste opţiuni sunt folosite pentru conexiunea cu serverul XMPP.",
|
||||
"_is_composing": " compune...",
|
||||
"_are_composing": " compun...",
|
||||
"Chat_state_notifications": "Notificări pentru starea chat-ului",
|
||||
"setting-explanation-chat-state": "Doriţi să trimiteţi şi să primiţi notificări de stare pentru chat, ca atunci când cineva începe sau termină de compus un mesaj?",
|
||||
"Share_screen": "Partajază ecranul",
|
||||
"Incoming_stream": "Stream de intrare",
|
||||
"Stream_started": "Stream-ul a început",
|
||||
"HTTPS_REQUIRED": "Această acţiune necesită o conexiune criptată.",
|
||||
"EXTENSION_UNAVAILABLE": "Aveţi nevoie de o extensie sau un addon pentru browser.",
|
||||
"UNKNOWN_ERROR": "A intervenit o eroare necunoscută.",
|
||||
"Install_extension": "Vă rugam instalaţi extensia pentru a putea partaja ecranul: ",
|
||||
"Connection_accepted": "Conexiune acceptată",
|
||||
"Stream_terminated": "Stream-ul a fost terminat",
|
||||
"Close_all": "Închide toate",
|
||||
"Notification": "Notificare",
|
||||
"Unreadable_OTR_message": "Mesajul OTR necitibil a fost omis",
|
||||
"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.",
|
||||
"You_have_to_go_online_": "Trebuie sa fi online pentru a executa aceasta operatiune."
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"message_not_send_item-not-found": "Ваше сообщение не было отправлено, т.к. этой комнаты не существует",
|
||||
"message_not_send_forbidden": "Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате",
|
||||
"message_not_send_not-acceptable": "Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты",
|
||||
"message_not_send_resource-unavailable": null,
|
||||
"message_not_send_remote-server-not-found": null,
|
||||
"This_room_has_been_closed": "Эта комната была закрыта",
|
||||
"Room_logging_is_enabled": "Журналирование комнаты включено",
|
||||
"A_password_is_required": "Необходим пароль",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+26
-18
@@ -9,8 +9,8 @@
|
||||
"your_buddy_is_verificated": "Kişi doğrulandı.",
|
||||
"you_have_only_a_subscription_in_one_way": "Sadece tek yönlü bir aboneliğiniz var.",
|
||||
"authentication_query_sent": "Kimlik doğrulama sorgusu gönderildi.",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.",
|
||||
"unencrypted_message_received": "Şifrelenmemiş mesaj alındı",
|
||||
"your_message_wasnt_send_please_end_your_private_conversation": "İletiniz gönderilemedi. Lütfen özel görüşmenizi kapatın.",
|
||||
"unencrypted_message_received": "Şifrelenmemiş bir ileti alındı",
|
||||
"not_available": "Müsait değil",
|
||||
"no_connection": "Bağlantı yok!",
|
||||
"relogin": "Yeniden gir",
|
||||
@@ -23,7 +23,7 @@
|
||||
"authentication_failed": "Kimlik doğrulama başarısız.",
|
||||
"Creating_your_private_key_": "Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.",
|
||||
"Authenticating_a_buddy_helps_": "Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?",
|
||||
"How_do_you_want_to_authenticate_your_buddy": "Kimlik doğrulamasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?",
|
||||
"Select_method": "Yöntemi seçin...",
|
||||
"Manual": "Elle",
|
||||
"Question": "Soru",
|
||||
@@ -63,8 +63,8 @@
|
||||
"Sorry_we_cant_authentikate_": "Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.",
|
||||
"Retry": "Geri",
|
||||
"clear_history": "Geçmişi sil",
|
||||
"New_message_from": "__name__ adlı kişiden yeni bir mesaj aldınız",
|
||||
"Should_we_notify_you_": "İleride aldığınız yeni mesajları size bildirelim mi?",
|
||||
"New_message_from": "__name__ adlı kişiden yeni bir ileti aldınız",
|
||||
"Should_we_notify_you_": "İleride alacağınız yeni iletileri size bildirelim mi?",
|
||||
"Please_accept_": "Lütfen üstteki \"İzin ver\" düğmesini tıklayın.",
|
||||
"Hide_offline": "Çevrimdışı kişileri gizle",
|
||||
"Show_offline": "Çevrimdışı kişileri göster",
|
||||
@@ -83,7 +83,7 @@
|
||||
"none": "hiç biri",
|
||||
"Unknown_instance_tag": "Bilinmeyen örnek etiketi.",
|
||||
"Not_one_of_our_latest_keys": "En son anahtarlarımızdan biri değil.",
|
||||
"Received_an_unreadable_encrypted_message": "Okunamayan şifrelenmiş bir mesaj alındı.",
|
||||
"Received_an_unreadable_encrypted_message": "Okunamayan şifrelenmiş bir ileti alındı.",
|
||||
"Online": "Çevrimiçi",
|
||||
"Chatty": "Konuşkan",
|
||||
"Away": "Uzakta",
|
||||
@@ -95,7 +95,7 @@
|
||||
"Remove": "Çıkar",
|
||||
"Online_help": "Çevrimiçi yardım",
|
||||
"FN": "Tam adı",
|
||||
"N": " ",
|
||||
"N": "İsim",
|
||||
"FAMILY": "Soyadı",
|
||||
"GIVEN": "Adı",
|
||||
"NICKNAME": "Takma ad",
|
||||
@@ -110,7 +110,7 @@
|
||||
"TEL": "Telefon",
|
||||
"NUMBER": "Numara",
|
||||
"EMAIL": "Eposta",
|
||||
"USERID": " ",
|
||||
"USERID": "Kullanıcı Adı",
|
||||
"ORG": "Organizasyon",
|
||||
"ORGNAME": "İsim",
|
||||
"ORGUNIT": "Birim",
|
||||
@@ -132,7 +132,7 @@
|
||||
"Domain": "Alan adı",
|
||||
"Resource": "Kaynak",
|
||||
"On_login": "Girişte",
|
||||
"Received_an_unencrypted_message": "Şifrelenmemiş bir mesaj alındı",
|
||||
"Received_an_unencrypted_message": "Şifrelenmemiş bir ileti alındı",
|
||||
"Sorry_your_buddy_doesnt_provide_any_information": "Maalesef kişi her hangi bir bilgi sunmamış.",
|
||||
"Info_about": "Bilinen özellikleri",
|
||||
"Authentication_aborted": "Kimlik doğrulama iptal edildi.",
|
||||
@@ -176,7 +176,7 @@
|
||||
},
|
||||
"muc_moderated": {
|
||||
"keyword": "yöneticili",
|
||||
"description": "Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"
|
||||
"description": "Yalnızca \"konuşma izini olan\" kişilerin ileti göndermesine izin verilir"
|
||||
},
|
||||
"muc_nonanonymous": {
|
||||
"keyword": "Anonim-değil",
|
||||
@@ -236,10 +236,12 @@
|
||||
"muc_removed_info_membersonly": "Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı",
|
||||
"muc_removed_shutdown": "Odadan çıkarıldınız çünkü, MUC sunucusu kapandı",
|
||||
"Reason": "Sebep",
|
||||
"message_not_send": "Mesajınız bir hata nedeniyle gönderilmedi",
|
||||
"message_not_send_item-not-found": "Mesajınız gönderilmedi, çünkü bu oda mevcut değil",
|
||||
"message_not_send_forbidden": "Mesajınız gönderilmedi çünkü bu odada sesiniz yok",
|
||||
"message_not_send_not-acceptable": "Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz",
|
||||
"message_not_send": "İletiniz bir hata nedeniyle gönderilemedi",
|
||||
"message_not_send_item-not-found": "Bu oda mevcut olmadığı için iletiniz gönderilmedi",
|
||||
"message_not_send_forbidden": "Bu odada konuşma izniniz olmadığı için iletiniz gönderilmedi",
|
||||
"message_not_send_not-acceptable": "Bu odada bulunmadığınız için iletiniz gönderilemedi",
|
||||
"message_not_send_resource-unavailable": "Konuştuğunuz kişi müsait yada bağlı olmadığı için iletiniz gönderilemedi",
|
||||
"message_not_send_remote-server-not-found": "Sunucular arası bağlantı kurulamadığı için iletiniz gönderilemedi",
|
||||
"This_room_has_been_closed": "Bu oda kapatıldı",
|
||||
"Room_logging_is_enabled": "Oda günlüğü etkinleştirildi",
|
||||
"A_password_is_required": "Şifre gerekli",
|
||||
@@ -261,13 +263,13 @@
|
||||
"No_local_audio_device": "Yerel ses cihazı bulunamadı.",
|
||||
"No_local_video_device": "Yerel video cihazı bulunamadı.",
|
||||
"Ok": "Tamam",
|
||||
"PermissionDeniedError": "Siz veya tarayıcınız sesli/görüntülü izni reddetti",
|
||||
"PermissionDeniedError": "Siz veya tarayıcınız medya iznini reddetti",
|
||||
"Use_local_audio_device": "Yerel video cihazını kullan.",
|
||||
"Use_local_video_device": "Yerel video cihazını kullanın.",
|
||||
"is_": "__status__",
|
||||
"You_received_a_message_from_an_unknown_sender_": "Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?",
|
||||
"Your_roster_is_empty_add_": "Listeniz boş, yeni bir <a>kişi ekleyin</a>",
|
||||
"onsmp_explanation_question": "Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.",
|
||||
"onsmp_explanation_question": "Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olup olmadığınızı belirlemeye çalışıyor. Kimliğinizi doğrulamak için yanıtı girin ve Yanıtla'yı tıklayın.",
|
||||
"onsmp_explanation_secret": "Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.",
|
||||
"from_sender": "__sender__'den",
|
||||
"Verified_private_conversation_started": "Doğrulanmış Özel görüşme başladı.",
|
||||
@@ -289,7 +291,7 @@
|
||||
"_is_composing": " yazıyor...",
|
||||
"_are_composing": " yazıyorlar...",
|
||||
"Chat_state_notifications": "Sohbet durumu bildirimleri",
|
||||
"setting-explanation-chat-state": "Birisi mesaj başlattığında veya mesaj yazmayı bıraktığında, sohbet durumu bildirimleri göndermek ve almak istiyor musunuz?",
|
||||
"setting-explanation-chat-state": "Birisinin ileti yazmaya başladığı veya yazmayı bıraktığı gibi hallerde sohbet durumuyla ilgili bildirim göndermek ve almak istiyor musunuz?",
|
||||
"Share_screen": "Ekran paylaşımı",
|
||||
"Incoming_stream": "Gelen akış",
|
||||
"Stream_started": "Akış başladı",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": "Ekran paylaşımını kullanabilmek için lütfen eklentiyi yükleyin: ",
|
||||
"Connection_accepted": "Bağlantı kabul edildi",
|
||||
"Stream_terminated": "Akış sonlandırıldı",
|
||||
"Close_all": "Hepsini kapat"
|
||||
"Close_all": "Hepsini kapat",
|
||||
"Notification": "Bildirim",
|
||||
"Unreadable_OTR_message": "Okunamayan OTR iletisi atlandı",
|
||||
"Load_older_messages": "Eski iletileri yükle",
|
||||
"Message_history": "İleti geçmişi",
|
||||
"setting-mam-enable": "Etkinleştirdiğiniz takdirde kaydedilmiş iletileri sunucudan alabilirsiniz.",
|
||||
"You_have_to_go_online_": "Bu işlemi gerçekleştirebilmek için çevrimiçi olmalısınız."
|
||||
}
|
||||
}
|
||||
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+14
-6
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"translation": {
|
||||
"Logging_in": "正在登入…",
|
||||
"Logging_in": "正在登入中…",
|
||||
"your_connection_is_unencrypted": "連線沒加密。",
|
||||
"your_connection_is_encrypted": "連線有加密。",
|
||||
"your_buddy_closed_the_private_connection": "聯絡人關閉了加密連線。",
|
||||
@@ -81,8 +81,8 @@
|
||||
"xa": "離開很久",
|
||||
"offline": "離線",
|
||||
"none": "沒有",
|
||||
"Unknown_instance_tag": null,
|
||||
"Not_one_of_our_latest_keys": null,
|
||||
"Unknown_instance_tag": "狀況標籤不明。",
|
||||
"Not_one_of_our_latest_keys": "不是最近使用密鑰其中的一個。",
|
||||
"Received_an_unreadable_encrypted_message": "收到了一則加密但無法辨認的訊息。",
|
||||
"Online": "上線",
|
||||
"Chatty": "想聊天",
|
||||
@@ -95,7 +95,7 @@
|
||||
"Remove": "刪掉",
|
||||
"Online_help": "線上說明",
|
||||
"FN": "全名",
|
||||
"N": " ",
|
||||
"N": "名字",
|
||||
"FAMILY": "姓氏",
|
||||
"GIVEN": "名字",
|
||||
"NICKNAME": "綽號",
|
||||
@@ -110,7 +110,7 @@
|
||||
"TEL": "電話",
|
||||
"NUMBER": "編號",
|
||||
"EMAIL": "電子郵件",
|
||||
"USERID": " ",
|
||||
"USERID": "使用者代碼",
|
||||
"ORG": "團體",
|
||||
"ORGNAME": "名稱",
|
||||
"ORGUNIT": "單位",
|
||||
@@ -240,6 +240,8 @@
|
||||
"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": "需要密碼",
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": "要使用螢幕分享功能請安裝這個擴充套件: ",
|
||||
"Connection_accepted": "連線接受了",
|
||||
"Stream_terminated": "串流結束了",
|
||||
"Close_all": "全部關掉"
|
||||
"Close_all": "全部關掉",
|
||||
"Notification": "通知",
|
||||
"Unreadable_OTR_message": "忽略無法解讀的 OTR 訊息",
|
||||
"Load_older_messages": "下載舊訊息",
|
||||
"Message_history": "訊息紀錄",
|
||||
"setting-mam-enable": "打開後就可以從伺服器取得儲存訊息",
|
||||
"You_have_to_go_online_": "必須要上線才能執行這個動作。"
|
||||
}
|
||||
}
|
||||
+9
-1
@@ -240,6 +240,8 @@
|
||||
"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,
|
||||
@@ -299,6 +301,12 @@
|
||||
"Install_extension": null,
|
||||
"Connection_accepted": null,
|
||||
"Stream_terminated": null,
|
||||
"Close_all": 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
|
||||
}
|
||||
}
|
||||
+5
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jsxc",
|
||||
"version": "3.1.0-beta.2",
|
||||
"version": "3.2.0",
|
||||
"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",
|
||||
@@ -16,15 +16,16 @@
|
||||
"grunt": "^1.0.1",
|
||||
"grunt-autoprefixer": "^3.0.4",
|
||||
"grunt-banner": "~0.6.0",
|
||||
"grunt-contrib-clean": "~1.0.0",
|
||||
"grunt-contrib-clean": "~1.1.0",
|
||||
"grunt-contrib-compress": "^1.4.1",
|
||||
"grunt-contrib-concat": "^1.0.1",
|
||||
"grunt-contrib-copy": "~1.0.0",
|
||||
"grunt-contrib-csslint": "^2.0.0",
|
||||
"grunt-contrib-jshint": "~1.1.0",
|
||||
"grunt-contrib-uglify": "^2.0.0",
|
||||
"grunt-contrib-uglify": "^2.3.0",
|
||||
"grunt-contrib-watch": "^1.0.0",
|
||||
"grunt-data-uri": "^0.3.0",
|
||||
"grunt-github-releaser2": "^0.1.1",
|
||||
"grunt-html-convert": "0.0.2",
|
||||
"grunt-jsbeautifier": "^0.2.13",
|
||||
"grunt-jsdoc": "^2.1.0",
|
||||
@@ -34,6 +35,6 @@
|
||||
"grunt-scss-lint": "^0.5.0",
|
||||
"grunt-search": "^0.1.8",
|
||||
"grunt-text-replace": "~0.4.0",
|
||||
"node-sass": "4.3.0"
|
||||
"node-sass": "4.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
.mfp-close {
|
||||
font-size: 23px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -111,6 +111,16 @@
|
||||
background-color: #f2f2f2;
|
||||
padding: 10px;
|
||||
margin: 0 -30px 10px;
|
||||
|
||||
&.jsxc_experimental:after {
|
||||
content: "experimental";
|
||||
font-size: 0.7em;
|
||||
border-radius: 2px;
|
||||
padding: 1px 5px;
|
||||
background-color: orange;
|
||||
margin-left: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,6 +115,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_avatar {
|
||||
:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -187,7 +187,7 @@
|
||||
width: 14px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: -14px !important;
|
||||
right: 100%;
|
||||
top: 0;
|
||||
z-index: 110;
|
||||
background-color: transparent;
|
||||
|
||||
+85
-35
@@ -70,7 +70,6 @@
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
display: none;
|
||||
@@ -80,7 +79,7 @@
|
||||
div {
|
||||
box-sizing: border-box;
|
||||
width: 14px;
|
||||
height: 100%;
|
||||
height: 30px;
|
||||
background-color: $windowListSB_bg;
|
||||
color: $windowListSB_color;
|
||||
text-align: center;
|
||||
@@ -233,6 +232,7 @@
|
||||
|
||||
.jsxc_fade {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
.jsxc_overlay {
|
||||
display: none;
|
||||
@@ -303,6 +303,42 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_mam-load-more {
|
||||
display: none;
|
||||
text-align: center;
|
||||
font-size: 0.8em;
|
||||
font-style: italic;
|
||||
position: absolute;
|
||||
top: -42px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 42px;
|
||||
cursor: pointer;
|
||||
z-index: 80;
|
||||
line-height: 42px;
|
||||
opacity: 0;
|
||||
transition: opacity 0.5s, top 0.5s;
|
||||
|
||||
&.jsxc_show {
|
||||
top: 0;
|
||||
opacity: 0.7;
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.jsxc_mam-enable {
|
||||
.jsxc_textarea {
|
||||
padding-top: 42px;
|
||||
}
|
||||
|
||||
.jsxc_mam-load-more {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_avatar {
|
||||
@@ -416,16 +452,16 @@
|
||||
clear: both;
|
||||
|
||||
&.jsxc_error {
|
||||
opacity: 0.7;
|
||||
|
||||
&:before {
|
||||
content: " ";
|
||||
content: attr(data-error-msg);
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background-color: yellow;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: rgba(255, 255, 255, 0.7);
|
||||
text-align: center;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,31 +663,6 @@
|
||||
height: 1.2em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
&.jsxc_composing {
|
||||
text-align: center;
|
||||
font-size: 0.9em;
|
||||
font-style: italic;
|
||||
display: block;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
transition: opacity 0.6s;
|
||||
|
||||
&:before {
|
||||
content: " ";
|
||||
width: 1.5em;
|
||||
height: 1em;
|
||||
display: inline-block;
|
||||
background-size: 80%;
|
||||
background-repeat: no-repeat;
|
||||
margin: 0 3px 0 0;
|
||||
background-image: image-url("composing.png");
|
||||
}
|
||||
|
||||
&.jsxc_fadein {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.jsxc_settings {
|
||||
@@ -704,3 +715,42 @@ div.jsxc_transfer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_status-msg {
|
||||
font-size: 12px;
|
||||
display: none;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
height: 50%;
|
||||
line-height: 17.5px;
|
||||
opacity: 0.7;
|
||||
|
||||
&.jsxc_composing {
|
||||
&:before {
|
||||
content: " ";
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
display: inline-block;
|
||||
background-size: cover;
|
||||
vertical-align: middle;
|
||||
background-repeat: no-repeat;
|
||||
background-image: image-url("composing.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jsxc_status-msg-show {
|
||||
.jsxc_name {
|
||||
height: 50%;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.jsxc_status-msg {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.jsxc_lastmsg {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,8 +122,9 @@ jsxc.fileTransfer.showFileSelection = function(jid) {
|
||||
*/
|
||||
jsxc.fileTransfer.fileSelected = function(jid, msg, file) {
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var maxSize = jsxc.options.get('httpUpload').maxSize;
|
||||
|
||||
if (file.transportMethod !== 'webrtc' && jsxc.xmpp.httpUpload.ready && file.size > jsxc.options.get('httpUpload').maxSize) {
|
||||
if (file.transportMethod !== 'webrtc' && jsxc.xmpp.httpUpload.ready && maxSize >= 0 && file.size > maxSize) {
|
||||
jsxc.debug('File too large for http upload.');
|
||||
|
||||
file.transportMethod = 'webrtc';
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
jsxc.gui.avatar = {
|
||||
queue: [],
|
||||
|
||||
PLACEHOLDER: 0,
|
||||
|
||||
DELAY: 300,
|
||||
|
||||
CHUNKSIZE: 20,
|
||||
|
||||
timeout: null,
|
||||
|
||||
lastRun: 0
|
||||
};
|
||||
|
||||
/**
|
||||
* Update avatar on all given elements.
|
||||
*
|
||||
* @memberOf jsxc.gui
|
||||
* @param {jQuery} el Elements with subelement .jsxc_avatar
|
||||
* @param {string} jid Jid
|
||||
* @param {string} aid Avatar id (sha1 hash of image)
|
||||
*/
|
||||
jsxc.gui.avatar.update = function(el, jid, aid) {
|
||||
var self = jsxc.gui.avatar;
|
||||
|
||||
if (typeof aid === 'undefined') {
|
||||
self.set(jid, el, self.PLACEHOLDER);
|
||||
return;
|
||||
}
|
||||
|
||||
var avatarSrc = jsxc.storage.getUserItem('avatar', aid);
|
||||
|
||||
if (!jsxc.master && !avatarSrc) {
|
||||
// force avatar placeholder for slave tab, until master tab requested vCard
|
||||
avatarSrc = self.PLACEHOLDER;
|
||||
}
|
||||
|
||||
if (avatarSrc !== null) {
|
||||
self.set(jid, el, avatarSrc);
|
||||
} else {
|
||||
var handler_cb = function(stanza) {
|
||||
var src = jsxc.gui.avatar.getPhotoFromVcard(stanza);
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, src);
|
||||
self.set(jid, el, src);
|
||||
};
|
||||
|
||||
var error_cb = function(msg) {
|
||||
jsxc.warn('Could not load vcard.', msg);
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, self.PLACEHOLDER);
|
||||
self.set(jid, el, self.PLACEHOLDER);
|
||||
};
|
||||
|
||||
var args = [];
|
||||
|
||||
// workaround for https://github.com/strophe/strophejs/issues/172
|
||||
if (Strophe.getBareJidFromJid(jid) === Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)) {
|
||||
args = [handler_cb, error_cb];
|
||||
} else {
|
||||
args = [handler_cb, Strophe.getBareJidFromJid(jid), error_cb];
|
||||
}
|
||||
|
||||
jsxc.gui.avatar.queueAction(jid, jsxc.xmpp.conn.vcard.get, args, jsxc.xmpp.conn.vcard);
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.getPhotoFromVcard = function(stanza) {
|
||||
jsxc.debug('vCard', stanza);
|
||||
|
||||
var vCard = $(stanza).find("vCard > PHOTO");
|
||||
var src;
|
||||
|
||||
if (vCard.length === 0) {
|
||||
jsxc.debug('No photo provided');
|
||||
src = '0';
|
||||
} else if (vCard.find('EXTVAL').length > 0) {
|
||||
src = vCard.find('EXTVAL').text();
|
||||
} else {
|
||||
var img = vCard.find('BINVAL').text();
|
||||
var type = vCard.find('TYPE').text();
|
||||
src = 'data:' + type + ';base64,' + img;
|
||||
}
|
||||
|
||||
// concat chunks
|
||||
src = src.replace(/[\t\r\n\f]/gi, '');
|
||||
|
||||
return src;
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.set = function(jid, el, src) {
|
||||
var self = jsxc.gui.avatar;
|
||||
|
||||
if (src === self.PLACEHOLDER || src === '0') {
|
||||
if (typeof jsxc.options.defaultAvatar === 'function') {
|
||||
jsxc.gui.avatar.queueAction(jid, function() {
|
||||
jsxc.options.defaultAvatar.call(el, jid);
|
||||
});
|
||||
return;
|
||||
}
|
||||
jsxc.gui.avatarPlaceholder(el.find('.jsxc_avatar'), jid);
|
||||
return;
|
||||
}
|
||||
|
||||
el.find('.jsxc_avatar').removeAttr('style');
|
||||
|
||||
el.find('.jsxc_avatar').css({
|
||||
'background-image': 'url(' + src + ')',
|
||||
'text-indent': '999px'
|
||||
});
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.queueAction = function(jid, fn, args, context) {
|
||||
var self = jsxc.gui.avatar;
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
var data = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
var state = data.status;
|
||||
|
||||
var index = self.queue.indexOf(bid);
|
||||
if (index > -1) {
|
||||
self.queue.splice(index, 1);
|
||||
}
|
||||
|
||||
var action = {
|
||||
fn: fn,
|
||||
args: args || [],
|
||||
context: context || this
|
||||
};
|
||||
|
||||
if (state === 0) {
|
||||
self.queue.push(action);
|
||||
} else {
|
||||
self.queue.unshift(action);
|
||||
}
|
||||
|
||||
jsxc.gui.avatar.processQueue();
|
||||
};
|
||||
|
||||
jsxc.gui.avatar.processQueue = function() {
|
||||
var self = jsxc.gui.avatar;
|
||||
var currentTime = (new Date()).getTime();
|
||||
|
||||
if (currentTime - self.lastRun < self.DELAY) {
|
||||
if (!self.timeout) {
|
||||
self.timeout = setTimeout(self.processQueue, self.DELAY);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
self.lastRun = currentTime;
|
||||
|
||||
var i, action;
|
||||
for (i = 0; i < self.CHUNKSIZE; i++) {
|
||||
if (self.queue.length > 0) {
|
||||
action = self.queue.shift();
|
||||
action.fn.apply(action.context, action.args);
|
||||
}
|
||||
}
|
||||
|
||||
if (self.queue.length > 0) {
|
||||
self.timeout = setTimeout(self.processQueue, self.DELAY);
|
||||
} else {
|
||||
self.timeout = null;
|
||||
}
|
||||
};
|
||||
+48
-94
@@ -57,7 +57,21 @@ jsxc.gui = {
|
||||
queryActions: {
|
||||
/** xmpp:JID?message[;body=TEXT] */
|
||||
message: function(jid, params) {
|
||||
var win = jsxc.gui.window.open(jsxc.jidToBid(jid));
|
||||
var bid = jsxc.jidToBid(jid);
|
||||
|
||||
if (!jsxc.storage.getUserItem('buddy', bid)) {
|
||||
// init contact
|
||||
jsxc.storage.saveBuddy(bid, {
|
||||
jid: jid,
|
||||
name: bid,
|
||||
status: 0,
|
||||
sub: 'none',
|
||||
res: [],
|
||||
rnd: Math.random()
|
||||
});
|
||||
}
|
||||
|
||||
var win = jsxc.gui.window.open(bid);
|
||||
|
||||
if (params && typeof params.body === 'string') {
|
||||
win.find('.jsxc_textinput').val(params.body);
|
||||
@@ -238,94 +252,11 @@ jsxc.gui = {
|
||||
|
||||
ri.find('.jsxc_name').attr('title', info);
|
||||
|
||||
jsxc.gui.updateAvatar(ri.add(we.find('.jsxc_bar')), data.jid, data.avatar);
|
||||
jsxc.gui.avatar.update(ri.add(we.find('.jsxc_bar')), data.jid, data.avatar);
|
||||
|
||||
$(document).trigger('update.gui.jsxc', [bid]);
|
||||
},
|
||||
|
||||
/**
|
||||
* Update avatar on all given elements.
|
||||
*
|
||||
* @memberOf jsxc.gui
|
||||
* @param {jQuery} el Elements with subelement .jsxc_avatar
|
||||
* @param {string} jid Jid
|
||||
* @param {string} aid Avatar id (sha1 hash of image)
|
||||
*/
|
||||
updateAvatar: function(el, jid, aid) {
|
||||
|
||||
var setAvatar = function(src) {
|
||||
if (src === 0 || src === '0') {
|
||||
if (typeof jsxc.options.defaultAvatar === 'function') {
|
||||
jsxc.options.defaultAvatar.call(el, jid);
|
||||
return;
|
||||
}
|
||||
jsxc.gui.avatarPlaceholder(el.find('.jsxc_avatar'), jid);
|
||||
return;
|
||||
}
|
||||
|
||||
el.find('.jsxc_avatar').removeAttr('style');
|
||||
|
||||
el.find('.jsxc_avatar').css({
|
||||
'background-image': 'url(' + src + ')',
|
||||
'text-indent': '999px'
|
||||
});
|
||||
};
|
||||
|
||||
if (typeof aid === 'undefined') {
|
||||
setAvatar(0);
|
||||
return;
|
||||
}
|
||||
|
||||
var avatarSrc = jsxc.storage.getUserItem('avatar', aid);
|
||||
|
||||
if (!jsxc.master && !avatarSrc) {
|
||||
// force avatar placeholder for slave tab, until master tab requested vCard
|
||||
avatarSrc = 0;
|
||||
}
|
||||
|
||||
if (avatarSrc !== null) {
|
||||
setAvatar(avatarSrc);
|
||||
} else {
|
||||
var handler_cb = function(stanza) {
|
||||
jsxc.debug('vCard', stanza);
|
||||
|
||||
var vCard = $(stanza).find("vCard > PHOTO");
|
||||
var src;
|
||||
|
||||
if (vCard.length === 0) {
|
||||
jsxc.debug('No photo provided');
|
||||
src = '0';
|
||||
} else if (vCard.find('EXTVAL').length > 0) {
|
||||
src = vCard.find('EXTVAL').text();
|
||||
} else {
|
||||
var img = vCard.find('BINVAL').text();
|
||||
var type = vCard.find('TYPE').text();
|
||||
src = 'data:' + type + ';base64,' + img;
|
||||
}
|
||||
|
||||
// concat chunks
|
||||
src = src.replace(/[\t\r\n\f]/gi, '');
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, src);
|
||||
setAvatar(src);
|
||||
};
|
||||
|
||||
var error_cb = function(msg) {
|
||||
jsxc.warn('Could not load vcard.', msg);
|
||||
|
||||
jsxc.storage.setUserItem('avatar', aid, 0);
|
||||
setAvatar(0);
|
||||
};
|
||||
|
||||
// workaround for https://github.com/strophe/strophejs/issues/172
|
||||
if (Strophe.getBareJidFromJid(jid) === Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)) {
|
||||
jsxc.xmpp.conn.vcard.get(handler_cb, error_cb);
|
||||
} else {
|
||||
jsxc.xmpp.conn.vcard.get(handler_cb, Strophe.getBareJidFromJid(jid), error_cb);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates scrollbar handlers.
|
||||
*
|
||||
@@ -877,7 +808,7 @@ jsxc.gui = {
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', bid);
|
||||
|
||||
if (data) {
|
||||
if (data && data.res) {
|
||||
// Display resources and corresponding information
|
||||
var i, j, res, identities, identity = null,
|
||||
cap, client;
|
||||
@@ -1264,10 +1195,12 @@ jsxc.gui = {
|
||||
|
||||
el.attr('data-status', pres);
|
||||
|
||||
if (el.find('.jsxc_avatar').length > 0) {
|
||||
el = el.find('.jsxc_avatar');
|
||||
if (!el.hasClass('jsxc_statusIndicator')) {
|
||||
el = el.find('.jsxc_statusIndicator');
|
||||
}
|
||||
|
||||
el.attr('data-status', pres);
|
||||
|
||||
el.removeClass('jsxc_' + jsxc.CONST.STATUS.join(' jsxc_')).addClass('jsxc_' + pres);
|
||||
});
|
||||
},
|
||||
@@ -1369,6 +1302,9 @@ jsxc.gui = {
|
||||
var jid = href.split('?')[0];
|
||||
var action, params = {};
|
||||
|
||||
element.attr('data-bid', jsxc.jidToBid(jid));
|
||||
jsxc.gui.update(jsxc.jidToBid(jid));
|
||||
|
||||
if (href.indexOf('?') < 0) {
|
||||
action = 'message';
|
||||
} else {
|
||||
@@ -1390,7 +1326,11 @@ jsxc.gui = {
|
||||
element.off('click').click(function(ev) {
|
||||
ev.stopPropagation();
|
||||
|
||||
jsxc.gui.queryActions[action].call(jsxc, jid, params);
|
||||
if (jsxc.xmpp.conn && jsxc.xmpp.conn.connected) {
|
||||
jsxc.gui.queryActions[action].call(jsxc, jid, params);
|
||||
} else {
|
||||
jsxc.gui.showNotification($.t('no_connection'), $.t('You_have_to_go_online_'));
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
@@ -1628,7 +1568,8 @@ jsxc.gui.roster = {
|
||||
jsxc.notice.load();
|
||||
|
||||
jsxc.gui.roster.ready = true;
|
||||
$(document).trigger('ready.roster.jsxc');
|
||||
$(document).trigger('ready.roster.jsxc', [rosterState]);
|
||||
$(document).trigger('ready-roster-jsxc', [rosterState]);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2756,6 +2697,7 @@ jsxc.gui.window = {
|
||||
}
|
||||
|
||||
msgDiv.attr('title', message.error);
|
||||
msgDiv.attr('data-error-msg', message.error);
|
||||
|
||||
if (message.attachment && message.attachment.name) {
|
||||
var attachment = $('<div>');
|
||||
@@ -2800,8 +2742,12 @@ jsxc.gui.window = {
|
||||
$('[data-bid="' + bid + '"]').find('.jsxc_lastmsg .jsxc_text').html(msg);
|
||||
}
|
||||
|
||||
if (jsxc.Message.getDOM(uid).length > 0) {
|
||||
jsxc.Message.getDOM(uid).replaceWith(msgDiv);
|
||||
var currentMessageElement = jsxc.Message.getDOM(uid);
|
||||
if (currentMessageElement.length > 0) {
|
||||
if (currentMessageElement.attr('data-queryId')) {
|
||||
msgDiv.attr('data-queryId', currentMessageElement.attr('data-queryId'));
|
||||
}
|
||||
currentMessageElement.replaceWith(msgDiv);
|
||||
} else {
|
||||
win.find('.jsxc_textarea').append(msgDiv);
|
||||
}
|
||||
@@ -2815,7 +2761,7 @@ jsxc.gui.window = {
|
||||
msgDiv.attr('data-bid', jsxc.jidToBid(message.sender.jid));
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', jsxc.jidToBid(message.sender.jid)) || {};
|
||||
jsxc.gui.updateAvatar(msgDiv, jsxc.jidToBid(message.sender.jid), data.avatar);
|
||||
jsxc.gui.avatar.update(msgDiv, jsxc.jidToBid(message.sender.jid), data.avatar);
|
||||
|
||||
title = jsxc.jidToBid(message.sender.jid);
|
||||
}
|
||||
@@ -2846,7 +2792,9 @@ jsxc.gui.window = {
|
||||
jsxc.gui.detectUriScheme(win);
|
||||
jsxc.gui.detectEmail(win);
|
||||
|
||||
jsxc.gui.window.scrollDown(bid);
|
||||
if (!message.forwarded) {
|
||||
jsxc.gui.window.scrollDown(bid);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -2914,10 +2862,16 @@ jsxc.gui.window = {
|
||||
|
||||
jsxc.storage.setUserItem('history', bid, []);
|
||||
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
delete buddyData.lastArchiveUid;
|
||||
delete buddyData.archiveExhausted;
|
||||
jsxc.storage.setUserItem('buddy', bid, buddyData);
|
||||
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
if (win.length > 0) {
|
||||
win.find('.jsxc_textarea').empty();
|
||||
win.find('.jsxc_textarea').scroll();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
+10
-8
@@ -28,9 +28,6 @@ jsxc = {
|
||||
/** Interval for keep-alive */
|
||||
keepaliveInterval: null,
|
||||
|
||||
/** True if jid, sid and rid was used to connect */
|
||||
reconnect: false,
|
||||
|
||||
/** True if restore is complete */
|
||||
restoreCompleted: false,
|
||||
|
||||
@@ -81,7 +78,8 @@ jsxc = {
|
||||
},
|
||||
NS: {
|
||||
CARBONS: 'urn:xmpp:carbons:2',
|
||||
FORWARD: 'urn:xmpp:forward:0'
|
||||
FORWARD: 'urn:xmpp:forward:0',
|
||||
HINTS: 'urn:xmpp:hints'
|
||||
},
|
||||
HIDDEN: 'hidden',
|
||||
SHOWN: 'shown',
|
||||
@@ -222,8 +220,8 @@ jsxc = {
|
||||
}
|
||||
|
||||
// Check localStorage
|
||||
if (typeof(localStorage) === 'undefined') {
|
||||
jsxc.warn("Browser doesn't support localStorage.");
|
||||
if (!jsxc.storage.hasSupport()) {
|
||||
jsxc.error("Browser doesn't support localStorage. JSXC will be disabled.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -531,6 +529,10 @@ jsxc = {
|
||||
username = settings.xmpp.username;
|
||||
}
|
||||
|
||||
if (typeof settings.xmpp.password === 'string') {
|
||||
password = settings.xmpp.password;
|
||||
}
|
||||
|
||||
var resource = (settings.xmpp.resource) ? '/' + settings.xmpp.resource : '';
|
||||
var domain = settings.xmpp.domain;
|
||||
var jid;
|
||||
@@ -584,7 +586,7 @@ jsxc = {
|
||||
$('#jsxc_roster').removeClass('jsxc_noConnection');
|
||||
|
||||
jsxc.registerLogout();
|
||||
jsxc.gui.updateAvatar($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
jsxc.gui.avatar.update($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
|
||||
jsxc.gui.restore();
|
||||
},
|
||||
@@ -652,7 +654,7 @@ jsxc = {
|
||||
jsxc.otr.createDSA();
|
||||
}
|
||||
|
||||
jsxc.gui.updateAvatar($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
jsxc.gui.avatar.update($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
+8
-57
@@ -97,7 +97,6 @@ jsxc.muc = {
|
||||
$(document).on('error.presence.jsxc', jsxc.muc.onPresenceError);
|
||||
|
||||
self.conn.addHandler(self.onGroupchatMessage, null, 'message', 'groupchat');
|
||||
self.conn.addHandler(self.onErrorMessage, null, 'message', 'error');
|
||||
self.conn.muc.roomNames = jsxc.storage.getUserItem('roomNames') || [];
|
||||
},
|
||||
|
||||
@@ -826,7 +825,6 @@ jsxc.muc = {
|
||||
var nickname = Strophe.unescapeNode(res);
|
||||
var own = jsxc.storage.getUserItem('ownNicknames') || {};
|
||||
var member = jsxc.storage.getUserItem('member', room) || {};
|
||||
var openWindow = false;
|
||||
var codes = [];
|
||||
|
||||
xdata.find('status').each(function() {
|
||||
@@ -840,6 +838,9 @@ jsxc.muc = {
|
||||
if (roomdata.state === self.CONST.ROOMSTATE.INIT) {
|
||||
// successfully joined
|
||||
|
||||
roomdata.status = jsxc.CONST.STATUS.indexOf('online');
|
||||
jsxc.storage.setUserItem('buddy', room, roomdata);
|
||||
|
||||
jsxc.storage.setUserItem('roomNames', jsxc.xmpp.conn.muc.roomNames);
|
||||
|
||||
if (jsxc.gui.roster.getItem(room).length === 0) {
|
||||
@@ -852,8 +853,9 @@ jsxc.muc = {
|
||||
|
||||
if ($('#jsxc_dialog').length > 0) {
|
||||
// User joined the room manually
|
||||
openWindow = true;
|
||||
jsxc.gui.dialog.close();
|
||||
|
||||
jsxc.gui.window.open(room);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -944,11 +946,6 @@ jsxc.muc = {
|
||||
$(document).trigger('status.muc.jsxc', [code, room, nickname, member[nickname] || {}, presence]);
|
||||
});
|
||||
|
||||
if (openWindow) {
|
||||
// we wait until all parameters are set up correctly (e.g. state)
|
||||
jsxc.gui.window.open(room);
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
@@ -1244,15 +1241,14 @@ jsxc.muc = {
|
||||
|
||||
if (typeof jid === 'string') {
|
||||
m.find('.jsxc_name').text(jsxc.jidToBid(jid));
|
||||
m.attr('data-bid', jsxc.jidToBid(jid));
|
||||
title = title + '\n' + jsxc.jidToBid(jid);
|
||||
|
||||
var data = jsxc.storage.getUserItem('buddy', jsxc.jidToBid(jid));
|
||||
|
||||
if (data !== null && typeof data === 'object') {
|
||||
jsxc.gui.updateAvatar(m, jsxc.jidToBid(jid), data.avatar);
|
||||
jsxc.gui.avatar.update(m, jsxc.jidToBid(jid), data.avatar);
|
||||
} else if (jsxc.jidToBid(jid) === ownBid) {
|
||||
jsxc.gui.updateAvatar(m, jsxc.jidToBid(jid), 'own');
|
||||
jsxc.gui.avatar.update(m, jsxc.jidToBid(jid), 'own');
|
||||
}
|
||||
} else {
|
||||
m.find('.jsxc_name').text(nickname);
|
||||
@@ -1392,51 +1388,6 @@ jsxc.muc = {
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle group chat error message.
|
||||
*
|
||||
* @private
|
||||
* @memberOf jsxc.muc
|
||||
* @param {string} message Message stanza
|
||||
*/
|
||||
onErrorMessage: function(message) {
|
||||
var room = jsxc.jidToBid($(message).attr('from'));
|
||||
|
||||
if (jsxc.gui.window.get(room).length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($(message).find('item-not-found').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_item-not-found')
|
||||
});
|
||||
} else if ($(message).find('forbidden').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_forbidden')
|
||||
});
|
||||
} else if ($(message).find('not-acceptable').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_not-acceptable')
|
||||
});
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: room,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send')
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.debug('[muc] error message for ' + room, $(message).find('error')[0]);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Prepare group chat roster item.
|
||||
*
|
||||
@@ -1576,7 +1527,7 @@ jsxc.muc = {
|
||||
}
|
||||
o = $(opt.toHTML());
|
||||
|
||||
for (j = 0; j < self.values; j++) {
|
||||
for (j = 0; j < self.values.length; j++) {
|
||||
k = self.values[j];
|
||||
if (k.toString() === opt.value.toString()) {
|
||||
o.attr('selected', 'selected');
|
||||
|
||||
@@ -174,9 +174,7 @@ jsxc.options = {
|
||||
* @param jid Jid of that user.
|
||||
* @this {jQuery} Elements to update with probable .jsxc_avatar elements
|
||||
*/
|
||||
defaultAvatar: function(jid) {
|
||||
jsxc.gui.avatarPlaceholder($(this).find('.jsxc_avatar'), jid);
|
||||
},
|
||||
defaultAvatar: null,
|
||||
|
||||
/**
|
||||
* This callback processes all settings.
|
||||
@@ -303,5 +301,13 @@ jsxc.options = {
|
||||
screenMediaExtension: {
|
||||
firefox: '',
|
||||
chrome: ''
|
||||
},
|
||||
|
||||
/**
|
||||
* Options for Message Archive Management (XEP-0313)
|
||||
*/
|
||||
mam: {
|
||||
enable: false,
|
||||
max: null
|
||||
}
|
||||
};
|
||||
|
||||
@@ -35,6 +35,7 @@ jsxc.otr = {
|
||||
});
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
_uid: d._uid,
|
||||
bid: bid,
|
||||
direction: jsxc.Message.IN,
|
||||
msg: d.msg,
|
||||
@@ -209,6 +210,7 @@ jsxc.otr = {
|
||||
// Receive message
|
||||
jsxc.otr.objects[bid].on('ui', function(msg, encrypted, meta) {
|
||||
jsxc.otr.receiveMessage({
|
||||
_uid: meta._uid,
|
||||
bid: bid,
|
||||
msg: msg,
|
||||
encrypted: encrypted === true,
|
||||
|
||||
@@ -13,6 +13,22 @@ jsxc.storage = {
|
||||
|
||||
SEP: ':',
|
||||
|
||||
hasSupport: function() {
|
||||
if (typeof localStorage === 'undefined' || localStorage === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
localStorage.setItem('jsxc:storage:test', 'jsxc');
|
||||
localStorage.removeItem('jsxc:storage:test');
|
||||
} catch (err) {
|
||||
jsxc.warn('Can not save any data. Probably your quota exceeded or you use Safari in private Mode:', (err) ? err.message : undefined);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {type} uk Should we generate a user prefix?
|
||||
* @returns {String} prefix
|
||||
@@ -62,7 +78,11 @@ jsxc.storage = {
|
||||
});
|
||||
}
|
||||
|
||||
localStorage.setItem(jsxc.storage.getPrefix(uk) + key, value);
|
||||
try {
|
||||
localStorage.setItem(jsxc.storage.getPrefix(uk) + key, value);
|
||||
} catch (err) {
|
||||
jsxc.error('An error occured while saving data.', (err) ? err.message : undefined);
|
||||
}
|
||||
},
|
||||
|
||||
setUserItem: function(type, key, value) {
|
||||
@@ -394,6 +414,11 @@ jsxc.storage = {
|
||||
var history = JSON.parse(e.newValue);
|
||||
var uid, el, message;
|
||||
|
||||
if (!jsxc.master) {
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
win.find('.jsxc_textarea').empty();
|
||||
}
|
||||
|
||||
while (history.length > 0) {
|
||||
uid = history.pop();
|
||||
|
||||
@@ -402,7 +427,7 @@ jsxc.storage = {
|
||||
|
||||
if (el.length === 0) {
|
||||
if (jsxc.master && message.direction === jsxc.Message.OUT) {
|
||||
jsxc.xmpp.sendMessage(message.bid, message.msg, message._uid);
|
||||
jsxc.xmpp.sendMessage(message);
|
||||
}
|
||||
|
||||
jsxc.gui.window._postMessage(message, true);
|
||||
|
||||
+17
-14
@@ -248,8 +248,10 @@ jsxc.webrtc = {
|
||||
win.find('.jsxc_tools .jsxc_settings').after(div);
|
||||
|
||||
var screenMediaExtension = jsxc.options.get('screenMediaExtension') || {};
|
||||
var browser = self.conn.jingle.RTC.webrtcDetectedBrowser;
|
||||
if (screenMediaExtension[browser] || jsxc.storage.getItem('debug')) {
|
||||
var browserDetails = self.conn.jingle.RTC.browserDetails || {};
|
||||
var browser = browserDetails.browser;
|
||||
var version = browserDetails.version;
|
||||
if (screenMediaExtension[browser] || jsxc.storage.getItem('debug') || (browser === 'firefox' && version >= 52)) {
|
||||
// Add screen sharing button if extension is available or we are in debug mode
|
||||
var a = $('<a>');
|
||||
a.text($.t('Share_screen'));
|
||||
@@ -794,9 +796,8 @@ jsxc.webrtc = {
|
||||
* @param stream {mediastream}
|
||||
*/
|
||||
attachMediaStream: function(element, stream) {
|
||||
var self = jsxc.webrtc;
|
||||
|
||||
self.conn.jingle.RTC.attachMediaStream((element instanceof jQuery) ? element.get(0) : element, stream);
|
||||
var el = (element instanceof jQuery) ? element.get(0) : element;
|
||||
el.srcObject = stream;
|
||||
|
||||
$(element).show();
|
||||
},
|
||||
@@ -1111,21 +1112,23 @@ jsxc.webrtc = {
|
||||
}
|
||||
|
||||
try {
|
||||
self.conn.jingle.RTC.getUserMedia(constraints,
|
||||
function(stream) {
|
||||
jsxc.debug('onUserMediaSuccess');
|
||||
$(document).trigger('mediaready.jingle', [stream]);
|
||||
},
|
||||
function(error) {
|
||||
jsxc.warn('Failed to get access to local media. Error ', error);
|
||||
$(document).trigger('mediafailure.jingle', [error]);
|
||||
});
|
||||
self.conn.jingle.getUserMedia(constraints, self.userMediaCallback);
|
||||
} catch (e) {
|
||||
jsxc.error('GUM failed: ', e);
|
||||
$(document).trigger('mediafailure.jingle');
|
||||
}
|
||||
},
|
||||
|
||||
userMediaCallback: function(err, stream) {
|
||||
if (err) {
|
||||
jsxc.warn('Failed to get access to local media. Error ', err);
|
||||
$(document).trigger('mediafailure.jingle', [err]);
|
||||
} else if (stream) {
|
||||
jsxc.debug('onUserMediaSuccess');
|
||||
$(document).trigger('mediaready.jingle', [stream]);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Get screen media from local browser.
|
||||
*
|
||||
|
||||
@@ -67,8 +67,6 @@ jsxc.xmpp.chatState.onComposing = function(ev, jid) {
|
||||
return;
|
||||
}
|
||||
|
||||
clearTimeout(win.data('composing-timeout'));
|
||||
|
||||
// add user in array if necessary
|
||||
var usersComposing = win.data('composing') || [];
|
||||
if (usersComposing.indexOf(user) === -1) {
|
||||
@@ -76,25 +74,8 @@ jsxc.xmpp.chatState.onComposing = function(ev, jid) {
|
||||
win.data('composing', usersComposing);
|
||||
}
|
||||
|
||||
var textarea = win.find('.jsxc_textarea');
|
||||
var composingNotif = textarea.find('.jsxc_composing');
|
||||
|
||||
if (composingNotif.length < 1) {
|
||||
// notification not present, add it
|
||||
composingNotif = $('<div>').addClass('jsxc_composing')
|
||||
.addClass('jsxc_chatmessage')
|
||||
.addClass('jsxc_sys')
|
||||
.appendTo(textarea);
|
||||
}
|
||||
|
||||
var msg = self._genComposingMsg(usersComposing);
|
||||
composingNotif.text(msg);
|
||||
|
||||
// scroll to bottom
|
||||
jsxc.gui.window.scrollDown(bid);
|
||||
|
||||
// show message
|
||||
composingNotif.addClass('jsxc_fadein');
|
||||
var msg = self._genComposingMsg(data.type, usersComposing);
|
||||
jsxc.xmpp.chatState.setStatus(win, msg);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -120,7 +101,6 @@ jsxc.xmpp.chatState.onPaused = function(ev, jid) {
|
||||
return;
|
||||
}
|
||||
|
||||
var el = win.find('.jsxc_composing');
|
||||
var usersComposing = win.data('composing') || [];
|
||||
|
||||
if (usersComposing.indexOf(user) >= 0) {
|
||||
@@ -129,25 +109,12 @@ jsxc.xmpp.chatState.onPaused = function(ev, jid) {
|
||||
win.data('composing', usersComposing);
|
||||
}
|
||||
|
||||
if (usersComposing.length === 0) {
|
||||
var durationValue = el.css('transition-duration') || '0s';
|
||||
var duration = parseFloat(durationValue) || 0;
|
||||
|
||||
if (durationValue.match(/[^m]s$/)) {
|
||||
duration *= 1000;
|
||||
}
|
||||
|
||||
el.removeClass('jsxc_fadein');
|
||||
|
||||
var to = setTimeout(function() {
|
||||
el.remove();
|
||||
}, duration);
|
||||
|
||||
win.data('composing-timeout', to);
|
||||
} else {
|
||||
// update message
|
||||
el.text(self._genComposingMsg(usersComposing));
|
||||
var composingMsg;
|
||||
if (usersComposing.length !== 0) {
|
||||
composingMsg = self._genComposingMsg(data.type, usersComposing);
|
||||
}
|
||||
|
||||
jsxc.xmpp.chatState.setStatus(win, composingMsg);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -226,16 +193,35 @@ jsxc.xmpp.chatState.endComposing = function(bid) {
|
||||
* Generate composing message.
|
||||
*
|
||||
* @memberOf jsxc.xmpp.chatState
|
||||
* @param {String} the type of the chat ('groupchat' or 'chat')
|
||||
* @param {Array} usersComposing List of users which are currently composing a message
|
||||
*/
|
||||
jsxc.xmpp.chatState._genComposingMsg = function(usersComposing) {
|
||||
jsxc.xmpp.chatState._genComposingMsg = function(chatType, usersComposing) {
|
||||
if (!usersComposing || usersComposing.length === 0) {
|
||||
jsxc.debug('usersComposing array is empty?');
|
||||
|
||||
return '';
|
||||
} else {
|
||||
return usersComposing.length > 1 ? usersComposing.join(', ') + $.t('_are_composing') :
|
||||
usersComposing[0] + $.t('_is_composing');
|
||||
if (chatType === 'groupchat') {
|
||||
return usersComposing.length > 1 ? usersComposing.join(', ') + $.t('_are_composing') :
|
||||
usersComposing[0] + $.t('_is_composing');
|
||||
}
|
||||
return $.t('_is_composing');
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.xmpp.chatState.setStatus = function(win, msg) {
|
||||
var statusMsgElement = win.find('.jsxc_status-msg');
|
||||
|
||||
statusMsgElement.text(msg || '');
|
||||
statusMsgElement.attr('title', msg || '');
|
||||
|
||||
if (msg) {
|
||||
statusMsgElement.addClass('jsxc_composing');
|
||||
win.addClass('jsxc_status-msg-show');
|
||||
} else {
|
||||
statusMsgElement.removeClass('jsxc_composing');
|
||||
win.removeClass('jsxc_status-msg-show');
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -63,11 +63,7 @@ jsxc.xmpp.httpUpload.init = function(o) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (caps.hasFeatureByJid(domain, self.CONST.NS.HTTPUPLOAD)) {
|
||||
self.discoverUploadService();
|
||||
} else {
|
||||
jsxc.debug(domain + ' does not support http upload');
|
||||
}
|
||||
self.discoverUploadService();
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -77,12 +73,15 @@ jsxc.xmpp.httpUpload.init = function(o) {
|
||||
*/
|
||||
jsxc.xmpp.httpUpload.discoverUploadService = function() {
|
||||
var self = jsxc.xmpp.httpUpload;
|
||||
var domain = self.conn.domain;
|
||||
|
||||
jsxc.debug('discover http upload service');
|
||||
|
||||
self.queryItemForUploadService(self.conn.domain);
|
||||
if (jsxc.xmpp.conn.caps.hasFeatureByJid(domain, self.CONST.NS.HTTPUPLOAD)) {
|
||||
self.queryItemForUploadService(domain);
|
||||
}
|
||||
|
||||
self.conn.disco.items(self.conn.domain, null, function(items) {
|
||||
self.conn.disco.items(domain, null, function(items) {
|
||||
$(items).find('item').each(function() {
|
||||
var jid = $(this).attr('jid');
|
||||
|
||||
@@ -118,7 +117,7 @@ jsxc.xmpp.httpUpload.queryItemForUploadService = function(jid, cb) {
|
||||
jsxc.options.set('httpUpload', {
|
||||
server: jid,
|
||||
name: $(info).find('identity').attr('name'),
|
||||
maxSize: parseInt(httpUploadMaxSize.text())
|
||||
maxSize: parseInt(httpUploadMaxSize.text()) || -1
|
||||
});
|
||||
|
||||
self.ready = true;
|
||||
|
||||
+156
-22
@@ -94,6 +94,7 @@ jsxc.xmpp = {
|
||||
$(document).on('authfail.jsxc', jsxc.xmpp.onAuthFail);
|
||||
|
||||
Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts');
|
||||
Strophe.addNamespace('VERSION', 'jabber:iq:version');
|
||||
}
|
||||
|
||||
// Create new connection (no login)
|
||||
@@ -147,8 +148,6 @@ jsxc.xmpp = {
|
||||
jsxc.debug('Try to attach');
|
||||
jsxc.debug('SID: ' + sid);
|
||||
|
||||
jsxc.reconnect = true;
|
||||
|
||||
jsxc.xmpp.conn.attach(jid, sid, rid, callback);
|
||||
} else {
|
||||
jsxc.debug('New connection');
|
||||
@@ -156,6 +155,7 @@ jsxc.xmpp = {
|
||||
if (jsxc.xmpp.conn.caps) {
|
||||
// Add system handler, because user handler isn't called before
|
||||
// we are authenticated
|
||||
// @REVIEW this could maybe retrieved from jsxc.xmpp.conn.features
|
||||
jsxc.xmpp.conn._addSysHandler(function(stanza) {
|
||||
var from = jsxc.xmpp.conn.domain,
|
||||
c = stanza.querySelector('c'),
|
||||
@@ -196,7 +196,6 @@ jsxc.xmpp = {
|
||||
|
||||
// REVIEW: this should maybe moved to xmpp.disconnected
|
||||
// clean up
|
||||
jsxc.storage.removeUserItem('buddylist');
|
||||
jsxc.storage.removeUserItem('windowlist');
|
||||
jsxc.storage.removeUserItem('unreadMsg');
|
||||
|
||||
@@ -256,6 +255,9 @@ jsxc.xmpp = {
|
||||
|
||||
jsxc.xmpp.saveSessionParameter();
|
||||
|
||||
var rosterVerSupport = $(jsxc.xmpp.conn.features).find('[xmlns="urn:xmpp:features:rosterver"]').length > 0;
|
||||
jsxc.storage.setUserItem('rosterVerSupport', rosterVerSupport);
|
||||
|
||||
if (jsxc.options.loginForm.triggered) {
|
||||
switch (jsxc.options.loginForm.onConnected || 'submit') {
|
||||
case 'submit':
|
||||
@@ -286,11 +288,15 @@ jsxc.xmpp = {
|
||||
|
||||
$('#jsxc_roster').removeClass('jsxc_noConnection');
|
||||
|
||||
Strophe.addNamespace('VERSION', 'jabber:iq:version');
|
||||
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged, 'jabber:iq:roster', 'iq', 'set');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onChatMessage, null, 'message', 'chat');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onErrorMessage, null, 'message', 'error');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onHeadlineMessage, null, 'message', 'headline');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived, null, 'message');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence, null, 'presence');
|
||||
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onVersionRequest, Strophe.NS.VERSION, 'iq', 'get');
|
||||
|
||||
jsxc.gui.init();
|
||||
|
||||
@@ -331,19 +337,28 @@ jsxc.xmpp = {
|
||||
}
|
||||
}
|
||||
|
||||
var rosterLoaded = jsxc.storage.getUserItem('rosterLoaded');
|
||||
|
||||
// Only load roaster if necessary
|
||||
if (!jsxc.reconnect || !jsxc.storage.getUserItem('buddylist')) {
|
||||
if (rosterLoaded !== jsxc.xmpp.conn._proto.sid) {
|
||||
// in order to not overide existing presence information, we send
|
||||
// pres first after roster is ready
|
||||
$(document).one('cloaded.roster.jsxc', jsxc.xmpp.sendPres);
|
||||
|
||||
$('#jsxc_roster > p:first').remove();
|
||||
|
||||
var queryAttr = {
|
||||
xmlns: 'jabber:iq:roster'
|
||||
};
|
||||
|
||||
if (jsxc.storage.getUserItem('rosterVerSupport')) {
|
||||
// @TODO check if we really cached the roster
|
||||
queryAttr.ver = jsxc.storage.getUserItem('rosterVer') || '';
|
||||
}
|
||||
|
||||
var iq = $iq({
|
||||
type: 'get'
|
||||
}).c('query', {
|
||||
xmlns: 'jabber:iq:roster'
|
||||
});
|
||||
}).c('query', queryAttr);
|
||||
|
||||
jsxc.xmpp.conn.sendIQ(iq, jsxc.xmpp.onRoster);
|
||||
} else {
|
||||
@@ -371,14 +386,12 @@ jsxc.xmpp = {
|
||||
},
|
||||
|
||||
initNewConnection: function() {
|
||||
// make shure roster will be reloaded
|
||||
jsxc.storage.removeUserItem('buddylist');
|
||||
|
||||
jsxc.storage.removeUserItem('windowlist');
|
||||
jsxc.storage.removeUserItem('own');
|
||||
jsxc.storage.removeUserItem('avatar', 'own');
|
||||
jsxc.storage.removeUserItem('otrlist');
|
||||
jsxc.storage.removeUserItem('unreadMsg');
|
||||
jsxc.storage.removeUserItem('features');
|
||||
|
||||
// reset user options
|
||||
jsxc.storage.removeUserElement('options', 'RTCPeerConfig');
|
||||
@@ -393,6 +406,7 @@ jsxc.xmpp = {
|
||||
jsxc.xmpp.conn.disco.addIdentity('client', 'web', 'JSXC');
|
||||
jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO);
|
||||
jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS);
|
||||
jsxc.xmpp.conn.disco.addFeature(Strophe.NS.VERSION);
|
||||
}
|
||||
|
||||
// create presence stanza
|
||||
@@ -415,6 +429,23 @@ jsxc.xmpp = {
|
||||
|
||||
jsxc.debug('Send presence', pres.toString());
|
||||
jsxc.xmpp.conn.send(pres);
|
||||
|
||||
if (!jsxc.storage.getUserItem('features')) {
|
||||
jsxc.xmpp.conn.flush();
|
||||
|
||||
var barJid = Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid);
|
||||
|
||||
jsxc.xmpp.conn.disco.info(barJid, undefined, function(stanza) {
|
||||
var features = $(stanza).find('feature').map(function() {
|
||||
return $(this).attr('var');
|
||||
});
|
||||
|
||||
jsxc.storage.setUserItem('features', features.toArray());
|
||||
$(document).trigger('features.jsxc');
|
||||
});
|
||||
} else {
|
||||
$(document).trigger('features.jsxc');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -431,6 +462,7 @@ jsxc.xmpp = {
|
||||
jsxc.storage.removeItem('hidden');
|
||||
jsxc.storage.removeUserItem('avatar', 'own');
|
||||
jsxc.storage.removeUserItem('otrlist');
|
||||
jsxc.storage.removeUserItem('features');
|
||||
|
||||
$(document).off('connected.jsxc', jsxc.xmpp.connected);
|
||||
$(document).off('attached.jsxc', jsxc.xmpp.attached);
|
||||
@@ -506,13 +538,17 @@ jsxc.xmpp = {
|
||||
* @private
|
||||
*/
|
||||
onRoster: function(iq) {
|
||||
/*
|
||||
* <iq from='' type='get' id=''> <query xmlns='jabber:iq:roster'> <item
|
||||
* jid='' name='' subscription='' /> ... </query> </iq>
|
||||
*/
|
||||
|
||||
jsxc.debug('Load roster', iq);
|
||||
|
||||
jsxc.storage.setUserItem('rosterLoaded', jsxc.xmpp.conn._proto.sid);
|
||||
|
||||
if ($(iq).find('query').length === 0) {
|
||||
jsxc.debug('Use cached roster');
|
||||
|
||||
jsxc.restoreRoster();
|
||||
return;
|
||||
}
|
||||
|
||||
var buddies = [];
|
||||
|
||||
$(iq).find('item').each(function() {
|
||||
@@ -543,6 +579,10 @@ jsxc.xmpp = {
|
||||
|
||||
jsxc.storage.setUserItem('buddylist', buddies);
|
||||
|
||||
if ($(iq).find('query').attr('ver')) {
|
||||
jsxc.storage.setUserItem('rosterVer', $(iq).find('query').attr('ver'));
|
||||
}
|
||||
|
||||
// load bookmarks
|
||||
jsxc.xmpp.bookmarks.load();
|
||||
|
||||
@@ -622,6 +662,10 @@ jsxc.xmpp = {
|
||||
}
|
||||
});
|
||||
|
||||
if ($(iq).find('query').attr('ver')) {
|
||||
jsxc.storage.setUserItem('rosterVer', $(iq).find('query').attr('ver'));
|
||||
}
|
||||
|
||||
if (!jsxc.storage.getUserItem('buddylist') || jsxc.storage.getUserItem('buddylist').length === 0) {
|
||||
jsxc.gui.roster.empty();
|
||||
} else {
|
||||
@@ -745,9 +789,7 @@ jsxc.xmpp = {
|
||||
});
|
||||
}
|
||||
|
||||
if (data.type === 'groupchat') {
|
||||
data.status = status;
|
||||
} else {
|
||||
if (data.type !== 'groupchat') {
|
||||
data.status = max;
|
||||
}
|
||||
|
||||
@@ -869,14 +911,22 @@ jsxc.xmpp = {
|
||||
if (chat.length === 0) {
|
||||
jsxc.notice.add({
|
||||
msg: $.t('Unknown_sender'),
|
||||
description: $.t('You_received_a_message_from_an_unknown_sender') + ' (' + bid + ').'
|
||||
description: $.t('You_received_a_message_from_an_unknown_sender_') + ' (' + bid + ').'
|
||||
}, 'gui.showUnknownSender', [bid]);
|
||||
}
|
||||
|
||||
var msg = jsxc.removeHTML(body);
|
||||
msg = jsxc.escapeHTML(msg);
|
||||
|
||||
jsxc.storage.saveMessage(bid, 'in', msg, false, forwarded, stamp);
|
||||
var messageObj = new jsxc.Message({
|
||||
bid: bid,
|
||||
msg: msg,
|
||||
direction: jsxc.Message.IN,
|
||||
encrypted: false,
|
||||
forwarded: forwarded,
|
||||
stamp: stamp
|
||||
});
|
||||
messageObj.save();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -939,12 +989,15 @@ jsxc.xmpp = {
|
||||
if (jsxc.otr.objects.hasOwnProperty(bid) && body) {
|
||||
// @TODO check for file upload url after decryption
|
||||
jsxc.otr.objects[bid].receiveMsg(body, {
|
||||
_uid: mid,
|
||||
foo: 'bar',
|
||||
stamp: stamp,
|
||||
forwarded: forwarded,
|
||||
attachment: attachment
|
||||
});
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
_uid: mid,
|
||||
bid: bid,
|
||||
direction: jsxc.Message.IN,
|
||||
msg: body,
|
||||
@@ -959,6 +1012,58 @@ jsxc.xmpp = {
|
||||
return true;
|
||||
},
|
||||
|
||||
onErrorMessage: function(message) {
|
||||
var bid = jsxc.jidToBid($(message).attr('from'));
|
||||
|
||||
if (jsxc.gui.window.get(bid).length === 0 || !$(message).attr('id')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($(message).find('item-not-found').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_item-not-found')
|
||||
});
|
||||
} else if ($(message).find('forbidden').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_forbidden')
|
||||
});
|
||||
} else if ($(message).find('not-acceptable').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_not-acceptable')
|
||||
});
|
||||
} else if ($(message).find('remote-server-not-found').length > 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_remote-server-not-found')
|
||||
});
|
||||
} else if ($(message).find('service-unavailable').length > 0) {
|
||||
if ($(message).find('[xmlns="' + Strophe.NS.CHATSTATES + '"]').length === 0) {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send_resource-unavailable')
|
||||
});
|
||||
}
|
||||
} else {
|
||||
jsxc.gui.window.postMessage({
|
||||
bid: bid,
|
||||
direction: jsxc.Message.SYS,
|
||||
msg: $.t('message_not_send')
|
||||
});
|
||||
}
|
||||
|
||||
jsxc.debug('error message for ' + bid, $(message).find('error')[0]);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Process message stanzas of type headline.
|
||||
*
|
||||
@@ -991,6 +1096,29 @@ jsxc.xmpp = {
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Respond to version request (XEP-0092).
|
||||
*/
|
||||
onVersionRequest: function(stanza) {
|
||||
stanza = $(stanza);
|
||||
|
||||
var from = stanza.attr('from');
|
||||
var id = stanza.attr('id');
|
||||
|
||||
var iq = $iq({
|
||||
type: 'result',
|
||||
to: from,
|
||||
id: id
|
||||
}).c('query', {
|
||||
xmlns: Strophe.NS.VERSION
|
||||
}).c('name').t('JSXC').up()
|
||||
.c('version').t(jsxc.version);
|
||||
|
||||
jsxc.xmpp.conn.sendIQ(iq);
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Triggerd if the rid changed
|
||||
*
|
||||
@@ -1049,9 +1177,9 @@ jsxc.xmpp = {
|
||||
type: 'subscribe'
|
||||
}));
|
||||
|
||||
jsxc.storage.removeUserItem('add_' + bid);
|
||||
jsxc.storage.removeUserItem('add', bid);
|
||||
} else {
|
||||
jsxc.storage.setUserItem('add_' + bid, {
|
||||
jsxc.storage.setUserItem('add', bid, {
|
||||
username: username,
|
||||
alias: alias || null
|
||||
});
|
||||
@@ -1159,6 +1287,12 @@ jsxc.xmpp = {
|
||||
});
|
||||
}
|
||||
|
||||
if (msg.match(/^\?OTR/)) {
|
||||
xmlMsg.up().c("no-permanent-store", {
|
||||
xmlns: jsxc.CONST.NS.HINTS
|
||||
});
|
||||
}
|
||||
|
||||
if (type === 'chat' && (isBar || jsxc.xmpp.conn.caps.hasFeatureByJid(jid, Strophe.NS.RECEIPTS))) {
|
||||
// Add request according to XEP-0184
|
||||
xmlMsg.up().c('request', {
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
/**
|
||||
* Implements XEP-0313: Message Archive Management.
|
||||
*
|
||||
* @namespace jsxc.xmpp.mam
|
||||
* @see {@link https://xmpp.org/extensions/xep-0313.html}
|
||||
*/
|
||||
jsxc.xmpp.mam = {
|
||||
conn: null
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.init = function() {
|
||||
var self = jsxc.xmpp.mam;
|
||||
|
||||
self.conn = jsxc.xmpp.conn;
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.isEnabled = function() {
|
||||
var mamOptions = jsxc.options.get('mam') || {};
|
||||
|
||||
var features = jsxc.storage.getUserItem('features') || [];
|
||||
var hasFeatureMam2 = features.indexOf(Strophe.NS.MAM) >= 0;
|
||||
|
||||
return hasFeatureMam2 && mamOptions.enable;
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.nextMessages = function(bid) {
|
||||
var self = jsxc.xmpp.mam;
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
var lastArchiveUid = buddyData.lastArchiveUid;
|
||||
var queryId = self.conn.getUniqueId();
|
||||
var mamOptions = jsxc.options.get('mam') || {};
|
||||
var history = jsxc.storage.getUserItem('history', bid) || [];
|
||||
|
||||
if (buddyData.archiveExhausted) {
|
||||
jsxc.debug('No more archived messages.');
|
||||
return;
|
||||
}
|
||||
|
||||
var queryOptions = {
|
||||
queryid: queryId,
|
||||
before: lastArchiveUid || '',
|
||||
with: bid,
|
||||
onMessage: function() {
|
||||
var args = Array.from(arguments);
|
||||
args.unshift(bid);
|
||||
self.onMessage.apply(this, args);
|
||||
return true;
|
||||
},
|
||||
onComplete: function() {
|
||||
var args = Array.from(arguments);
|
||||
args.unshift(bid);
|
||||
self.onComplete.apply(this, args);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
var oldestMessageId = history[history.length - 1];
|
||||
|
||||
if (oldestMessageId && !lastArchiveUid) {
|
||||
var oldestMessage = new jsxc.Message(oldestMessageId);
|
||||
queryOptions.end = (new Date(oldestMessage.stamp)).toISOString();
|
||||
}
|
||||
|
||||
if (mamOptions.max) {
|
||||
queryOptions.max = mamOptions.max;
|
||||
}
|
||||
|
||||
self.conn.mam.query(undefined, queryOptions);
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.onMessage = function(bid, stanza) {
|
||||
stanza = $(stanza);
|
||||
var result = stanza.find('result[xmlns="' + Strophe.NS.MAM + '"]');
|
||||
var queryId = result.attr('queryid');
|
||||
|
||||
if (result.length !== 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
var forwarded = result.find('forwarded[xmlns="' + jsxc.CONST.NS.FORWARD + '"]');
|
||||
var message = forwarded.find('message');
|
||||
var messageId = $(message).attr('id');
|
||||
|
||||
if (message.length !== 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
var from = message.attr('from');
|
||||
var to = message.attr('to');
|
||||
|
||||
if (jsxc.jidToBid(from) !== bid && jsxc.jidToBid(to) !== bid) {
|
||||
return;
|
||||
}
|
||||
|
||||
var delay = forwarded.find('delay[xmlns="urn:xmpp:delay"]');
|
||||
var stamp = (delay.length > 0) ? new Date(delay.attr('stamp')) : new Date();
|
||||
stamp = stamp.getTime();
|
||||
|
||||
var body = $(message).find('body:first').text();
|
||||
|
||||
if (!body || body.match(/\?OTR/i)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var direction = (jsxc.jidToBid(to) === bid) ? jsxc.Message.OUT : jsxc.Message.IN;
|
||||
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
var textarea = win.find('.jsxc_textarea');
|
||||
if (textarea.find('[id="' + messageId + '"]').length === 0) {
|
||||
var pseudoChatElement = $('<div>');
|
||||
pseudoChatElement.attr('id', messageId.replace(/:/g, '-'));
|
||||
pseudoChatElement.attr('data-queryId', queryId);
|
||||
|
||||
var lastMessage = textarea.find('[data-queryId="' + queryId + '"]').last();
|
||||
var history = jsxc.storage.getUserItem('history', bid) || [];
|
||||
|
||||
if (history.indexOf(messageId) < 0) {
|
||||
if (lastMessage.length === 0) {
|
||||
textarea.prepend(pseudoChatElement);
|
||||
history.push(messageId);
|
||||
} else {
|
||||
lastMessage.after(pseudoChatElement);
|
||||
history.splice(history.indexOf(lastMessage.attr('id').replace(/-/g, ':')), 0, messageId);
|
||||
}
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('history', bid, history);
|
||||
}
|
||||
|
||||
jsxc.gui.window.postMessage({
|
||||
_uid: messageId,
|
||||
bid: bid,
|
||||
direction: direction,
|
||||
msg: body,
|
||||
encrypted: false,
|
||||
forwarded: true,
|
||||
stamp: stamp
|
||||
});
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.onComplete = function(bid, stanza) {
|
||||
stanza = $(stanza);
|
||||
var fin = stanza.find('fin[xmlns="' + Strophe.NS.MAM + '"]');
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
var win = jsxc.gui.window.get(bid);
|
||||
|
||||
buddyData.archiveExhausted = fin.attr('complete') === 'true';
|
||||
buddyData.lastArchiveUid = fin.find('first').text();
|
||||
|
||||
if (buddyData.archiveExhausted) {
|
||||
win.find('.jsxc_fade').removeClass('jsxc_mam-enable');
|
||||
}
|
||||
|
||||
jsxc.storage.setUserItem('buddy', bid, buddyData);
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.initWindow = function(ev, win) {
|
||||
var self = jsxc.xmpp.mam;
|
||||
|
||||
if (!jsxc.xmpp.conn && jsxc.master) {
|
||||
$(document).one('attached.jsxc', function() {
|
||||
self.initWindow(null, win);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!jsxc.master) {
|
||||
return;
|
||||
}
|
||||
|
||||
$(document).on('features.jsxc', function() {
|
||||
jsxc.xmpp.mam.addLoadButton(win);
|
||||
});
|
||||
|
||||
var features = jsxc.storage.getUserItem('features');
|
||||
if (features !== null) {
|
||||
// features.jsxc was already fired
|
||||
jsxc.xmpp.mam.addLoadButton(win);
|
||||
}
|
||||
};
|
||||
|
||||
jsxc.xmpp.mam.addLoadButton = function(win) {
|
||||
if (!jsxc.xmpp.mam.isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var classNameShow = 'jsxc_show';
|
||||
var classNameMamEnable = 'jsxc_mam-enable';
|
||||
var bid = win.attr('data-bid');
|
||||
|
||||
var element = $('<div>');
|
||||
element.addClass('jsxc_mam-load-more');
|
||||
element.appendTo(win.find('.slimScrollDiv'));
|
||||
element.click(function() {
|
||||
jsxc.xmpp.mam.nextMessages(bid);
|
||||
});
|
||||
element.text($.t('Load_older_messages'));
|
||||
|
||||
win.find('.jsxc_textarea').scroll(function() {
|
||||
var buddyData = jsxc.storage.getUserItem('buddy', bid) || {};
|
||||
|
||||
if (this.scrollTop < 42 && !buddyData.archiveExhausted) {
|
||||
element.addClass(classNameShow);
|
||||
} else {
|
||||
element.removeClass(classNameShow);
|
||||
}
|
||||
|
||||
if (!buddyData.archiveExhausted) {
|
||||
win.find('.jsxc_fade').addClass(classNameMamEnable);
|
||||
}
|
||||
});
|
||||
|
||||
win.find('.jsxc_textarea').scroll();
|
||||
};
|
||||
|
||||
$(document).on('attached.jsxc', jsxc.xmpp.mam.init);
|
||||
$(document).on('init.window.jsxc', jsxc.xmpp.mam.initWindow);
|
||||
+1
-1
@@ -1 +1 @@
|
||||
}(jQuery));
|
||||
}(jQuery));
|
||||
|
||||
Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais
Referência em uma Nova Issue
Bloquear um usuário