define [ "models/User" "libs/backbone" ], (User) -> Diff = Backbone.Model.extend initialize: (attributes, options) -> @ide = options.ide @set "doc", @ide.fileTreeManager.getEntity(@get("doc_id"), include_deleted: true) url: () -> url = "/project/#{@get("project_id")}/doc/#{@get("doc_id")}/diff" if @get("from")? and @get("to")? url += "?from=#{@get("from")}&to=#{@get("to")}" return url parse: (diff) -> for entry in diff.diff if entry.meta? if entry.meta.user? entry.meta.user = User.findOrBuild(entry.meta.user.id, entry.meta.user) else entry.meta.user = User.getAnonymousUser() return diff restore: (callback = (error) ->) -> $.ajax { url: "/project/#{@get("project_id")}/doc/#{@get("doc_id")}/version/#{@get("from")}/restore" type: "POST" headers: "X-CSRF-Token": window.csrfToken success: () -> callback() error: (error) -> callback(error) }