diff --git a/src/documents/index.html.coffee b/src/documents/index.html.coffee
index d376ff3..4410102 100644
--- a/src/documents/index.html.coffee
+++ b/src/documents/index.html.coffee
@@ -16,6 +16,11 @@ aside '.app', ->
span '.link.link-page', ->
text 'Page'
+ span '.right.show-admin.show-site', ->
+ span '.button.button-logout', ->
+ span '.icon.icon-signout', ->
+ text 'Logout'
+
span '.right.show-page', ->
#span '.status', ->
# 'Changes saved at 10:41am'
@@ -41,6 +46,10 @@ aside '.app', ->
span '.toggle.toggle-preview', ->
span '.icon.icon-globe', ->
+ span '.button.button-logout', ->
+ span '.icon.icon-signout', ->
+ text 'Logout'
+
section '.login.modal.main.show-login', ->
img '.button.button-login', alt:'Login', src:'/images/login.png', width:'95px', height:'25px', ->
diff --git a/src/documents/scripts/views/app.js.coffee b/src/documents/scripts/views/app.js.coffee
index 926654e..7f19c78 100644
--- a/src/documents/scripts/views/app.js.coffee
+++ b/src/documents/scripts/views/app.js.coffee
@@ -35,6 +35,7 @@ class App extends View
'click .menu .toggle': 'clickMenuToggle'
'click .menu .button': 'clickMenuButton'
'click .button-login': 'clickLogin'
+ 'click .button-logout': 'clickLogout'
'click .button-add-site': 'clickAddSite'
'submit .site-add-form': 'submitSite'
'click .site-add-form .button-cancel': 'submitSiteCancel'
@@ -64,8 +65,8 @@ class App extends View
loggedInUser: currentUser
onlogin: (args...) ->
# ignore as we listen to post message
- onlogout: ->
- localStorage.setItem('currentUser', '')
+ onlogout: =>
+ @logoutUser()
)
# Login the user if we already have one
@@ -256,6 +257,16 @@ class App extends View
# Chain
@
+ # A user has logged out successfully
+ # so remove the saved user and take them back to the login screen
+ logoutUser: ->
+ localStorage.removeItem('currentUser')
+ @openApp(navigate: false)
+ @setAppMode('login')
+
+ # Chain
+ @
+
# ---------------------------------
@@ -316,6 +327,15 @@ class App extends View
throw new Error("Offline people can't login") unless navigator.id?
navigator.id.request()
+ # Handle logout button
+ # Send the logout request to Persona, then reset local state
+ clickLogout: (e) =>
+ if navigator.id?
+ navigator.id.logout()
+ else
+ @logoutUser()
+ @
+
# Handle menu effects
clickMenuButton: (e) =>
# Prepare