Show
Ignore:
Timestamp:
10/09/08 17:14:31 (3 months ago)
Author:
liosk
Message:

javascript/Grease: Modified Grease.ManagedStore?, Grease.Db.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/Grease/trunk/grease.js

    r20990 r21042  
    1717var ManagedStore = this.ManagedStore = { 
    1818  /** 
    19    * @var GearsLocalServer 
    20    */ 
    21   ls: factory.create('beta.localserver'), 
    22   /** 
    2319   * Creates (or opens) managed resource store. 
    2420   * @param string name 
     
    2723   */ 
    2824  create: function() { 
    29     var store = this.ls.createManagedStore.apply(this.ls, arguments); 
    30     return this.extend(store); 
     25    var ls = factory.create('beta.localserver'); 
     26    return this.extend(ls.createManagedStore.apply(ls, arguments)); 
    3127  }, 
    3228  /** 
     
    3632   */ 
    3733  remove: function() { 
    38     this.ls.removeManagedStore.apply(this.ls, arguments); 
     34    var ls = factory.create('beta.localserver'); 
     35    ls.removeManagedStore.apply(ls, arguments); 
    3936  }, 
    4037  /** 
     
    5249    /** 
    5350     * A handy method to get/set manifestUrl. 
     51     * @param string url (optional) 
     52     * @return string|GearsManagedResourceStore 
    5453     */ 
    5554    manifest: function(url) { 
     
    6059        return this; 
    6160      } 
     61    }, 
     62    /** 
     63     * Checks for update and calls back on complete/error. 
     64     * @param string url (optional) The URL of manifest file. 
     65     * @param object options (optional) { oncomplete: callback, onerror: callback } 
     66     * @return GearsManagedResourceStore Fluent interface. 
     67     */ 
     68    update: function(url, options) { 
     69      var store = this, oldVersion = store.currentVersion; 
     70      store.manifest(url); 
     71      store.checkForUpdate(); 
     72 
     73      // emulate events 
     74      if (options) { 
     75        var timer = window.setInterval(function() { 
     76          if (store.updateStatus == 0) { 
     77            window.clearInterval(timer); 
     78            if (options.oncomplete) { 
     79              var newVersion = store.currentVersion; 
     80              options.oncomplete({ newVersion: (oldVersion != newVersion) ? newVersion : '' }); 
     81            } 
     82          } else if (store.updateStatus == 3) { 
     83            window.clearInterval(timer); 
     84            if (options.onerror) { 
     85              options.onerror({ message: store.lastErrorMessage }); 
     86            } 
     87          } 
     88        }, 500); 
     89      } 
     90 
     91      return this; 
    6292    } 
    6393  } 
     
    71101var Db = this.Db = { 
    72102  /** 
    73    * Opens database. 
     103   * Creates database object. 
    74104   * @param string name Database name. 
    75105   * @return GearsDatabase Extended GearsDatabase object. 
    76106   */ 
    77   open: function(name) { 
     107  create: function(name) { 
    78108    var db = factory.create('beta.database'); 
    79109    db.open(name); 
     
    231261 */ 
    232262Db.Table = function(db, table, primary) { 
    233   this.db      = Db[(typeof db == 'string') ? 'open' : 'extend'](db); 
     263  this.db      = Db[(typeof db == 'string') ? 'create' : 'extend'](db); 
    234264  this.table   = '"' + table + '"'; 
    235265  this.primary = '"' + primary + '"';