| 127 | }; |
| 128 | |
| 129 | saveEventually(callback) { |
| 130 | |
| 131 | var thisObj = this; |
| 132 | var def; |
| 133 | if (!callback) { |
| 134 | def = new CB.Promise(); |
| 135 | } |
| 136 | CB._validate(); |
| 137 | localforage.getItem('cb-saveEventually-' + CB.appId).then(function(value) { |
| 138 | var arr = []; |
| 139 | if (value) |
| 140 | arr = value; |
| 141 | arr.push({saved: false, document: CB.toJSON(thisObj)}); |
| 142 | localforage.setItem('cb-saveEventually-' + CB.appId, arr).then(function(value) { |
| 143 | CloudObject.pin(thisObj, { |
| 144 | success: function(obj) { |
| 145 | if (!callback) { |
| 146 | def.resolve(value); |
| 147 | } else { |
| 148 | callback.success(value); |
| 149 | } |
| 150 | }, |
| 151 | error: function(err) { |
| 152 | if (!callback) { |
| 153 | def.reject(err); |
| 154 | } else { |
| 155 | callback.error(err); |
| 156 | } |
| 157 | } |
| 158 | }); |
| 159 | }).catch(function(err) { |
| 160 | if (!callback) { |
| 161 | def.reject(err); |
| 162 | } else { |
| 163 | callback.error(err); |
| 164 | } |
| 165 | }); |
| 166 | }).catch(function(err) { |
| 167 | if (!callback) { |
| 168 | def.reject(err); |
| 169 | } else { |
| 170 | callback.error(err); |
| 171 | } |
| 172 | }); |
| 173 | if (!callback) { |
| 174 | return def.promise; |
| 175 | } |
| 176 | } |
| 177 | |
| 178 | disableSync(callback) { |
| 179 | CB.CloudObject.disableSync(this.document, callback); |