Merge ~ilasc/launchpad:add-delete-comment-revision-ui into launchpad:master
- Git
- lp:~ilasc/launchpad
- add-delete-comment-revision-ui
- Merge into master
Proposed by
Ioana Lasc
Status: | Merged |
---|---|
Approved by: | Ioana Lasc |
Approved revision: | 154ff1ec9f88b5dab54d42bf40a27bd7db4337b7 |
Merge reported by: | Otto Co-Pilot |
Merged at revision: | not available |
Proposed branch: | ~ilasc/launchpad:add-delete-comment-revision-ui |
Merge into: | launchpad:master |
Diff against target: |
326 lines (+147/-17) 7 files modified
lib/canonical/launchpad/icing/css/base.scss (+7/-0) lib/lp/answers/templates/questionmessage-display.pt (+5/-1) lib/lp/bugs/templates/bugcomment-box.pt (+5/-2) lib/lp/code/templates/codereviewcomment-header.pt (+3/-0) lib/lp/services/messages/javascript/messages.edit.js (+63/-4) lib/lp/services/messages/javascript/tests/test_messages.edit.html (+8/-2) lib/lp/services/messages/javascript/tests/test_messages.edit.js (+56/-8) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Colin Watson (community) | Approve | ||
Review via email: mp+406151@code.launchpad.net |
Commit message
Add delete comment revision capability
Description of the change
To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) wrote : | # |
Revision history for this message
Colin Watson (cjwatson) : | # |
review:
Approve
Revision history for this message
Ioana Lasc (ilasc) : | # |
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/lib/canonical/launchpad/icing/css/base.scss b/lib/canonical/launchpad/icing/css/base.scss | |||
2 | index 1e33ca7..086e64d 100644 | |||
3 | --- a/lib/canonical/launchpad/icing/css/base.scss | |||
4 | +++ b/lib/canonical/launchpad/icing/css/base.scss | |||
5 | @@ -625,6 +625,13 @@ body { | |||
6 | 625 | padding-left: 20px; | 625 | padding-left: 20px; |
7 | 626 | padding-bottom: 10px; | 626 | padding-bottom: 10px; |
8 | 627 | } | 627 | } |
9 | 628 | |||
10 | 629 | // If the content was deleted, we show a default message with | ||
11 | 630 | // this CSS class. | ||
12 | 631 | .deleted-content { | ||
13 | 632 | padding: 5px; | ||
14 | 633 | opacity: 50%; | ||
15 | 634 | } | ||
16 | 628 | } | 635 | } |
17 | 629 | 636 | ||
18 | 630 | .active { | 637 | .active { |
19 | diff --git a/lib/lp/answers/templates/questionmessage-display.pt b/lib/lp/answers/templates/questionmessage-display.pt | |||
20 | index fa39275..8b58409 100644 | |||
21 | --- a/lib/lp/answers/templates/questionmessage-display.pt | |||
22 | +++ b/lib/lp/answers/templates/questionmessage-display.pt | |||
23 | @@ -8,7 +8,8 @@ | |||
24 | 8 | tal:define="css_classes view/getBoardCommentCSSClass" | 8 | tal:define="css_classes view/getBoardCommentCSSClass" |
25 | 9 | tal:attributes="class string:${css_classes}; | 9 | tal:attributes="class string:${css_classes}; |
26 | 10 | id string:comment-${context/index}; | 10 | id string:comment-${context/index}; |
28 | 11 | data-baseurl context/fmt:url"> | 11 | data-baseurl context/fmt:url; |
29 | 12 | data-i-can-edit view/can_edit"> | ||
30 | 12 | <div class="boardCommentDetails"> | 13 | <div class="boardCommentDetails"> |
31 | 13 | <table> | 14 | <table> |
32 | 14 | <tbody> | 15 | <tbody> |
33 | @@ -23,6 +24,9 @@ | |||
34 | 23 | <script type="text/template"> | 24 | <script type="text/template"> |
35 | 24 | <div class='message-revision-item'> | 25 | <div class='message-revision-item'> |
36 | 25 | <div class='message-revision-title'> | 26 | <div class='message-revision-title'> |
37 | 27 | <a class="sprite remove action-icon message-revision-del-btn"> | ||
38 | 28 | Remove | ||
39 | 29 | </a> | ||
40 | 26 | <a class="js-action"> | 30 | <a class="js-action"> |
41 | 27 | Revision #{revision}, created at {date_created_display} | 31 | Revision #{revision}, created at {date_created_display} |
42 | 28 | </a> | 32 | </a> |
43 | diff --git a/lib/lp/bugs/templates/bugcomment-box.pt b/lib/lp/bugs/templates/bugcomment-box.pt | |||
44 | index c9f1d60..b25c482 100644 | |||
45 | --- a/lib/lp/bugs/templates/bugcomment-box.pt | |||
46 | +++ b/lib/lp/bugs/templates/bugcomment-box.pt | |||
47 | @@ -11,8 +11,8 @@ | |||
48 | 11 | python: comment.show_for_admin and 'adminHiddenComment' or ''" | 11 | python: comment.show_for_admin and 'adminHiddenComment' or ''" |
49 | 12 | tal:attributes="class string:boardComment editable-message | 12 | tal:attributes="class string:boardComment editable-message |
50 | 13 | ${remote_bug_comment_class} ${admin_comment_hidden_class}; | 13 | ${remote_bug_comment_class} ${admin_comment_hidden_class}; |
53 | 14 | data-baseurl comment/fmt:url"> | 14 | data-baseurl comment/fmt:url; |
54 | 15 | 15 | data-i-can-edit view/can_edit"> | |
55 | 16 | <div class="boardCommentDetails"> | 16 | <div class="boardCommentDetails"> |
56 | 17 | <div class="message-revision-container"> | 17 | <div class="message-revision-container"> |
57 | 18 | <div class="message-revision-container-header"> | 18 | <div class="message-revision-container-header"> |
58 | @@ -23,6 +23,9 @@ | |||
59 | 23 | <script type="text/template"> | 23 | <script type="text/template"> |
60 | 24 | <div class='message-revision-item'> | 24 | <div class='message-revision-item'> |
61 | 25 | <div class='message-revision-title'> | 25 | <div class='message-revision-title'> |
62 | 26 | <a class="sprite remove action-icon message-revision-del-btn"> | ||
63 | 27 | Remove | ||
64 | 28 | </a> | ||
65 | 26 | <a class="js-action"> | 29 | <a class="js-action"> |
66 | 27 | Revision #{revision}, created at {date_created_display} | 30 | Revision #{revision}, created at {date_created_display} |
67 | 28 | </a> | 31 | </a> |
68 | diff --git a/lib/lp/code/templates/codereviewcomment-header.pt b/lib/lp/code/templates/codereviewcomment-header.pt | |||
69 | index 8ddea58..1f597c3 100644 | |||
70 | --- a/lib/lp/code/templates/codereviewcomment-header.pt | |||
71 | +++ b/lib/lp/code/templates/codereviewcomment-header.pt | |||
72 | @@ -12,6 +12,9 @@ | |||
73 | 12 | <script type="text/template"> | 12 | <script type="text/template"> |
74 | 13 | <div class='message-revision-item'> | 13 | <div class='message-revision-item'> |
75 | 14 | <div class='message-revision-title'> | 14 | <div class='message-revision-title'> |
76 | 15 | <a class="sprite remove action-icon message-revision-del-btn"> | ||
77 | 16 | Remove | ||
78 | 17 | </a> | ||
79 | 15 | <a class="js-action"> | 18 | <a class="js-action"> |
80 | 16 | Revision #{revision}, created at {date_created_display} | 19 | Revision #{revision}, created at {date_created_display} |
81 | 17 | </a> | 20 | </a> |
82 | diff --git a/lib/lp/services/messages/javascript/messages.edit.js b/lib/lp/services/messages/javascript/messages.edit.js | |||
83 | index 48c9b8a..f148a45 100644 | |||
84 | --- a/lib/lp/services/messages/javascript/messages.edit.js | |||
85 | +++ b/lib/lp/services/messages/javascript/messages.edit.js | |||
86 | @@ -7,6 +7,7 @@ | |||
87 | 7 | * - A div container with the class .editable-message containing everything | 7 | * - A div container with the class .editable-message containing everything |
88 | 8 | * else related to the message | 8 | * else related to the message |
89 | 9 | * - A data-baseurl="/path/to/msg" on the .editable-message container | 9 | * - A data-baseurl="/path/to/msg" on the .editable-message container |
90 | 10 | * - A data-i-can-edit="True|False" on the .editable-message container | ||
91 | 10 | * - A .editable-message-body container with the original msg content | 11 | * - A .editable-message-body container with the original msg content |
92 | 11 | * - A .editable-message-edit-btn element inside the main container, that will | 12 | * - A .editable-message-edit-btn element inside the main container, that will |
93 | 12 | * switch the view to edit form when clicked. | 13 | * switch the view to edit form when clicked. |
94 | @@ -39,6 +40,16 @@ YUI.add('lp.services.messages.edit', function(Y) { | |||
95 | 39 | "Please try again in a few minutes." | 40 | "Please try again in a few minutes." |
96 | 40 | ); | 41 | ); |
97 | 41 | 42 | ||
98 | 43 | module.confirm_delete_revision_msg = ( | ||
99 | 44 | "Are you sure you want to delete this "+ | ||
100 | 45 | "revision content?"); | ||
101 | 46 | |||
102 | 47 | module.deleted_content_msg = ( | ||
103 | 48 | "<span class='deleted-content'>" + | ||
104 | 49 | "Content deleted by the user." + | ||
105 | 50 | "</span>" | ||
106 | 51 | ); | ||
107 | 52 | |||
108 | 42 | module.confirm_delete_message = ( | 53 | module.confirm_delete_message = ( |
109 | 43 | "Are you sure you want to delete this "+ | 54 | "Are you sure you want to delete this "+ |
110 | 44 | "comment and all its revisions?"); | 55 | "comment and all its revisions?"); |
111 | @@ -255,6 +266,7 @@ YUI.add('lp.services.messages.edit', function(Y) { | |||
112 | 255 | module.fillMessageRevisions = function(elements, revisions) { | 266 | module.fillMessageRevisions = function(elements, revisions) { |
113 | 256 | // Position the message revision list element. | 267 | // Position the message revision list element. |
114 | 257 | revisions = revisions.reverse(); | 268 | revisions = revisions.reverse(); |
115 | 269 | var i_can_edit = elements.container.getData('i-can-edit') === "True"; | ||
116 | 258 | var revisions_container = elements.container.one( | 270 | var revisions_container = elements.container.one( |
117 | 259 | ".message-revision-container"); | 271 | ".message-revision-container"); |
118 | 260 | var last_edit_el = elements.last_edit.getDOMNode(); | 272 | var last_edit_el = elements.last_edit.getDOMNode(); |
119 | @@ -271,14 +283,26 @@ YUI.add('lp.services.messages.edit', function(Y) { | |||
120 | 271 | revisions_container.setStyle('display', 'none'); | 283 | revisions_container.setStyle('display', 'none'); |
121 | 272 | }); | 284 | }); |
122 | 273 | 285 | ||
124 | 274 | var content = ""; | 286 | nodes_holder.getDOMNode().innerHTML = ""; |
125 | 275 | revisions.forEach(function(rev) { | 287 | revisions.forEach(function(rev) { |
126 | 276 | var attrs = rev.getAttrs(); | 288 | var attrs = rev.getAttrs(); |
129 | 277 | attrs.content = module.htmlify_msg(attrs.content); | 289 | if (!attrs.date_deleted) { |
130 | 278 | content += Y.Lang.sub(template, attrs); | 290 | attrs.content = module.htmlify_msg(attrs.content); |
131 | 291 | } | ||
132 | 292 | else { | ||
133 | 293 | attrs.content = module.deleted_content_msg; | ||
134 | 294 | } | ||
135 | 295 | var node = Y.DOM.create(Y.Lang.sub(template, attrs)); | ||
136 | 296 | node.dataset['revision_url'] = attrs.self_link; | ||
137 | 297 | nodes_holder.appendChild(node); | ||
138 | 298 | |||
139 | 299 | if(attrs.date_deleted || !i_can_edit) { | ||
140 | 300 | // If it was already deleted or I don't have permission to | ||
141 | 301 | // delete it, remove the "delete button". | ||
142 | 302 | module.removeDeleteRevisionButton(Y.Node(node)); | ||
143 | 303 | } | ||
144 | 279 | }); | 304 | }); |
145 | 280 | 305 | ||
146 | 281 | nodes_holder.getDOMNode().innerHTML = content; | ||
147 | 282 | nodes_holder.all(".message-revision-item").each(function(rev_item) { | 306 | nodes_holder.all(".message-revision-item").each(function(rev_item) { |
148 | 283 | rev_item.one(".message-revision-title").on('click', function() { | 307 | rev_item.one(".message-revision-title").on('click', function() { |
149 | 284 | nodes_holder.all('.message-revision-body').setStyle( | 308 | nodes_holder.all('.message-revision-body').setStyle( |
150 | @@ -291,9 +315,44 @@ YUI.add('lp.services.messages.edit', function(Y) { | |||
151 | 291 | 'active'); | 315 | 'active'); |
152 | 292 | rev_item.addClass('active'); | 316 | rev_item.addClass('active'); |
153 | 293 | }); | 317 | }); |
154 | 318 | |||
155 | 319 | var delete_btn = rev_item.one(".message-revision-del-btn"); | ||
156 | 320 | if (delete_btn) { | ||
157 | 321 | delete_btn.on('click', function() { | ||
158 | 322 | module.deleteMessageRevisionContent(rev_item); | ||
159 | 323 | }); | ||
160 | 324 | } | ||
161 | 294 | }); | 325 | }); |
162 | 295 | }; | 326 | }; |
163 | 296 | 327 | ||
164 | 328 | module.removeDeleteRevisionButton = function(rev_item_node) { | ||
165 | 329 | var delete_btn = rev_item_node.one('.message-revision-del-btn'); | ||
166 | 330 | if (delete_btn) { | ||
167 | 331 | var node_to_remove = delete_btn.getDOMNode(); | ||
168 | 332 | node_to_remove.parentNode.removeChild(node_to_remove); | ||
169 | 333 | } | ||
170 | 334 | }; | ||
171 | 335 | |||
172 | 336 | module.deleteMessageRevisionContent = function(rev_item) { | ||
173 | 337 | var revision_url = rev_item.getData('revision_url'); | ||
174 | 338 | if (module.confirm(module.confirm_delete_revision_msg)) { | ||
175 | 339 | var config = { | ||
176 | 340 | on: { | ||
177 | 341 | success: function() { | ||
178 | 342 | var body_dom = rev_item.one( | ||
179 | 343 | '.message-revision-body').getDOMNode(); | ||
180 | 344 | body_dom.innerHTML = module.deleted_content_msg; | ||
181 | 345 | module.removeDeleteRevisionButton(rev_item); | ||
182 | 346 | }, | ||
183 | 347 | failure: function(err) { | ||
184 | 348 | alert("There was an error. Please try again."); | ||
185 | 349 | } | ||
186 | 350 | } | ||
187 | 351 | }; | ||
188 | 352 | this.lp_client.named_post(revision_url, 'deleteContent', config); | ||
189 | 353 | } | ||
190 | 354 | }; | ||
191 | 355 | |||
192 | 297 | module.onLastEditClick = function(elements, baseurl) { | 356 | module.onLastEditClick = function(elements, baseurl) { |
193 | 298 | // Hide all open revision containers. | 357 | // Hide all open revision containers. |
194 | 299 | Y.all('.message-revision-container').each(function(container) { | 358 | Y.all('.message-revision-container').each(function(container) { |
195 | diff --git a/lib/lp/services/messages/javascript/tests/test_messages.edit.html b/lib/lp/services/messages/javascript/tests/test_messages.edit.html | |||
196 | index ce4d0df..f035857 100644 | |||
197 | --- a/lib/lp/services/messages/javascript/tests/test_messages.edit.html | |||
198 | +++ b/lib/lp/services/messages/javascript/tests/test_messages.edit.html | |||
199 | @@ -54,7 +54,7 @@ GNU Affero General Public License version 3 (see the file LICENSE). | |||
200 | 54 | 54 | ||
201 | 55 | <!-- First editable message --> | 55 | <!-- First editable message --> |
202 | 56 | <div class="editable-message" id="first-message" | 56 | <div class="editable-message" id="first-message" |
204 | 57 | data-baseurl="/message/1"> | 57 | data-baseurl="/message/1" data-i-can-edit="True"> |
205 | 58 | <!-- Revision list container and its template --> | 58 | <!-- Revision list container and its template --> |
206 | 59 | <div class="message-revision-container"> | 59 | <div class="message-revision-container"> |
207 | 60 | <!-- The revision list pop-up header, with the image that closes | 60 | <!-- The revision list pop-up header, with the image that closes |
208 | @@ -74,6 +74,9 @@ GNU Affero General Public License version 3 (see the file LICENSE). | |||
209 | 74 | <!-- The description of the revision, that will expand the | 74 | <!-- The description of the revision, that will expand the |
210 | 75 | revision content once clicked. --> | 75 | revision content once clicked. --> |
211 | 76 | <div class='message-revision-title'> | 76 | <div class='message-revision-title'> |
212 | 77 | <a class="sprite remove action-icon message-revision-del-btn"> | ||
213 | 78 | Remove | ||
214 | 79 | </a> | ||
215 | 77 | <a class="js-action">Revision #{revision}, created at {date_created_display}</a> | 80 | <a class="js-action">Revision #{revision}, created at {date_created_display}</a> |
216 | 78 | </div> | 81 | </div> |
217 | 79 | <!-- The revision content itself --> | 82 | <!-- The revision content itself --> |
218 | @@ -109,7 +112,7 @@ GNU Affero General Public License version 3 (see the file LICENSE). | |||
219 | 109 | 112 | ||
220 | 110 | <!-- Second editable message --> | 113 | <!-- Second editable message --> |
221 | 111 | <div class="editable-message" id="second-message" | 114 | <div class="editable-message" id="second-message" |
223 | 112 | data-baseurl="/message/2"> | 115 | data-baseurl="/message/2" data-i-can-edit="True"> |
224 | 113 | <!-- Revision list container and its template --> | 116 | <!-- Revision list container and its template --> |
225 | 114 | <div class="message-revision-container"> | 117 | <div class="message-revision-container"> |
226 | 115 | <div class="message-revision-container-header"> | 118 | <div class="message-revision-container-header"> |
227 | @@ -120,6 +123,9 @@ GNU Affero General Public License version 3 (see the file LICENSE). | |||
228 | 120 | <script type="text/template"> | 123 | <script type="text/template"> |
229 | 121 | <div class='message-revision-item'> | 124 | <div class='message-revision-item'> |
230 | 122 | <div class='message-revision-title'> | 125 | <div class='message-revision-title'> |
231 | 126 | <a class="sprite remove action-icon message-revision-del-btn"> | ||
232 | 127 | Remove | ||
233 | 128 | </a> | ||
234 | 123 | <a class="js-action">Revision #{revision}, created at {date_created_display}</a> | 129 | <a class="js-action">Revision #{revision}, created at {date_created_display}</a> |
235 | 124 | </div> | 130 | </div> |
236 | 125 | <div class='message-revision-body'>{content}</div> | 131 | <div class='message-revision-body'>{content}</div> |
237 | diff --git a/lib/lp/services/messages/javascript/tests/test_messages.edit.js b/lib/lp/services/messages/javascript/tests/test_messages.edit.js | |||
238 | index 0bcccb3..dfc2a07 100644 | |||
239 | --- a/lib/lp/services/messages/javascript/tests/test_messages.edit.js | |||
240 | +++ b/lib/lp/services/messages/javascript/tests/test_messages.edit.js | |||
241 | @@ -82,11 +82,11 @@ YUI.add('lp.services.messages.edit.test', function(Y) { | |||
242 | 82 | this.msg_bodies[i].setStyle('display', ''); | 82 | this.msg_bodies[i].setStyle('display', ''); |
243 | 83 | this.msg_forms[i].setStyle('display', ''); | 83 | this.msg_forms[i].setStyle('display', ''); |
244 | 84 | this.textareas[i].getDOMNode().value = ''; | 84 | this.textareas[i].getDOMNode().value = ''; |
245 | 85 | this.last_edit[0].getDOMNode().innerHTML = ':'; | ||
246 | 86 | this.last_edit[1].getDOMNode().innerHTML = ( | ||
247 | 87 | '(last edit 5 minutes ago):'); | ||
248 | 88 | this.revision_history_lists[i].getDOMNode().innerHTML = ''; | 85 | this.revision_history_lists[i].getDOMNode().innerHTML = ''; |
249 | 89 | } | 86 | } |
250 | 87 | this.last_edit[0].getDOMNode().innerHTML = ':'; | ||
251 | 88 | this.last_edit[1].getDOMNode().innerHTML = ( | ||
252 | 89 | '(last edit 5 minutes ago):'); | ||
253 | 90 | }, | 90 | }, |
254 | 91 | 91 | ||
255 | 92 | test_instantiation_hides_forms: function() { | 92 | test_instantiation_hides_forms: function() { |
256 | @@ -223,17 +223,65 @@ YUI.add('lp.services.messages.edit.test', function(Y) { | |||
257 | 223 | var title = rev.one('.message-revision-title'); | 223 | var title = rev.one('.message-revision-title'); |
258 | 224 | var body = rev.one('.message-revision-body'); | 224 | var body = rev.one('.message-revision-body'); |
259 | 225 | var expected_title = Y.Lang.sub( | 225 | var expected_title = Y.Lang.sub( |
263 | 226 | '<a class="js-action">' + | 226 | 'Remove Revision #{revision},'+ |
264 | 227 | 'Revision #{revision}, created at {date_created_display}' + | 227 | ' created at {date_created_display}', |
262 | 228 | '</a>', | ||
265 | 229 | entry); | 228 | entry); |
268 | 230 | Y.Assert.areSame( | 229 | Y.Assert.areEqual( |
269 | 231 | expected_title, title.getDOMNode().innerHTML.trim()); | 230 | expected_title, title.getDOMNode().innerText); |
270 | 231 | |||
271 | 232 | Y.Assert.areSame( | 232 | Y.Assert.areSame( |
272 | 233 | module.htmlify_msg(entry.content), | 233 | module.htmlify_msg(entry.content), |
273 | 234 | body.getDOMNode().innerHTML); | 234 | body.getDOMNode().innerHTML); |
274 | 235 | }); | 235 | }); |
275 | 236 | 236 | ||
276 | 237 | revisions = this.revision_history_lists[1].all( | ||
277 | 238 | ".message-revision-item"); | ||
278 | 239 | Y.Assert.areSame(2, revisions.size()); | ||
279 | 240 | |||
280 | 241 | // Delete one revision from the revision list of | ||
281 | 242 | // the second message | ||
282 | 243 | revisions.each(function(rev, j) { | ||
283 | 244 | var entry = response.entries[response.entries.length - j -1]; | ||
284 | 245 | var title = rev.one('.message-revision-title'); | ||
285 | 246 | var body = rev.one('.message-revision-body'); | ||
286 | 247 | |||
287 | 248 | if (j===0){ | ||
288 | 249 | // mock user's response to modal widonw that is | ||
289 | 250 | // asking the confirmation to delete revision | ||
290 | 251 | module.confirm = function(){ | ||
291 | 252 | return 'True'; | ||
292 | 253 | }; | ||
293 | 254 | // user clicks on the Remove icon for the revision | ||
294 | 255 | rev.one('.message-revision-del-btn').simulate('click'); | ||
295 | 256 | module.lp_client.io_provider.success({ | ||
296 | 257 | responseText: 'null', | ||
297 | 258 | responseHeaders: {'Content-Type': 'application/json'} | ||
298 | 259 | }); | ||
299 | 260 | |||
300 | 261 | // the title displayed for the revision stays the same | ||
301 | 262 | var expected_title = Y.Lang.sub( | ||
302 | 263 | 'Revision #{revision},' + | ||
303 | 264 | ' created at {date_created_display}', | ||
304 | 265 | entry); | ||
305 | 266 | Y.Assert.areSame( | ||
306 | 267 | expected_title, | ||
307 | 268 | title.getDOMNode().innerText); | ||
308 | 269 | |||
309 | 270 | // the content has changed to reflect deletion | ||
310 | 271 | var expected_body = Y.Lang.sub( | ||
311 | 272 | 'Content deleted by the user.', | ||
312 | 273 | entry); | ||
313 | 274 | Y.Assert.areEqual( | ||
314 | 275 | expected_body, body.getDOMNode().innerText); | ||
315 | 276 | } | ||
316 | 277 | }); | ||
317 | 278 | // The number of revisions in the list stays the same | ||
318 | 279 | // and we asserted above the content displayed has changed | ||
319 | 280 | // to reflect deletion for revision 2 | ||
320 | 281 | var after_delete_revis = this.revision_history_lists[1].all( | ||
321 | 282 | ".message-revision-item"); | ||
322 | 283 | Y.Assert.areSame(2, after_delete_revis.size()); | ||
323 | 284 | |||
324 | 237 | // Lets make sure that a click on the "close" button hides the | 285 | // Lets make sure that a click on the "close" button hides the |
325 | 238 | // revisions list. | 286 | // revisions list. |
326 | 239 | revisions_container.one( | 287 | revisions_container.one( |
Screenshots available here with the respective context available above each pic in MM:
https:/ /chat.canonical .com/canonical/ pl/gdc3uozzepyq 9rs8qd1m3qctiw /chat.canonical .com/canonical/ pl/8whytdy1ajyu 7g6z856jjj5s7e
https:/