PageRenderTime 28ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/js/models/VolumeModel.js

http://github.com/ging/horizon-js
JavaScript | 57 lines | 49 code | 8 blank | 0 comment | 7 complexity | dfde63aece74b8fac56fdc300aab0ce1 MD5 | raw file
  1. var Volume = Backbone.Model.extend({
  2. _action:function(method, options) {
  3. var model = this;
  4. if (options == null) options = {};
  5. options.success = function(resp) {
  6. model.trigger('sync', model, resp, options);
  7. if (options.callback!=undefined) {
  8. options.callback(resp);
  9. }
  10. }
  11. var xhr = (this.sync || Backbone.sync).call(this, method, this, options);
  12. return xhr;
  13. },
  14. sync: function(method, model, options) {
  15. switch(method) {
  16. case "create":
  17. JSTACK.Nova.Volume.createvolume(model.get("size"), model.get("name"), model.get("description"), options.success);
  18. break;
  19. case "delete":
  20. JSTACK.Nova.Volume.deletevolume(model.get("id"), options.success);
  21. break;
  22. case "update":
  23. break;
  24. case "read":
  25. JSTACK.Nova.Volume.getvolume(model.get("id"), options.success);
  26. break;
  27. }
  28. },
  29. parse: function(resp) {
  30. if (resp.volume != undefined) {
  31. return resp.volume;
  32. } else {
  33. return resp;
  34. }
  35. }
  36. });
  37. var Volumes = Backbone.Collection.extend({
  38. model: Volume,
  39. sync: function(method, model, options) {
  40. switch(method) {
  41. case "read":
  42. JSTACK.Nova.Volume.getvolumelist(true, options.success);
  43. break;
  44. }
  45. },
  46. parse: function(resp) {
  47. return resp.volumes;
  48. }
  49. });