Angular actions not evaluated properly when dependent on row update.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Dashboard (Horizon) |
Fix Released
|
High
|
Timur Sufiev |
Bug Description
See: https:/
Copying my comments from there:
Ok, I've verified this as well and looked at a little bit of the code, but this problem is NOT a problem specific to this patch. This patch works the same as the images table launch instance.
It appears to actually be a problem with how angular is being handled when rows are added to the table via the create action when the row goes through a row update via XHR. The link is not getting evaluated by angular after a create and therefore is never getting into scope. This means the ng-click is not actually have any affect.
You can tell by seeing that ng-scope is not added as a class by angular after create (right click on action and do inspect element). However, if you do a full page refresh after create (with browser refresh, coming back to the page, or clicking the volumes menu item), the action works and that is because it has been evaluated by angular and has a scope (it has an ng-scope class).
You can actually see the same behavior with the images table depending on how you choose to create the image.
Note that the images table is directly in the index and not nested underneath tabs like the volumes table, but that seems like a red herring.
On the images table, if you put in a link to an image URL and uncheck the box to copy data, you'll see that the launch instance link works (it has angular scope). In the background, only a DOCUMENT GET for the full page is issued. If, however, you checkbox the link to copy data, you see that the link does NOT work (no angular scope) and you can also observe that after the Document request for the full page is sent, an XHR request is set for row_update.
I think we need a separate bug and patch for handling the row update case, because that could be tracked and backported independently.
Changed in horizon: | |
importance: | Undecided → High |
milestone: | none → mitaka-rc1 |
status: | New → Confirmed |
Changed in horizon: | |
assignee: | nobody → Timur Sufiev (tsufiev-x) |
Changed in horizon: | |
importance: | High → Medium |
importance: | Medium → High |
assignee: | Tyr Johanson (tyr-6) → nobody |
status: | In Progress → Confirmed |
Changed in horizon: | |
assignee: | nobody → Timur Sufiev (tsufiev-x) |
status: | Confirmed → In Progress |
Changed in horizon: | |
assignee: | Timur Sufiev (tsufiev-x) → Matt Borland (palecrow) |
Changed in horizon: | |
assignee: | Matt Borland (palecrow) → Timur Sufiev (tsufiev-x) |
I've noticed another problem that might be related to this one: when I delete a volume, and then press 'Create Volume' immediately after the row has disappeared from the table, it does nothing. Again, I have to reload the page. And once I reload it, I get as many 'Error: Unable to retrieve volume details.' as I clicked the button before.