Parcourir la source

changed line-endings in converse-httpFileUpload.js

worlword il y a 7 ans
Parent
commit
83c0d42ecf
1 fichiers modifiés avec 269 ajouts et 269 suppressions
  1. 269 269
      src/converse-httpFileUpload.js

+ 269 - 269
src/converse-httpFileUpload.js

@@ -1,269 +1,269 @@
-/*
-    The MIT License (MIT)
-
-    Copyright (c) 2014 Klaus Herberth <klaus@jsxc.org>
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    THE SOFTWARE.
-*/
-
-/**
- * Implements Http File Upload (XEP-0363)
- *
- * @see {@link http://xmpp.org/extensions/xep-0363.html}
- */
-(function (root, factory) {
-    define([
-        "converse-core",
-    ], factory);
-}(this, function (
-        converse
-    ) {
-    "use strict";
-    const { $msg, Backbone, Strophe, _, b64_sha1, moment, utils } = converse.env;
-
-    Strophe.addNamespace('HTTPUPLOAD', 'urn:xmpp:http:upload');
-
-    var requestSlotUrl; 
-    var ready;
-    var httpUploadOption = {
-        enable: true
-    }
-
-    converse.plugins.add('converse-httpFileUpload', {
-
-        dependencies: ["converse-chatboxes", "converse-disco"],
-
-        initialize() {
-            const { _converse } = this,
-                { __ } = _converse;
-            var connection = _converse.connection;
-            var domain;
-            var file;
-            var chatBox;
-            
-            _converse.FileUpload = Backbone.NativeView.extend({
-                /**
-                * Set up http file upload.
-                * 
-                * @param {*} connection the current strophe-connection
-                */
-                initFiletransfer () {
-                    connection = _converse.connection;
-                    domain = _converse.connection.domain; 
-
-                    if (httpUploadOption && requestSlotUrl != undefined) {
-                        ready = true;
-                        return;
-                    }
-                    this.discoverUploadService();
-                },
-                
-                /**
-                * Discover upload service for http upload.
-                *
-                */
-                discoverUploadService () {
-                    var self = this;
-                    console.log('discover http upload service');
-                    connection.disco.items(domain, null, function(items) {
-                        var childs = items.getElementsByTagName('item');
-                        for(var i = 0; i < childs.length; i++){
-                            var jid = childs[i].attributes.jid.value; 
-                            if (ready) {
-                                // abort, because we already found a service
-                                return false;
-                            }
-                            self.queryItemForUploadService(jid);
-                        }
-                    });
-                },
-                
-                /**
-                 * Query item for upload service.
-                 *
-                 * @param {String} jid of the logged-in user
-                 * @param {Function} cb Callback on success
-                */
-                queryItemForUploadService (jid) {
-                    var self = this;
-                    console.log('query ' + jid + ' for upload service');
-                
-                    connection.disco.info(jid, null, function(info) {
-                        var httpUploadFeature;
-                        var temp = info.getElementsByTagName('feature');
-                        for(var i = 0; i < temp.length; i++){
-                            var feature = temp[i].attributes.var;
-                            if(feature != undefined && feature.value === Strophe.NS.HTTPUPLOAD){
-                                requestSlotUrl = jid;
-                                ready = true;
-                                self.sendFile();
-                            }
-                        }
-                    });
-                },
-
-                /**
-                 * Saves the file the user has picked.
-                 * 
-                 * @param {*} file the name of the file the user has picked.
-                 * @param {*} chatBox the chatbox from which the user initiated the file-upload
-                 */
-                setFile (file1, chatBox1){
-                    file = file1;
-                    chatBox = chatBox1;
-                    this.sendFile();
-                },
-                
-                /**
-                * Upload file.
-                * Waits till the Upload-Service is discovered and till the user has picked a file.
-                *
-                */
-                sendFile () {
-                    var self = this;
-                    if(file === undefined){
-                        console.log("waiting to choose a file");
-                        return;
-                    }
-                    else if(requestSlotUrl === undefined){
-                        console.log("waiting for service discovery");
-                        return;
-                    }
-
-                    console.log('Send file via http upload');
-                    chatBox.showHelpMessages([__('The file upload starts now')],'info');
-                    this.requestSlot(file, function(data) {
-                        if (!data) {
-                            // general error
-                            console.log('Unknown error while requesting upload slot.');
-                            alert(__('File upload failed. Please check the log.'));
-                        } else if (data.error) {
-                            // specific error
-                            console.log('The XMPP-Server return an error of the type: ' + data.error.type);
-                            alert(__('File upload failed. Please check the log.'));
-                        } else if (data.get && data.put) {
-                            console.log('slot received, start upload to ' + data.put);
-                            self.uploadFile(data.put, file, function() {
-                                console.log(data.put);
-                                
-                                chatBox.onMessageSubmitted(data.put, null, file);
-                                file = undefined;
-                            });
-                        }
-                    });
-                },
-
-                /**
-                * Request upload slot from xmpp-server
-                *
-                * @param  {File} file the file the user picked
-                * @param  {Function} cb Callback after finished request
-                */
-                requestSlot (file, cb) {
-                    var self = this;
-                    console.log("try sending file to: " + requestSlotUrl);
-                    var iq = converse.env.$iq({
-                        to: requestSlotUrl,
-                        type: 'get'
-                    }).c('request', {
-                        xmlns: Strophe.NS.HTTPUPLOAD
-                    }).c('filename').t(file.name)
-                    .up()
-                    .c('size').t(file.size);
-                
-                    connection.sendIQ(iq, function(stanza) {
-                        self.successfulRequestSlotCB(stanza, cb);
-                    }, function(stanza) {
-                        self.failedRequestSlotCB(stanza, cb);
-                    });
-                },
-                
-                /**
-                 * Upload the given file to the given url.
-                *
-                * @param  {String} url upload url
-                * @param  {File} file the file the user picked
-                * @param  {Function} success_cb callback on successful transition
-                */
-                uploadFile (url, file, success_cb) {
-                    console.log("uploadFile start");
-                    var xmlhttp = new XMLHttpRequest();
-                    var type = 'PUT';
-                    var contentType = 'application/octet-stream';
-                    var data = file;
-                    var processData = false;
-                    xmlhttp.onreadystatechange = function() {
-                        if (xmlhttp.readyState == XMLHttpRequest.DONE) {   
-                            console.log("Status: " + xmlhttp.status);
-                            if (xmlhttp.status == 200 || xmlhttp.status == 201) {
-                                console.log('file successful uploaded');
-                                if (success_cb) {
-                                    success_cb();
-                                }    
-                            }
-                            else {
-                                console.log('error while uploading file to ' + url);
-                                alert(__('Could not upload File please try again.'));
-                            }
-                        }
-                    };
-                
-                    xmlhttp.open(type, url, true);
-                    xmlhttp.setRequestHeader("Content-type", contentType);
-                    xmlhttp.send(data);
-
-                    console.log("uploadFile end");
-                },
-                
-                /**
-                * Process successful response to slot request.
-                *
-                * @param {String} stanza
-                * @param {Function} cb
-                */
-                successfulRequestSlotCB (stanza, cb) {
-                    var slot = stanza.getElementsByTagName('slot')[0];
-                
-                    if (slot != undefined) {
-                        var put = slot.getElementsByTagName('put')[0].textContent;
-                        var get = slot.getElementsByTagName('get')[0].textContent;
-                        cb({
-                            put: put,
-                            get: get
-                        });
-                    } else {
-                        this.failedRequestSlotCB(stanza, cb);
-                    }
-                },
-                
-                /**
-                * Process failed response to slot request.
-                *
-                * @param  {String} stanza
-                * @param  {Function} cb
-                */
-                failedRequestSlotCB (stanza, cb) {
-                    chatBox.showHelpMessages([__('Fileupload failed')],'info');
-                }
-            })
-        }
-    });
-    
-    return converse;
-}));
+/*
+    The MIT License (MIT)
+
+    Copyright (c) 2014 Klaus Herberth <klaus@jsxc.org>
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+    THE SOFTWARE.
+*/
+
+/**
+ * Implements Http File Upload (XEP-0363)
+ *
+ * @see {@link http://xmpp.org/extensions/xep-0363.html}
+ */
+(function (root, factory) {
+    define([
+        "converse-core",
+    ], factory);
+}(this, function (
+        converse
+    ) {
+    "use strict";
+    const { $msg, Backbone, Strophe, _, b64_sha1, moment, utils } = converse.env;
+
+    Strophe.addNamespace('HTTPUPLOAD', 'urn:xmpp:http:upload');
+
+    var requestSlotUrl; 
+    var ready;
+    var httpUploadOption = {
+        enable: true
+    }
+
+    converse.plugins.add('converse-httpFileUpload', {
+
+        dependencies: ["converse-chatboxes", "converse-disco"],
+
+        initialize() {
+            const { _converse } = this,
+                { __ } = _converse;
+            var connection = _converse.connection;
+            var domain;
+            var file;
+            var chatBox;
+            
+            _converse.FileUpload = Backbone.NativeView.extend({
+                /**
+                * Set up http file upload.
+                * 
+                * @param {*} connection the current strophe-connection
+                */
+                initFiletransfer () {
+                    connection = _converse.connection;
+                    domain = _converse.connection.domain; 
+
+                    if (httpUploadOption && requestSlotUrl != undefined) {
+                        ready = true;
+                        return;
+                    }
+                    this.discoverUploadService();
+                },
+                
+                /**
+                * Discover upload service for http upload.
+                *
+                */
+                discoverUploadService () {
+                    var self = this;
+                    console.log('discover http upload service');
+                    connection.disco.items(domain, null, function(items) {
+                        var childs = items.getElementsByTagName('item');
+                        for(var i = 0; i < childs.length; i++){
+                            var jid = childs[i].attributes.jid.value; 
+                            if (ready) {
+                                // abort, because we already found a service
+                                return false;
+                            }
+                            self.queryItemForUploadService(jid);
+                        }
+                    });
+                },
+                
+                /**
+                 * Query item for upload service.
+                 *
+                 * @param {String} jid of the logged-in user
+                 * @param {Function} cb Callback on success
+                */
+                queryItemForUploadService (jid) {
+                    var self = this;
+                    console.log('query ' + jid + ' for upload service');
+                
+                    connection.disco.info(jid, null, function(info) {
+                        var httpUploadFeature;
+                        var temp = info.getElementsByTagName('feature');
+                        for(var i = 0; i < temp.length; i++){
+                            var feature = temp[i].attributes.var;
+                            if(feature != undefined && feature.value === Strophe.NS.HTTPUPLOAD){
+                                requestSlotUrl = jid;
+                                ready = true;
+                                self.sendFile();
+                            }
+                        }
+                    });
+                },
+
+                /**
+                 * Saves the file the user has picked.
+                 * 
+                 * @param {*} file the name of the file the user has picked.
+                 * @param {*} chatBox the chatbox from which the user initiated the file-upload
+                 */
+                setFile (file1, chatBox1){
+                    file = file1;
+                    chatBox = chatBox1;
+                    this.sendFile();
+                },
+                
+                /**
+                * Upload file.
+                * Waits till the Upload-Service is discovered and till the user has picked a file.
+                *
+                */
+                sendFile () {
+                    var self = this;
+                    if(file === undefined){
+                        console.log("waiting to choose a file");
+                        return;
+                    }
+                    else if(requestSlotUrl === undefined){
+                        console.log("waiting for service discovery");
+                        return;
+                    }
+
+                    console.log('Send file via http upload');
+                    chatBox.showHelpMessages([__('The file upload starts now')],'info');
+                    this.requestSlot(file, function(data) {
+                        if (!data) {
+                            // general error
+                            console.log('Unknown error while requesting upload slot.');
+                            alert(__('File upload failed. Please check the log.'));
+                        } else if (data.error) {
+                            // specific error
+                            console.log('The XMPP-Server return an error of the type: ' + data.error.type);
+                            alert(__('File upload failed. Please check the log.'));
+                        } else if (data.get && data.put) {
+                            console.log('slot received, start upload to ' + data.put);
+                            self.uploadFile(data.put, file, function() {
+                                console.log(data.put);
+                                
+                                chatBox.onMessageSubmitted(data.put, null, file);
+                                file = undefined;
+                            });
+                        }
+                    });
+                },
+
+                /**
+                * Request upload slot from xmpp-server
+                *
+                * @param  {File} file the file the user picked
+                * @param  {Function} cb Callback after finished request
+                */
+                requestSlot (file, cb) {
+                    var self = this;
+                    console.log("try sending file to: " + requestSlotUrl);
+                    var iq = converse.env.$iq({
+                        to: requestSlotUrl,
+                        type: 'get'
+                    }).c('request', {
+                        xmlns: Strophe.NS.HTTPUPLOAD
+                    }).c('filename').t(file.name)
+                    .up()
+                    .c('size').t(file.size);
+                
+                    connection.sendIQ(iq, function(stanza) {
+                        self.successfulRequestSlotCB(stanza, cb);
+                    }, function(stanza) {
+                        self.failedRequestSlotCB(stanza, cb);
+                    });
+                },
+                
+                /**
+                 * Upload the given file to the given url.
+                *
+                * @param  {String} url upload url
+                * @param  {File} file the file the user picked
+                * @param  {Function} success_cb callback on successful transition
+                */
+                uploadFile (url, file, success_cb) {
+                    console.log("uploadFile start");
+                    var xmlhttp = new XMLHttpRequest();
+                    var type = 'PUT';
+                    var contentType = 'application/octet-stream';
+                    var data = file;
+                    var processData = false;
+                    xmlhttp.onreadystatechange = function() {
+                        if (xmlhttp.readyState == XMLHttpRequest.DONE) {   
+                            console.log("Status: " + xmlhttp.status);
+                            if (xmlhttp.status == 200 || xmlhttp.status == 201) {
+                                console.log('file successful uploaded');
+                                if (success_cb) {
+                                    success_cb();
+                                }    
+                            }
+                            else {
+                                console.log('error while uploading file to ' + url);
+                                alert(__('Could not upload File please try again.'));
+                            }
+                        }
+                    };
+                
+                    xmlhttp.open(type, url, true);
+                    xmlhttp.setRequestHeader("Content-type", contentType);
+                    xmlhttp.send(data);
+
+                    console.log("uploadFile end");
+                },
+                
+                /**
+                * Process successful response to slot request.
+                *
+                * @param {String} stanza
+                * @param {Function} cb
+                */
+                successfulRequestSlotCB (stanza, cb) {
+                    var slot = stanza.getElementsByTagName('slot')[0];
+                
+                    if (slot != undefined) {
+                        var put = slot.getElementsByTagName('put')[0].textContent;
+                        var get = slot.getElementsByTagName('get')[0].textContent;
+                        cb({
+                            put: put,
+                            get: get
+                        });
+                    } else {
+                        this.failedRequestSlotCB(stanza, cb);
+                    }
+                },
+                
+                /**
+                * Process failed response to slot request.
+                *
+                * @param  {String} stanza
+                * @param  {Function} cb
+                */
+                failedRequestSlotCB (stanza, cb) {
+                    chatBox.showHelpMessages([__('Fileupload failed')],'info');
+                }
+            })
+        }
+    });
+    
+    return converse;
+}));