backoffice: revamp block sidebar like others (#60722)
This commit is contained in:
parent
977cdb0019
commit
b3fb9a87cc
|
@ -453,14 +453,14 @@ def test_block_edit_field_warnings(pub):
|
|||
blockdef.store()
|
||||
resp = app.get('/backoffice/forms/blocks/%s/' % blockdef.id)
|
||||
assert 'more than 30 fields' not in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' in resp.text
|
||||
assert resp.pyquery('#new-field')
|
||||
assert resp.pyquery('#fields-list a[title="Duplicate"]').length
|
||||
|
||||
blockdef.fields.extend([fields.StringField(id='%d' % i, label='field %d' % i) for i in range(21, 51)])
|
||||
blockdef.store()
|
||||
resp = app.get('/backoffice/forms/blocks/%s/' % blockdef.id)
|
||||
assert 'This block of fields contains 60 fields.' in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' not in resp.text
|
||||
assert not resp.pyquery('#new-field')
|
||||
assert not resp.pyquery('#fields-list a[title="Duplicate"]').length
|
||||
|
||||
|
||||
|
|
|
@ -1035,7 +1035,7 @@ def test_card_edit_field_warnings(pub):
|
|||
resp = app.get('/backoffice/cards/%s/fields/' % carddef.id)
|
||||
assert 'more than 200 fields' not in resp.text
|
||||
assert 'first field should be of type "page"' in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' in resp.text
|
||||
assert resp.pyquery('#new-field')
|
||||
|
||||
carddef.fields.extend([fields.StringField(id='%d' % i, label='field %d' % i) for i in range(10, 210)])
|
||||
carddef.store()
|
||||
|
@ -1049,7 +1049,7 @@ def test_card_edit_field_warnings(pub):
|
|||
resp = app.get('/backoffice/cards/%s/fields/' % carddef.id)
|
||||
assert 'This card model contains 410 fields.' in resp.text
|
||||
assert 'first field should be of type "page"' in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' not in resp.text
|
||||
assert not resp.pyquery('#new-field')
|
||||
assert '>Duplicate<' not in resp.text
|
||||
|
||||
|
||||
|
|
|
@ -3602,7 +3602,7 @@ def test_form_edit_field_warnings(pub):
|
|||
resp = app.get('/backoffice/forms/%s/fields/' % formdef.id)
|
||||
assert 'more than 200 fields' not in resp.text
|
||||
assert 'first field should be of type "page"' in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' in resp.text
|
||||
assert resp.pyquery('#new-field')
|
||||
|
||||
formdef.fields.extend([fields.StringField(id='%d' % i, label='field %d' % i) for i in range(10, 210)])
|
||||
formdef.store()
|
||||
|
@ -3617,7 +3617,7 @@ def test_form_edit_field_warnings(pub):
|
|||
assert 'This form contains 410 fields.' in resp.text
|
||||
assert 'no new fields can be added.' in resp.text
|
||||
assert 'first field should be of type "page"' in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' not in resp.text
|
||||
assert not resp.pyquery('#new-field')
|
||||
assert '>Duplicate<' not in resp.text
|
||||
assert resp.pyquery('aside .errornotice')
|
||||
assert not resp.pyquery('aside form[action=new]')
|
||||
|
@ -3630,7 +3630,7 @@ def test_form_edit_field_warnings(pub):
|
|||
|
||||
resp = app.get('/backoffice/forms/%s/fields/' % formdef.id)
|
||||
assert 'no new fields should be added.' in resp.text
|
||||
assert '<div id="new-field"><h3>New Field</h3>' in resp.text
|
||||
assert resp.pyquery('#new-field')
|
||||
assert '>Duplicate<' in resp.text
|
||||
assert not resp.pyquery('aside .errornotice')
|
||||
assert resp.pyquery('aside form[action=new]')
|
||||
|
|
|
@ -106,6 +106,14 @@ class BlockDirectory(FieldsDirectory):
|
|||
r = TemplateIO(html=True)
|
||||
r += htmltext('<div id="appbar">')
|
||||
r += htmltext('<h2>%s</h2>') % self.objectdef.name
|
||||
r += htmltext('<span class="actions">')
|
||||
r += htmltext('<a class="extra-actions-menu-opener"></a>')
|
||||
r += htmltext('<ul class="extra-actions-menu">')
|
||||
r += htmltext('<li><a href="export">%s</a></li>') % _('Export')
|
||||
r += htmltext('<li><a href="delete" rel="popup">%s</a></li>') % _('Delete')
|
||||
r += htmltext('</ul>')
|
||||
r += htmltext('<a href="settings" rel="popup" role="button">%s</a>') % _('Settings')
|
||||
r += htmltext('</span>')
|
||||
r += htmltext('</div>')
|
||||
r += utils.last_modification_block(obj=self.objectdef)
|
||||
r += get_session().display_message()
|
||||
|
@ -132,17 +140,22 @@ class BlockDirectory(FieldsDirectory):
|
|||
|
||||
def get_new_field_form_sidebar(self, page_id):
|
||||
r = TemplateIO(html=True)
|
||||
r += htmltext('<ul id="sidebar-actions">')
|
||||
r += htmltext('<li><a href="delete" rel="popup">%s</a></li>') % _('Delete')
|
||||
r += htmltext('<li><a href="duplicate" rel="popup">%s</a></li>') % _('Duplicate')
|
||||
r += htmltext('<li><a href="export">%s</a></li>') % _('Export')
|
||||
if get_publisher().snapshot_class:
|
||||
r += htmltext('<li><a rel="popup" href="history/save">%s</a></li>') % _('Save snapshot')
|
||||
r += htmltext('<li><a href="history/">%s</a></li>') % _('History')
|
||||
r += htmltext('<li><a href="inspect">%s</a></li>') % _('Inspector')
|
||||
r += htmltext('<li><a href="settings" rel="popup">%s</a></li>') % _('Settings')
|
||||
r += htmltext('</ul>')
|
||||
r += super().get_new_field_form_sidebar(page_id=page_id)
|
||||
r += htmltext('<h3>%s</h3>') % _('Actions')
|
||||
r += htmltext('<ul class="sidebar--buttons">')
|
||||
r += htmltext('<li><a class="button button-paragraph" href="duplicate" rel="popup">%s</a>') % _(
|
||||
'Duplicate'
|
||||
)
|
||||
if get_publisher().snapshot_class:
|
||||
r += htmltext('<li><a class="button button-paragraph" href="history/save">%s</a>') % _(
|
||||
'Save snapshot'
|
||||
)
|
||||
r += htmltext('</ul>')
|
||||
r += htmltext('<h3>%s</h3>') % _('Navigation')
|
||||
r += htmltext('<ul class="sidebar--buttons">')
|
||||
r += htmltext('<li><a class="button button-paragraph" href="history/">%s</a></li>') % _('History')
|
||||
r += htmltext('<li><a class="button button-paragraph" href="inspect">%s</a></li>') % _('Inspector')
|
||||
r += htmltext('</ul>')
|
||||
return r.getvalue()
|
||||
|
||||
def delete(self):
|
||||
|
|
|
@ -527,8 +527,8 @@ class FieldsDirectory(Directory):
|
|||
)
|
||||
return r.getvalue()
|
||||
|
||||
r += htmltext('<div id="new-field">')
|
||||
r += htmltext('<h3>%s</h3>') % _('New Field')
|
||||
r += htmltext('<div id="new-field">')
|
||||
get_request().form = None # ignore the eventual ?page=x
|
||||
form = self.get_new_field_form(page_id)
|
||||
r += form.render()
|
||||
|
|
|
@ -222,13 +222,8 @@ div#new-action, div#new-trigger, div#new-field {
|
|||
}
|
||||
}
|
||||
|
||||
div#new-field {
|
||||
margin: 2em 0 4px 0;
|
||||
padding: 5px 5px;
|
||||
}
|
||||
|
||||
div#new-field form {
|
||||
margin-bottom: 2em;
|
||||
form#import-fields {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
aside#sidebar div.news h3,
|
||||
|
|
Loading…
Reference in New Issue