diff --git a/tailbone/templates/base.mako b/tailbone/templates/base.mako index 43f3a1dd..c2970193 100644 --- a/tailbone/templates/base.mako +++ b/tailbone/templates/base.mako @@ -1,8 +1,10 @@ ## -*- coding: utf-8; -*- -<%namespace file="/menu.mako" import="main_menu_items" /> <%namespace file="/grids/nav.mako" import="grid_index_nav" /> -<%namespace file="/feedback_dialog.mako" import="feedback_dialog" /> +<%namespace file="/autocomplete.mako" import="tailbone_autocomplete_template" /> <%namespace name="base_meta" file="/base_meta.mako" /> +<%namespace file="/formposter.mako" import="declare_formposter_mixin" /> +<%namespace name="page_help" file="/page_help.mako" /> +<%namespace name="multi_file_upload" file="/multi_file_upload.mako" /> @@ -13,13 +15,17 @@ % if background_color: % endif % if not request.rattail_config.production(): % endif @@ -27,154 +33,17 @@ -
+ ${declare_formposter_mixin()} -
- + ${self.body()} -
- - ${base_meta.header_logo()} - ${base_meta.global_title()} - - % if master: - » - % if master.listing: - ${index_title} - % else: - ${h.link_to(index_title, index_url, class_='global')} - % if parent_url is not Undefined: - » - ${h.link_to(parent_title, parent_url, class_='global')} - % elif instance_url is not Undefined: - » - ${h.link_to(instance_title, instance_url, class_='global')} - % endif - % if master.viewing and grid_index: - ${grid_index_nav()} - % endif - % endif - % elif index_title: - » - % if index_url: - ${h.link_to(index_title, index_url, class_='global')} - % else: - ${index_title} - % endif - % endif +
+ +
- - - % if expose_theme_picker and request.has_perm('common.change_app_theme'): -
- ${h.form(url('change_theme'), name="theme_changer", method="post")} - ${h.csrf_token(request)} - Theme: - ${h.select('theme', theme, options=theme_picker_options, id='theme-picker')} - ${h.end_form()} -
- % endif - - % if quickie is not Undefined and quickie and request.has_perm(quickie.perm): -
- ${h.form(quickie.url, name="quickie", method="get")} - ${h.text('entry', placeholder=quickie.placeholder, autocomplete='off')} - - ${h.end_form()} -
- % endif - -
- -
- % if capture(self.content_title): - - % if show_prev_next is not Undefined and show_prev_next: -
- ## NOTE: the u"" literals seem to be required for python2..not sure why - % if prev_url: - ${h.link_to(u"« Older", prev_url, class_='button autodisable')} - % else: - ${h.link_to(u"« Older", '#', class_='button', disabled='disabled')} - % endif - % if next_url: - ${h.link_to(u"Newer »", next_url, class_='button autodisable')} - % else: - ${h.link_to(u"Newer »", '#', class_='button', disabled='disabled')} - % endif -
- % endif - -

${self.content_title()}

- % endif -
-
- -
- -
-
-
- - % if request.session.peek_flash('error'): -
- % for error in request.session.pop_flash('error'): -
- - ${error} -
- % endfor -
- % endif - - % if request.session.peek_flash('warning'): -
- % for msg in request.session.pop_flash('warning'): -
- - ${msg} -
- % endfor -
- % endif - - % if request.session.peek_flash(): -
- % for msg in request.session.pop_flash(): -
- - ${msg|n} -
- % endfor -
- % endif - - ${self.body()} - -
-
-
- -
- - - -
- - ${feedback_dialog()} + ${self.render_whole_page_template()} + ${self.make_whole_page_component()} + ${self.make_whole_page_app()} @@ -185,6 +54,7 @@ <%def name="header_core()"> + ${self.core_javascript()} ${self.extra_javascript()} ${self.core_styles()} @@ -204,63 +74,837 @@ <%def name="core_javascript()"> ${self.jquery()} - ${h.javascript_link(request.static_url('tailbone:static/js/lib/jquery.ui.menubar.js'))} - ${h.javascript_link(request.static_url('tailbone:static/js/lib/jquery.loadmask.min.js'))} - ${h.javascript_link(request.static_url('tailbone:static/js/lib/jquery.ui.timepicker.js'))} + ${self.vuejs()} + ${self.buefy()} + ${self.fontawesome()} + + ## some commonly-useful logic for detecting (non-)numeric input + ${h.javascript_link(request.static_url('tailbone:static/js/numeric.js') + '?ver={}'.format(tailbone.__version__))} + + ## debounce, for better autocomplete performance + ${h.javascript_link(request.static_url('tailbone:static/js/debounce.js') + '?ver={}'.format(tailbone.__version__))} + + ## Tailbone / Buefy stuff + ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.datepicker.js') + '?ver={}'.format(tailbone.__version__))} + ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.numericinput.js') + '?ver={}'.format(tailbone.__version__))} + ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.oncebutton.js') + '?ver={}'.format(tailbone.__version__))} + ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.timepicker.js') + '?ver={}'.format(tailbone.__version__))} + ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.grid.js') + '?ver={}'.format(tailbone.__version__))} + - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.js') + '?ver={}'.format(tailbone.__version__))} - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.feedback.js') + '?ver={}'.format(tailbone.__version__))} - ${h.javascript_link(request.static_url('tailbone:static/js/jquery.ui.tailbone.js') + '?ver={}'.format(tailbone.__version__))} <%def name="jquery()"> - ${h.javascript_link('https://code.jquery.com/jquery-1.12.4.min.js')} - ${h.javascript_link('https://code.jquery.com/ui/{}/jquery-ui.min.js'.format(request.rattail_config.get('tailbone', 'jquery_ui.version', default='1.11.4')))} + ${h.javascript_link(h.get_liburl(request, 'jquery'))} + + +<%def name="vuejs()"> + ${h.javascript_link(h.get_liburl(request, 'vue'))} + ${h.javascript_link(h.get_liburl(request, 'vue_resource'))} + + +<%def name="buefy()"> + ${h.javascript_link(h.get_liburl(request, 'buefy'))} + + +<%def name="fontawesome()"> + <%def name="extra_javascript()"> <%def name="core_styles()"> - ${h.stylesheet_link(request.static_url('tailbone:static/css/normalize.css'))} - ${self.jquery_theme()} - ${h.stylesheet_link(request.static_url('tailbone:static/css/jquery.ui.menubar.css'))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/jquery.loadmask.css'))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/jquery.ui.timepicker.css'))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/jquery.ui.tailbone.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/base.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/layout.css') + '?ver={}'.format(tailbone.__version__))} + + ${self.buefy_styles()} + + ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/base.css') + '?ver={}'.format(tailbone.__version__))} + ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/layout.css') + '?ver={}'.format(tailbone.__version__))} ${h.stylesheet_link(request.static_url('tailbone:static/css/grids.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/filters.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/forms.css') + '?ver={}'.format(tailbone.__version__))} + ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/grids.css') + '?ver={}'.format(tailbone.__version__))} + ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/grids.rowstatus.css') + '?ver={}'.format(tailbone.__version__))} +## ${h.stylesheet_link(request.static_url('tailbone:static/css/filters.css') + '?ver={}'.format(tailbone.__version__))} + ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/filters.css') + '?ver={}'.format(tailbone.__version__))} + ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/forms.css') + '?ver={}'.format(tailbone.__version__))} ${h.stylesheet_link(request.static_url('tailbone:static/css/diffs.css') + '?ver={}'.format(tailbone.__version__))} + + ${h.stylesheet_link(request.static_url('tailbone:static/css/codehilite.css') + '?ver={}'.format(tailbone.__version__))} + + +<%def name="buefy_styles()"> + % if buefy_css: + ## custom Buefy CSS + ${h.stylesheet_link(buefy_css)} + % else: + ## upstream Buefy CSS + ${h.stylesheet_link(h.get_liburl(request, 'buefy.css'))} + % endif + + +## TODO: this is only being referenced by the progress template i think? +## (so, should make a Buefy progress page at least) <%def name="jquery_theme()"> - ${h.stylesheet_link('https://code.jquery.com/ui/1.11.4/themes/dark-hive/jquery-ui.css')} + ${h.stylesheet_link(h.get_liburl(request, 'jquery_ui'))} <%def name="extra_styles()"> <%def name="head_tags()"> +<%def name="render_whole_page_template()"> + + + ${page_help.render_template()} + + + + ${tailbone_autocomplete_template()} + ${multi_file_upload.render_template()} + + +<%def name="render_this_page_component()"> + + + + +<%def name="render_navbar_end()"> + + + +<%def name="render_user_menu()"> + % if request.user: + + % else: + ${h.link_to("Login", url('login'), class_='navbar-item')} + % endif + + +<%def name="render_instance_header_buttons()"> + ${self.render_crud_header_buttons()} + ${self.render_prevnext_header_buttons()} + + +<%def name="render_crud_header_buttons()"> + % if master and master.viewing: + ## TODO: is there a better way to check if viewing parent? + % if parent_instance is Undefined: + % if master.editable and instance_editable and master.has_perm('edit'): +
+ + +
+ % endif + % if master.cloneable and master.has_perm('clone'): +
+ + +
+ % endif + % if master.deletable and instance_deletable and master.has_perm('delete'): +
+ + +
+ % endif + % else: + ## viewing row + % if instance_deletable and master.has_perm('delete_row'): +
+ + +
+ % endif + % endif + % elif master and master.editing: + % if master.viewable and master.has_perm('view'): +
+ + +
+ % endif + % if master.deletable and instance_deletable and master.has_perm('delete'): +
+ + +
+ % endif + % elif master and master.deleting: + % if master.viewable and master.has_perm('view'): +
+ + +
+ % endif + % if master.editable and instance_editable and master.has_perm('edit'): +
+ + +
+ % endif + % endif + + +<%def name="render_prevnext_header_buttons()"> + % if show_prev_next is not Undefined and show_prev_next: + % if prev_url: +
+ + Older + +
+ % else: +
+ + Older + +
+ % endif + % if next_url: +
+ + Newer + +
+ % else: +
+ + Newer + +
+ % endif + % endif + + +<%def name="declare_whole_page_vars()"> + ${page_help.declare_vars()} + ${multi_file_upload.declare_vars()} + ${h.javascript_link(request.static_url('tailbone:static/themes/falafel/js/tailbone.feedback.js') + '?ver={}'.format(tailbone.__version__))} + + + +<%def name="modify_whole_page_vars()"> + + + +<%def name="finalize_whole_page_vars()"> + ## NOTE: if you override this, must use + + +<%def name="make_whole_page_app()"> + + + <%def name="wtfield(form, name, **kwargs)">
@@ -269,3 +913,16 @@
+ +<%def name="simple_field(label, value)"> + ## TODO: keep this? only used by personal profile view currently + ## (although could be useful for any readonly scenario) +
+
+ +
+ ${'' if value is None else value} +
+
+
+ diff --git a/tailbone/templates/progress.mako b/tailbone/templates/progress.mako index 331e8e1a..ad0a1371 100644 --- a/tailbone/templates/progress.mako +++ b/tailbone/templates/progress.mako @@ -1,145 +1,219 @@ ## -*- coding: utf-8; -*- -<%namespace file="tailbone:templates/base.mako" import="core_javascript" /> -<%namespace file="/base.mako" import="jquery_theme" /> - - +<%namespace file="/base.mako" import="core_javascript" /> +<%namespace file="/base.mako" import="core_styles" /> + + ${initial_msg or "Working"}... ${core_javascript()} - ${h.stylesheet_link(request.static_url('tailbone:static/css/normalize.css'))} - ${jquery_theme()} - ${h.stylesheet_link(request.static_url('tailbone:static/css/base.css'))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/layout.css'))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/progress.css'))} - ${self.update_progress_func()} + ${core_styles()} ${self.extra_styles()} + + + +
+ +
+ + + - - -
- -
- -

${initial_msg or "Working"} (please wait) ...

- - - - - - % if can_cancel: - - % endif - -
- - - - - -
-
- -
- -
- - ${self.after_progress()} - -
- - - -<%def name="update_progress_func()"> - - + + let WholePageData = { + + progressURL: '${url('progress', key=progress.key, _query={'sessiontype': progress.session.type})}', + progressMessage: "${(initial_msg or "Working").replace('"', '\\"')} (please wait)", + progressMax: null, + progressMaxDisplay: null, + progressValue: null, + stillInProgress: true, + + % if can_cancel: + canCancel: true, + cancelURL: '${url('progress.cancel', key=progress.key, _query={'sessiontype': progress.session.type})}', + cancelingProgress: false, + % endif + } + + + + ${self.modify_whole_page_vars()} + ${self.make_whole_page_app()} + + + <%def name="extra_styles()"> <%def name="after_progress()"> + +<%def name="modify_whole_page_vars()"> + +<%def name="make_whole_page_app()"> + + diff --git a/tailbone/templates/themes/excite-bike/base.mako b/tailbone/templates/themes/excite-bike/base.mako deleted file mode 100644 index d4328621..00000000 --- a/tailbone/templates/themes/excite-bike/base.mako +++ /dev/null @@ -1,8 +0,0 @@ -## -*- coding: utf-8; -*- -<%inherit file="tailbone:templates/base.mako" /> - -<%def name="jquery_theme()"> - ${h.stylesheet_link('https://code.jquery.com/ui/1.11.4/themes/excite-bike/jquery-ui.css')} - - -${parent.body()} diff --git a/tailbone/templates/themes/falafel/base.mako b/tailbone/templates/themes/falafel/base.mako index c2970193..1869043b 100644 --- a/tailbone/templates/themes/falafel/base.mako +++ b/tailbone/templates/themes/falafel/base.mako @@ -1,928 +1,4 @@ ## -*- coding: utf-8; -*- -<%namespace file="/grids/nav.mako" import="grid_index_nav" /> -<%namespace file="/autocomplete.mako" import="tailbone_autocomplete_template" /> -<%namespace name="base_meta" file="/base_meta.mako" /> -<%namespace file="/formposter.mako" import="declare_formposter_mixin" /> -<%namespace name="page_help" file="/page_help.mako" /> -<%namespace name="multi_file_upload" file="/multi_file_upload.mako" /> - - - - - ${base_meta.global_title()} » ${capture(self.title)|n} - ${base_meta.favicon()} - ${self.header_core()} +<%inherit file="tailbone:templates/base.mako" /> - % if background_color: - - % endif - - % if not request.rattail_config.production(): - - % endif - - ${self.head_tags()} - - - - ${declare_formposter_mixin()} - - ${self.body()} - -
- -
- - ${self.render_whole_page_template()} - ${self.make_whole_page_component()} - ${self.make_whole_page_app()} - - - -<%def name="title()"> - -<%def name="content_title()"> - ${self.title()} - - -<%def name="header_core()"> - - ${self.core_javascript()} - ${self.extra_javascript()} - ${self.core_styles()} - ${self.extra_styles()} - - ## TODO: should this be elsewhere / more customizable? - % if dform is not Undefined: - <% resources = dform.get_widget_resources() %> - % for path in resources['js']: - ${h.javascript_link(request.static_url(path))} - % endfor - % for path in resources['css']: - ${h.stylesheet_link(request.static_url(path))} - % endfor - % endif - - -<%def name="core_javascript()"> - ${self.jquery()} - ${self.vuejs()} - ${self.buefy()} - ${self.fontawesome()} - - ## some commonly-useful logic for detecting (non-)numeric input - ${h.javascript_link(request.static_url('tailbone:static/js/numeric.js') + '?ver={}'.format(tailbone.__version__))} - - ## debounce, for better autocomplete performance - ${h.javascript_link(request.static_url('tailbone:static/js/debounce.js') + '?ver={}'.format(tailbone.__version__))} - - ## Tailbone / Buefy stuff - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.datepicker.js') + '?ver={}'.format(tailbone.__version__))} - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.numericinput.js') + '?ver={}'.format(tailbone.__version__))} - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.oncebutton.js') + '?ver={}'.format(tailbone.__version__))} - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.timepicker.js') + '?ver={}'.format(tailbone.__version__))} - ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.grid.js') + '?ver={}'.format(tailbone.__version__))} - - - - -<%def name="jquery()"> - ${h.javascript_link(h.get_liburl(request, 'jquery'))} - - -<%def name="vuejs()"> - ${h.javascript_link(h.get_liburl(request, 'vue'))} - ${h.javascript_link(h.get_liburl(request, 'vue_resource'))} - - -<%def name="buefy()"> - ${h.javascript_link(h.get_liburl(request, 'buefy'))} - - -<%def name="fontawesome()"> - - - -<%def name="extra_javascript()"> - -<%def name="core_styles()"> - - ${self.buefy_styles()} - - ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/base.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/layout.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/grids.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/grids.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/grids.rowstatus.css') + '?ver={}'.format(tailbone.__version__))} -## ${h.stylesheet_link(request.static_url('tailbone:static/css/filters.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/filters.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/themes/falafel/css/forms.css') + '?ver={}'.format(tailbone.__version__))} - ${h.stylesheet_link(request.static_url('tailbone:static/css/diffs.css') + '?ver={}'.format(tailbone.__version__))} - - ${h.stylesheet_link(request.static_url('tailbone:static/css/codehilite.css') + '?ver={}'.format(tailbone.__version__))} - - - - -<%def name="buefy_styles()"> - % if buefy_css: - ## custom Buefy CSS - ${h.stylesheet_link(buefy_css)} - % else: - ## upstream Buefy CSS - ${h.stylesheet_link(h.get_liburl(request, 'buefy.css'))} - % endif - - -## TODO: this is only being referenced by the progress template i think? -## (so, should make a Buefy progress page at least) -<%def name="jquery_theme()"> - ${h.stylesheet_link(h.get_liburl(request, 'jquery_ui'))} - - -<%def name="extra_styles()"> - -<%def name="head_tags()"> - -<%def name="render_whole_page_template()"> - - - ${page_help.render_template()} - - - - ${tailbone_autocomplete_template()} - ${multi_file_upload.render_template()} - - -<%def name="render_this_page_component()"> - - - - -<%def name="render_navbar_end()"> - - - -<%def name="render_user_menu()"> - % if request.user: - - % else: - ${h.link_to("Login", url('login'), class_='navbar-item')} - % endif - - -<%def name="render_instance_header_buttons()"> - ${self.render_crud_header_buttons()} - ${self.render_prevnext_header_buttons()} - - -<%def name="render_crud_header_buttons()"> - % if master and master.viewing: - ## TODO: is there a better way to check if viewing parent? - % if parent_instance is Undefined: - % if master.editable and instance_editable and master.has_perm('edit'): -
- - -
- % endif - % if master.cloneable and master.has_perm('clone'): -
- - -
- % endif - % if master.deletable and instance_deletable and master.has_perm('delete'): -
- - -
- % endif - % else: - ## viewing row - % if instance_deletable and master.has_perm('delete_row'): -
- - -
- % endif - % endif - % elif master and master.editing: - % if master.viewable and master.has_perm('view'): -
- - -
- % endif - % if master.deletable and instance_deletable and master.has_perm('delete'): -
- - -
- % endif - % elif master and master.deleting: - % if master.viewable and master.has_perm('view'): -
- - -
- % endif - % if master.editable and instance_editable and master.has_perm('edit'): -
- - -
- % endif - % endif - - -<%def name="render_prevnext_header_buttons()"> - % if show_prev_next is not Undefined and show_prev_next: - % if prev_url: -
- - Older - -
- % else: -
- - Older - -
- % endif - % if next_url: -
- - Newer - -
- % else: -
- - Newer - -
- % endif - % endif - - -<%def name="declare_whole_page_vars()"> - ${page_help.declare_vars()} - ${multi_file_upload.declare_vars()} - ${h.javascript_link(request.static_url('tailbone:static/themes/falafel/js/tailbone.feedback.js') + '?ver={}'.format(tailbone.__version__))} - - - -<%def name="modify_whole_page_vars()"> - - - -<%def name="finalize_whole_page_vars()"> - ## NOTE: if you override this, must use - - -<%def name="make_whole_page_app()"> - - - -<%def name="wtfield(form, name, **kwargs)"> -
- -
- ${form[name](**kwargs)} -
-
- - -<%def name="simple_field(label, value)"> - ## TODO: keep this? only used by personal profile view currently - ## (although could be useful for any readonly scenario) -
-
- -
- ${'' if value is None else value} -
-
-
- +${parent.body()} diff --git a/tailbone/templates/themes/falafel/progress.mako b/tailbone/templates/themes/falafel/progress.mako index ad0a1371..4bb27014 100644 --- a/tailbone/templates/themes/falafel/progress.mako +++ b/tailbone/templates/themes/falafel/progress.mako @@ -1,219 +1,4 @@ ## -*- coding: utf-8; -*- -<%namespace file="/base.mako" import="core_javascript" /> -<%namespace file="/base.mako" import="core_styles" /> - - - - - ${initial_msg or "Working"}... - ${core_javascript()} - ${core_styles()} - ${self.extra_styles()} - - +<%inherit file="tailbone:templates/progress.mako" /> -
- -
- - - - - - ${self.modify_whole_page_vars()} - ${self.make_whole_page_app()} - - - - -<%def name="extra_styles()"> - -<%def name="after_progress()"> - -<%def name="modify_whole_page_vars()"> - -<%def name="make_whole_page_app()"> - - +${parent.body()} diff --git a/tailbone/templates/themes/falafel/upgrade.mako b/tailbone/templates/themes/falafel/upgrade.mako index 7cc73941..b7562653 100644 --- a/tailbone/templates/themes/falafel/upgrade.mako +++ b/tailbone/templates/themes/falafel/upgrade.mako @@ -1,69 +1,4 @@ ## -*- coding: utf-8; -*- -<%inherit file="/progress.mako" /> - -<%def name="extra_styles()"> - ${parent.extra_styles()} - - - -<%def name="after_progress()"> - - -
- - - - ## nb. we auto-scroll down to "see" this element -
-
- - - -<%def name="modify_whole_page_vars()"> - - - +<%inherit file="tailbone:templates/upgrade.mako" /> ${parent.body()} diff --git a/tailbone/templates/upgrade.mako b/tailbone/templates/upgrade.mako index a12361c5..7cc73941 100644 --- a/tailbone/templates/upgrade.mako +++ b/tailbone/templates/upgrade.mako @@ -1,86 +1,69 @@ ## -*- coding: utf-8; -*- <%inherit file="/progress.mako" /> -<%def name="update_progress_func()"> - - - <%def name="extra_styles()"> ${parent.extra_styles()} <%def name="after_progress()"> -
+ + +
+ + + + ## nb. we auto-scroll down to "see" this element +
+
+ +<%def name="modify_whole_page_vars()"> + + + + ${parent.body()}