Diff.coffee 954 B

1234567891011121314151617181920212223242526272829303132333435
  1. define [
  2. "models/User"
  3. "libs/backbone"
  4. ], (User) ->
  5. Diff = Backbone.Model.extend
  6. initialize: (attributes, options) ->
  7. @ide = options.ide
  8. @set "doc", @ide.fileTreeManager.getEntity(@get("doc_id"), include_deleted: true)
  9. url: () ->
  10. url = "/project/#{@get("project_id")}/doc/#{@get("doc_id")}/diff"
  11. if @get("from")? and @get("to")?
  12. url += "?from=#{@get("from")}&to=#{@get("to")}"
  13. return url
  14. parse: (diff) ->
  15. for entry in diff.diff
  16. if entry.meta?
  17. if entry.meta.user?
  18. entry.meta.user = User.findOrBuild(entry.meta.user.id, entry.meta.user)
  19. else
  20. entry.meta.user = User.getAnonymousUser()
  21. return diff
  22. restore: (callback = (error) ->) ->
  23. $.ajax {
  24. url: "/project/#{@get("project_id")}/doc/#{@get("doc_id")}/version/#{@get("from")}/restore"
  25. type: "POST"
  26. headers:
  27. "X-CSRF-Token": window.csrfToken
  28. success: () ->
  29. callback()
  30. error: (error) ->
  31. callback(error)
  32. }