renamed dropboxclient.js -> dropbox.js
authorNiklas Cathor <nilclass@riseup.net>
Tue, 27 Aug 2013 23:42:39 +0000 (01:42 +0200)
committerNiklas Cathor <nilclass@riseup.net>
Tue, 27 Aug 2013 23:42:39 +0000 (01:42 +0200)
added dropbox to build/components.json

Makefile
build/components.json
example/index.html
src/dropbox.js [new file with mode: 0644]
src/dropboxclient.js [deleted file]

index 7a30fed..ebf9c46 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,8 @@ ASSETS_OUT     = $(SOURCE_DIR)/assets.js
 DOC_INPUTS     = -i $(SOURCE_DIR)
 SOURCES        = ${shell find $(SOURCE_DIR) -name "*.js"}
 
-DEFAULT_COMPONENTS = core widget baseclient caching modules debug legacy googledrive dropboxclient
-NOCACHE_COMPONENTS = core widget baseclient modules debug legacy googledrive dropboxclient
+DEFAULT_COMPONENTS = core widget baseclient caching modules debug legacy googledrive dropbox
+NOCACHE_COMPONENTS = core widget baseclient modules debug legacy googledrive dropbox
 
 default: help
 
index f9456db..ddf3da3 100644 (file)
@@ -23,7 +23,8 @@
     "src/assets.js": "Icons, CSS and HTML templates for the widget",
     "src/legacy.js": "...",
 
-    "src/googledrive.js": "Backend to talk to googledrive"
+    "src/googledrive.js": "Backend to talk to googledrive",
+    "src/dropbox.js": "Backend to talk to dropbox"
   },
   "groups": {
     "core": {
       ],
       "depends": ["core"]
     },
+    "dropbox": {
+      "label": "Dropbox",
+      "desc": "Dropbox synchronization",
+      "files": [
+        "src/dropbox.js"
+      ],
+      "depends": ["core"]
+    },
     "debug": {
       "label": "Debug",
       "desc": "Debugging tools, useful for development",
index cedb496..da47d9f 100644 (file)
@@ -8,7 +8,7 @@
     <script src="../src/caching.js"></script>
     <script src="../src/access.js"></script>
     <script src="../src/eventhandling.js"></script>
-    <script src="../src/dropboxclient.js"></script>
+    <script src="../src/dropbox.js"></script>
     <script src="../src/wireclient.js"></script>
     <script src="../src/indexeddb.js"></script>
     <script src="../src/debug/inspect.js"></script>
diff --git a/src/dropbox.js b/src/dropbox.js
new file mode 100644 (file)
index 0000000..174968e
--- /dev/null
@@ -0,0 +1,157 @@
+(function(global) {
+  var RS = RemoteStorage;
+  /**
+   * Dropbox backend for RemoteStorage.js
+   */
+  var haveLocalStorage;
+  var AUTH_URL = 'https://www.dropbox.com/1/oauth2/authorize'
+  
+
+  var SETTINGS_KEY = 'remotestorage:dropbox';
+  RS.Dropbox = function(rs) {
+    this.connected = false;
+    this.rs = rs;
+    RS.eventHandling(this, 'change', 'connected');
+    rs.on('error', function(error){
+      if(error instanceof RemoteStorage.Unauthorized) {
+        //TODO deconfiguer the dropbox here and now
+      }
+    })
+    this.clientId = rs.apiKeys.dropbox.api_key
+    if(haveLocalStorage){
+      var settings;
+      try{
+        settings = JSON.parse(localStorage[SETTINGS_KEY]);
+      } catch(e){
+        console.error(e);
+      }
+      if(settings) {
+        this.configure(settings.userAdress, undefined, undefined, settings.token)
+      }
+    }
+    if(this.connected) {
+      setTimeout(this._emit.bind(this), 0, 'connected');
+    }
+   
+  }
+  RS.Dropbox.prototype = {
+    connect: function() {
+      this.rs.setBackend('dropbox');
+      RS.Authorize(AUTH_URL, '', String(document.location), this.clientId);
+    },
+    configure: function(useradress, href, storageApi, token) { 
+      console.log('dropbox configure',arguments);
+      if(typeof(token) !== 'undefined') this.token = token;
+      if(typeof(useradress) !== 'undefined') this.useradress = token;
+      
+      if(this.token){
+        this.connected = true;
+        this._emit('connected');
+      } else {
+        this.connected = false;
+      }
+      if(haveLocalStorage){
+        localStorage[SETTINGS_KEY] = JSON.stringify( { token: this.token, 
+                                                      useradress: this.useradress } );
+      }
+    },
+    get: function(path, options){
+      console.log('dropbox.get', arguments);
+      var url = 'https://api-content.dropbox.com/1/files/auto' + path
+      var promise = promising();
+      this._request('GET', url, {}, function(err, resp){
+        if(err){
+          promise.reject(err)
+        }else{
+          console.log(resp);
+          var status = resp.status;
+          var meta, body, mime, rev;
+          if(status == 200){
+            body = resp.responseText;
+            try {
+              meta = JSON.parse( resp.getResponseHeader('x-dropbox-metadata') )
+            } catch(e) {
+              promise.reject(e)
+              return;
+            }
+            mime = meta.mime_type;
+            rev = meta.rev;
+          }
+          promise.fulfill(status, body, mime, rev);
+        }
+      })
+      return promise;
+    },
+    put: function(path, body, contentType, options){
+      if(! this.connected) throw new Error("not connected (path: " + path + ")");
+      var promise = promising();
+      dropbox.writeFile(path, body, 
+        function(error, stat) {
+          if(error){
+            promise.reject(error)
+          }else{
+            promise.fulfill(stat);
+          }
+
+            })
+    },
+    'delete': function(path, options){
+      console.log('dropbox.delete ', arguemnts);
+    },
+    _request: function(method, url, options, callback) {
+      callback = callback.bind(this);
+      if(! this.token) {
+        callback("Not authorized!");
+      }
+      var xhr = new XMLHttpRequest();
+      xhr.open(method, url, true);
+      if(options.responseType) {
+        xhr.responseType = options.responseType;
+      }
+      xhr.setRequestHeader('Authorization', 'Bearer ' + this.token);
+      if(options.headers) {
+        for(var key in options.headers) {
+          xhr.setRequestHeader(key, options.headers[key]);
+        }
+      }
+      xhr.onload = function() {
+        // google tokens expire from time to time...
+        if(xhr.status == 401) {
+          this.connect();
+          return;
+        }
+        callback(null, xhr);
+      }.bind(this);
+      xhr.onerror = function(error) {
+        callback(error);
+      }.bind(this);
+      xhr.send(options.body);
+    }
+  };
+
+  RS.Dropbox._rs_init = function(rs) {
+    console.log("Dropbox init",rs)
+    var config = rs.apiKeys.dropbox
+    if(config) {
+      console.log('dropbox init ',config)
+      rs.dropbox = new RS.Dropbox(rs);
+    }
+    if(rs.backend == 'dropbox'){
+      rs._origRemote = rs.remote;
+      rs.remote = rs.dropbox;
+    }
+  }
+  
+  RS.Dropbox._rs_supported = function() {
+    haveLocalStorage = 'localStorage' in global;
+    console.log("Dropbox _rs_supported ??")
+    return true;
+  }
+  RS.Dropbox._rs_cleanup = function(rs) {
+    console.log('rs_cleanup :P')
+    if(haveLocalStorage){
+      delete localStorage[SETTINGS_KEY];
+      rs.setBackend(undefined);
+    }
+  }
+})(this)
diff --git a/src/dropboxclient.js b/src/dropboxclient.js
deleted file mode 100644 (file)
index 174968e..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-(function(global) {
-  var RS = RemoteStorage;
-  /**
-   * Dropbox backend for RemoteStorage.js
-   */
-  var haveLocalStorage;
-  var AUTH_URL = 'https://www.dropbox.com/1/oauth2/authorize'
-  
-
-  var SETTINGS_KEY = 'remotestorage:dropbox';
-  RS.Dropbox = function(rs) {
-    this.connected = false;
-    this.rs = rs;
-    RS.eventHandling(this, 'change', 'connected');
-    rs.on('error', function(error){
-      if(error instanceof RemoteStorage.Unauthorized) {
-        //TODO deconfiguer the dropbox here and now
-      }
-    })
-    this.clientId = rs.apiKeys.dropbox.api_key
-    if(haveLocalStorage){
-      var settings;
-      try{
-        settings = JSON.parse(localStorage[SETTINGS_KEY]);
-      } catch(e){
-        console.error(e);
-      }
-      if(settings) {
-        this.configure(settings.userAdress, undefined, undefined, settings.token)
-      }
-    }
-    if(this.connected) {
-      setTimeout(this._emit.bind(this), 0, 'connected');
-    }
-   
-  }
-  RS.Dropbox.prototype = {
-    connect: function() {
-      this.rs.setBackend('dropbox');
-      RS.Authorize(AUTH_URL, '', String(document.location), this.clientId);
-    },
-    configure: function(useradress, href, storageApi, token) { 
-      console.log('dropbox configure',arguments);
-      if(typeof(token) !== 'undefined') this.token = token;
-      if(typeof(useradress) !== 'undefined') this.useradress = token;
-      
-      if(this.token){
-        this.connected = true;
-        this._emit('connected');
-      } else {
-        this.connected = false;
-      }
-      if(haveLocalStorage){
-        localStorage[SETTINGS_KEY] = JSON.stringify( { token: this.token, 
-                                                      useradress: this.useradress } );
-      }
-    },
-    get: function(path, options){
-      console.log('dropbox.get', arguments);
-      var url = 'https://api-content.dropbox.com/1/files/auto' + path
-      var promise = promising();
-      this._request('GET', url, {}, function(err, resp){
-        if(err){
-          promise.reject(err)
-        }else{
-          console.log(resp);
-          var status = resp.status;
-          var meta, body, mime, rev;
-          if(status == 200){
-            body = resp.responseText;
-            try {
-              meta = JSON.parse( resp.getResponseHeader('x-dropbox-metadata') )
-            } catch(e) {
-              promise.reject(e)
-              return;
-            }
-            mime = meta.mime_type;
-            rev = meta.rev;
-          }
-          promise.fulfill(status, body, mime, rev);
-        }
-      })
-      return promise;
-    },
-    put: function(path, body, contentType, options){
-      if(! this.connected) throw new Error("not connected (path: " + path + ")");
-      var promise = promising();
-      dropbox.writeFile(path, body, 
-        function(error, stat) {
-          if(error){
-            promise.reject(error)
-          }else{
-            promise.fulfill(stat);
-          }
-
-            })
-    },
-    'delete': function(path, options){
-      console.log('dropbox.delete ', arguemnts);
-    },
-    _request: function(method, url, options, callback) {
-      callback = callback.bind(this);
-      if(! this.token) {
-        callback("Not authorized!");
-      }
-      var xhr = new XMLHttpRequest();
-      xhr.open(method, url, true);
-      if(options.responseType) {
-        xhr.responseType = options.responseType;
-      }
-      xhr.setRequestHeader('Authorization', 'Bearer ' + this.token);
-      if(options.headers) {
-        for(var key in options.headers) {
-          xhr.setRequestHeader(key, options.headers[key]);
-        }
-      }
-      xhr.onload = function() {
-        // google tokens expire from time to time...
-        if(xhr.status == 401) {
-          this.connect();
-          return;
-        }
-        callback(null, xhr);
-      }.bind(this);
-      xhr.onerror = function(error) {
-        callback(error);
-      }.bind(this);
-      xhr.send(options.body);
-    }
-  };
-
-  RS.Dropbox._rs_init = function(rs) {
-    console.log("Dropbox init",rs)
-    var config = rs.apiKeys.dropbox
-    if(config) {
-      console.log('dropbox init ',config)
-      rs.dropbox = new RS.Dropbox(rs);
-    }
-    if(rs.backend == 'dropbox'){
-      rs._origRemote = rs.remote;
-      rs.remote = rs.dropbox;
-    }
-  }
-  
-  RS.Dropbox._rs_supported = function() {
-    haveLocalStorage = 'localStorage' in global;
-    console.log("Dropbox _rs_supported ??")
-    return true;
-  }
-  RS.Dropbox._rs_cleanup = function(rs) {
-    console.log('rs_cleanup :P')
-    if(haveLocalStorage){
-      delete localStorage[SETTINGS_KEY];
-      rs.setBackend(undefined);
-    }
-  }
-})(this)