diff --git a/tailbone/static/js/tailbone.mobile.js b/tailbone/static/js/tailbone.mobile.js index 3e633849..f3b59da2 100644 --- a/tailbone/static/js/tailbone.mobile.js +++ b/tailbone/static/js/tailbone.mobile.js @@ -37,3 +37,10 @@ $(document).on('pageshow', function() { el.focus(); } }); + + +$(document).on('click', '#datasync-restart', function() { + + // disable datasync restart button when clicked + $(this).button('disable'); +}); diff --git a/tailbone/templates/mobile/base.mako b/tailbone/templates/mobile/base.mako index f40d1874..3adcac39 100644 --- a/tailbone/templates/mobile/base.mako +++ b/tailbone/templates/mobile/base.mako @@ -72,6 +72,9 @@ % elif request.is_admin:
  • ${h.link_to("Become root", url('become_root'), **{'data-ajax': 'false'})}
  • % endif + % if request.has_perm('datasync.restart'): +
  • ${h.link_to("DataSync", url('datasync.mobile'))}
  • + % endif
  • ${h.link_to("Logout", url('logout'), **{'data-ajax': 'false'})}
  • ${h.link_to("About {}".format(capture(self.app_title)), url('mobile.about'))}
  • diff --git a/tailbone/templates/mobile/datasync.mako b/tailbone/templates/mobile/datasync.mako new file mode 100644 index 00000000..58d42977 --- /dev/null +++ b/tailbone/templates/mobile/datasync.mako @@ -0,0 +1,8 @@ +## -*- coding: utf-8 -*- +<%inherit file="/mobile/base.mako" /> + +<%def name="title()">DataSync + +${h.form(url('datasync.restart'))} +${h.submit('restart', "Restart DataSync", id='datasync-restart')} +${h.end_form()} diff --git a/tailbone/views/datasync.py b/tailbone/views/datasync.py index 23d77d03..6d31599d 100644 --- a/tailbone/views/datasync.py +++ b/tailbone/views/datasync.py @@ -43,7 +43,6 @@ class DataSyncChangesView(MasterView): Master view for the DataSyncChange model. """ model_class = model.DataSyncChange - model_title = "DataSync Change" url_prefix = '/datasync/changes' permission_prefix = 'datasync' @@ -74,7 +73,10 @@ class DataSyncChangesView(MasterView): self.request.session.flash("DataSync daemon has been restarted.") else: self.request.session.flash("DataSync daemon could not be restarted; result was: {}".format(result), 'error') - return self.redirect(self.request.route_url('datasyncchanges')) + return self.redirect(self.request.get_referrer(default=self.request.route_url('datasyncchanges'))) + + def mobile_index(self): + return {} @classmethod def defaults(cls, config): @@ -84,10 +86,14 @@ class DataSyncChangesView(MasterView): # restart daemon config.add_route('datasync.restart', '/datasync/restart') - config.add_view(cls, attr='restart', route_name='datasync.restart', - permission='datasync.restart') + config.add_view(cls, attr='restart', route_name='datasync.restart', permission='datasync.restart') config.add_tailbone_permission('datasync', 'datasync.restart', label="Restart DataSync Daemon") + # mobile + config.add_route('datasync.mobile', '/mobile/datasync/') + config.add_view(cls, attr='mobile_index', route_name='datasync.mobile', + permission='datasync.restart', renderer='/mobile/datasync.mako') + cls._defaults(config)