yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #25934
[Bug 1389437] Re: inline edit only works on the first tab loaded in a tabbed panel
** Changed in: horizon
Status: Fix Committed => Fix Released
** Changed in: horizon
Milestone: None => kilo-1
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1389437
Title:
inline edit only works on the first tab loaded in a tabbed panel
Status in OpenStack Dashboard (Horizon):
Fix Released
Bug description:
I am following the instruction regarding how to add in-line edit to
the tables based on
http://docs.openstack.org/developer/horizon/topics/tables.html
I used admin -> volumes
I updated following block to the volumes tab table:
openstack_dashborad/dashobards/admin/volumes/volumes/tables.py
class UpdateRow(tables.Row):
ajax = True
def get_data(self, request, volume_id):
volume = cinder.volume_get(request, volume_id)
return volume
class UpdateCell(tables.UpdateAction):
def allowed(self, request, volume, cell):
return True
def update_cell(self, request, data, id,
cell_name, new_cell_value):
obj = data
setattr(obj, cell_name, new_cell_value)
value = getattr(obj, 'name', None)
return True
class VolumesTable(volumes_tables.VolumesTable):
"""
name = tables.Column("name",
verbose_name=_("Name"),
link="horizon:admin:volumes:volumes:detail")"""
name = tables.Column("name", verbose_name=_("Name"),
form_field=forms.CharField(
max_length=64, required=False),
update_action=UpdateCell)
......more code
I updated the following block to the volume types tab table:
openstack_dashborad/dashobards/admin/volumes/volume_types/tables.py
class UpdateRow(tables.Row):
ajax = True
def get_data(self, request, volume_type_id):
volume_type = cinder.volume_type_get(request, volume_type_id)
return volume_type
class UpdateCell(tables.UpdateAction):
def allowed(self, request, volume_type, cell):
return True
def update_cell(self, request, data, volume_type_id,
cell_name, new_cell_value):
obj = data
setattr(obj, cell_name, new_cell_value)
value = getattr(obj, 'name', None)
return True
class VolumeTypesTable(tables.DataTable):
# name = tables.Column("name", verbose_name=_("Name"))
name = tables.Column("name", verbose_name=_("Name"),
form_field=forms.CharField(
max_length=64, required=False),
update_action=UpdateCell)
.....more code
I also add the similar code to snapshots table
The inline code for volumes table it works fine. The inline code for
volume_types table seems to have problem. the inline code for
snapshots table doesn't work either.
examine the element noticed the following difference:
element for the name cell in volumes table
when not hover:
<div class="table_cell_action" style="display: none;"><button class="ajax-inline-edit"><span class="glyphicon glyphicon-pencil"></span></button></div>
when hover:
<div class="table_cell_action" style="display: block;"><button class="ajax-inline-edit"><span class="glyphicon glyphicon-pencil"></span></button></div>
element for the name cell in volume_types table is missing
display:none as styling even both of volumes and volume_types using
the same openstack_dashboard/static/dashboard/scss/_inline_edit.scss.
<div class="table_cell_action"><button class="ajax-inline-edit"><span
class="glyphicon glyphicon-pencil"></span></button></div>
If I add that display:none or display:block into <div
class="table_cell_action"> it seems to work for volume_types table.
However it sort of disables the volumes in-line-edit.
Looks like the in-line edit only allows the first tab's table in-line
edit by default, it doesn't seem to allow in-line edit to work in
multiple tables on different tabs
To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1389437/+subscriptions
References