OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 "use strict"; | 5 "use strict"; |
6 | 6 |
7 // https://codereview.chromium.org/api/148223004/70001/?comments=true | 7 // https://codereview.chromium.org/api/148223004/70001/?comments=true |
8 function PatchSet(issue, id, sequence) | 8 function PatchSet(issue, id, sequence) |
9 { | 9 { |
10 this.files = []; // Array<PatchFile> | 10 this.files = []; // Array<PatchFile> |
11 this.sourceFiles = []; // Array<PatchFile> | 11 this.sourceFiles = []; // Array<PatchFile> |
12 this.testFiles = []; // Array<PatchFile> | 12 this.testFiles = []; // Array<PatchFile> |
13 this.tryJobResults = []; // Array<tryJobResults> | 13 this.tryJobResults = []; // Array<tryJobResults> |
14 this.created = ""; // Date | 14 this.created = ""; // Date |
15 this.messageCount = 0; | 15 this.messageCount = 0; |
16 this.draftCount = 0; | 16 this.draftCount = 0; |
17 this.lastModified = ""; // Date | 17 this.lastModified = ""; // Date |
18 this.issue = issue || null; | 18 this.issue = issue || null; |
19 this.owner = null // User | 19 this.owner = null // User |
20 this.title = ""; | 20 this.title = ""; |
21 this.id = id || 0; | 21 this.id = id || 0; |
22 this.sequence = sequence || 0; | 22 this.sequence = sequence || 0; |
23 this.commit = false; | 23 this.commit = false; |
24 this.mostRecent = false; | 24 this.mostRecent = false; |
25 this.active = false; | 25 this.active = false; |
26 } | 26 } |
27 | 27 |
28 PatchSet.DETAIL_URL = "/api/{1}/{2}/?comments=true" | 28 PatchSet.DETAIL_URL = "/api/{1}/{2}/?comments=true"; |
29 PatchSet.REVERT_URL = "/api/{1}/{2}/revert"; | 29 PatchSet.REVERT_URL = "/api/{1}/{2}/revert"; |
| 30 PatchSet.DELETE_URL = "/{1}/patchset/{2}/delete"; |
30 PatchSet.TITLE_URL = "/{1}/patchset/{2}/edit_patchset_title"; | 31 PatchSet.TITLE_URL = "/{1}/patchset/{2}/edit_patchset_title"; |
31 | 32 |
32 PatchSet.prototype.getDetailUrl = function() | 33 PatchSet.prototype.getDetailUrl = function() |
33 { | 34 { |
34 return PatchSet.DETAIL_URL.assign( | 35 return PatchSet.DETAIL_URL.assign( |
35 encodeURIComponent(this.issue.id), | 36 encodeURIComponent(this.issue.id), |
36 encodeURIComponent(this.id)); | 37 encodeURIComponent(this.id)); |
37 }; | 38 }; |
38 | 39 |
39 PatchSet.prototype.getRevertUrl = function() | 40 PatchSet.prototype.getRevertUrl = function() |
40 { | 41 { |
41 return PatchSet.REVERT_URL.assign( | 42 return PatchSet.REVERT_URL.assign( |
42 encodeURIComponent(this.issue.id), | 43 encodeURIComponent(this.issue.id), |
43 encodeURIComponent(this.id)); | 44 encodeURIComponent(this.id)); |
44 }; | 45 }; |
45 | 46 |
46 PatchSet.prototype.getEditTitleUrl = function() | 47 PatchSet.prototype.getEditTitleUrl = function() |
47 { | 48 { |
48 return PatchSet.TITLE_URL.assign( | 49 return PatchSet.TITLE_URL.assign( |
49 encodeURIComponent(this.issue.id), | 50 encodeURIComponent(this.issue.id), |
50 encodeURIComponent(this.id)); | 51 encodeURIComponent(this.id)); |
51 }; | 52 }; |
52 | 53 |
| 54 PatchSet.prototype.getDeleteUrl = function() |
| 55 { |
| 56 return PatchSet.DELETE_URL.assign( |
| 57 encodeURIComponent(this.issue.id), |
| 58 encodeURIComponent(this.id)); |
| 59 }; |
| 60 |
53 PatchSet.prototype.loadDetails = function() | 61 PatchSet.prototype.loadDetails = function() |
54 { | 62 { |
55 var patchset = this; | 63 var patchset = this; |
56 return loadJSON(this.getDetailUrl()).then(function(data) { | 64 return loadJSON(this.getDetailUrl()).then(function(data) { |
57 patchset.parseData(data); | 65 patchset.parseData(data); |
58 return patchset; | 66 return patchset; |
59 }); | 67 }); |
60 }; | 68 }; |
61 | 69 |
62 PatchSet.prototype.revert = function(options) | 70 PatchSet.prototype.revert = function(options) |
(...skipping 24 matching lines...) Expand all Loading... |
87 return sendFormData(patchset.getEditTitleUrl(), { | 95 return sendFormData(patchset.getEditTitleUrl(), { |
88 xsrf_token: user.xsrfToken, | 96 xsrf_token: user.xsrfToken, |
89 patchset_title: value, | 97 patchset_title: value, |
90 }); | 98 }); |
91 }).then(function() { | 99 }).then(function() { |
92 patchset.title = value; | 100 patchset.title = value; |
93 return value; | 101 return value; |
94 }); | 102 }); |
95 }; | 103 }; |
96 | 104 |
| 105 PatchSet.prototype.delete = function() |
| 106 { |
| 107 var patchset = this; |
| 108 return User.loadCurrentUser().then(function(user) { |
| 109 return sendFormData(patchset.getDeleteUrl(), { |
| 110 xsrf_token: user.xsrfToken, |
| 111 }); |
| 112 }); |
| 113 }; |
| 114 |
97 PatchSet.prototype.parseData = function(data) | 115 PatchSet.prototype.parseData = function(data) |
98 { | 116 { |
99 var patchset = this; | 117 var patchset = this; |
100 | 118 |
101 if (!this.issue || data.issue != this.issue.id || data.patchset != this.id)
{ | 119 if (!this.issue || data.issue != this.issue.id || data.patchset != this.id)
{ |
102 throw new Error("Invalid patchset loaded " + data.issue + " != " + this.
issue.id | 120 throw new Error("Invalid patchset loaded " + data.issue + " != " + this.
issue.id |
103 + " or " + data.patchset + " != " + this.id); | 121 + " or " + data.patchset + " != " + this.id); |
104 } | 122 } |
105 | 123 |
106 this.owner = new User(data.owner); | 124 this.owner = new User(data.owner); |
(...skipping 24 matching lines...) Expand all Loading... |
131 .map(function(builder) { | 149 .map(function(builder) { |
132 var jobSet = new TryJobResultSet(builder); | 150 var jobSet = new TryJobResultSet(builder); |
133 jobSet.results = tryResults[builder].map(function(resultData) { | 151 jobSet.results = tryResults[builder].map(function(resultData) { |
134 var result = new TryJobResult(); | 152 var result = new TryJobResult(); |
135 result.parseData(resultData); | 153 result.parseData(resultData); |
136 return result; | 154 return result; |
137 }).reverse(); | 155 }).reverse(); |
138 return jobSet; | 156 return jobSet; |
139 }); | 157 }); |
140 }; | 158 }; |
OLD | NEW |