Add back switching of themes.
This commit is contained in:
parent
9305536fc9
commit
0d9a3dceae
File diff suppressed because it is too large
Load Diff
|
@ -6,10 +6,15 @@ Rookeries client - Action events for journal entries..
|
|||
@author Dorian Pula [dorian.pula@amber-penguin-software.ca]
|
||||
###
|
||||
|
||||
'use strict'
|
||||
"use strict"
|
||||
|
||||
Reflux = require('reflux')
|
||||
Reflux = require "reflux"
|
||||
|
||||
JournalEntryActions = Reflux.createActions(["viewEntry", "loadEntry", "showError"])
|
||||
Actions = Reflux.createActions [
|
||||
"viewEntry"
|
||||
"loadEntry"
|
||||
"showError"
|
||||
"switchTheme"
|
||||
]
|
||||
|
||||
module.exports = JournalEntryActions
|
||||
module.exports = Actions
|
|
@ -6,20 +6,19 @@ Rookeries client app
|
|||
@author Dorian Pula [dorian.pula@amber-penguin-software.ca]
|
||||
###
|
||||
|
||||
'use strict'
|
||||
"use strict"
|
||||
|
||||
React = require('react')
|
||||
Router = require('react-router')
|
||||
React = require "react"
|
||||
Router = require "react-router"
|
||||
|
||||
AppRoutes = require('./routes.cjsx')
|
||||
UserLoginModalTrigger = require('./views/user_login_modal.cjsx')
|
||||
UserRegistrationModalTrigger = require('./views/user_registration.cjsx')
|
||||
FeatureUnavailableModalTrigger = require('./views/feature_unavailable.cjsx')
|
||||
require('./views/theme_switcher.cjsx')
|
||||
AppRoutes = require "./routes.cjsx"
|
||||
# UserLoginModalTrigger = require('./views/user_login_modal.cjsx')
|
||||
# UserRegistrationModalTrigger = require('./views/user_registration.cjsx')
|
||||
ThemeSwitchView = require "./views/theme_switcher_button.cjsx"
|
||||
|
||||
Router.run(AppRoutes, Router.HistoryLocation, (Root) =>
|
||||
React.render(<Root />, document.getElementById("markdown-target"))
|
||||
)
|
||||
React.render(UserLoginModalTrigger, document.getElementById('user-login-trigger'))
|
||||
React.render(UserRegistrationModalTrigger, document.getElementById('user-registration-trigger'))
|
||||
React.render(FeatureUnavailableModalTrigger, document.getElementById('theme-switcher'))
|
||||
# React.render(UserLoginModalTrigger, document.getElementById('user-login-trigger'))
|
||||
# React.render(UserRegistrationModalTrigger, document.getElementById('user-registration-trigger'))
|
||||
React.render(<ThemeSwitchView />, document.getElementById("theme-switcher"))
|
||||
|
|
|
@ -11,9 +11,7 @@ Rookeries client app - Route setup
|
|||
React = require('react')
|
||||
Router = require('react-router')
|
||||
|
||||
App = require './views/app_view.coffee'
|
||||
JournalMarkdownView = require('./views/journal_markdown_viewer.cjsx')
|
||||
MissingPageView = require('./views/error_page.cjsx')
|
||||
|
||||
AppRoutes = (
|
||||
<Router.Route handler={JournalMarkdownView} path="/">
|
||||
|
|
|
@ -6,31 +6,33 @@ Rookeries client - Journal entry store.
|
|||
@author Dorian Pula [dorian.pula@amber-penguin-software.ca]
|
||||
###
|
||||
|
||||
'use strict'
|
||||
"use strict"
|
||||
|
||||
Reflux = require('reflux')
|
||||
request = require('superagent')
|
||||
Reflux = require "reflux"
|
||||
request = require "superagent"
|
||||
|
||||
Actions = require "../actions.coffee"
|
||||
|
||||
JournalEntryActions = require('../actions/journal_actions.coffee')
|
||||
|
||||
JournalEntryStore = Reflux.createStore(
|
||||
init: () ->
|
||||
console.log('Initialize JournalEntryStore.')
|
||||
@listenTo(JournalEntryActions.loadEntry, @loadEntry)
|
||||
@listenTo(Actions.loadEntry, @loadEntry)
|
||||
|
||||
loadEntry: (id) ->
|
||||
console.log('Request loading ')
|
||||
id = "landing" if id is undefined
|
||||
console.log("Request loading...")
|
||||
if id is undefined
|
||||
id = "landing"
|
||||
request.get("/api/docs/#{id}")
|
||||
.accept('json')
|
||||
.end(
|
||||
(err, res) ->
|
||||
if (res.ok)
|
||||
console.info("Received JSON #{res.status} - #{res.text}")
|
||||
JournalEntryActions.viewEntry({name: res.body.name, page_content: res.body.page_content})
|
||||
Actions.viewEntry({name: res.body.name, page_content: res.body.page_content})
|
||||
else
|
||||
console.error("Error getting document JSON - #{res.status} - #{res.text} - Actual #{err}")
|
||||
JournalEntryActions.showError({status: res.status, message: res.text, actual: err, title: res.body.error.message})
|
||||
Actions.showError({status: res.status, message: res.text, actual: err, title: res.body.error.message})
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
###
|
||||
Rookeries client - Theme switcher entry store.
|
||||
|
||||
@copyright (c) Copyright 2013-2015 Dorian Pula
|
||||
@license AGPL v3
|
||||
@author Dorian Pula [dorian.pula@amber-penguin-software.ca]
|
||||
###
|
||||
|
||||
"use strict"
|
||||
|
||||
Reflux = require "reflux"
|
||||
request = require "superagent"
|
||||
|
||||
Actions = require "../actions.coffee"
|
||||
|
||||
|
||||
ThemeSwitchStore = Reflux.createStore(
|
||||
init: () ->
|
||||
console.log('Initialize ThemeSwitchStore.')
|
||||
@listenTo(Actions.switchTheme, @switchTheme)
|
||||
|
||||
switchTheme: () ->
|
||||
console.log('Theme switched ')
|
||||
current_themes = document.body.classList
|
||||
console.log "Current themes are #{current_themes}"
|
||||
|
||||
# TODO Implement logic to switch between "daytime" and "evening" themes in a nicer manner.
|
||||
# TODO Store the current theme in local storage somewhere...
|
||||
if "daytime" in current_themes
|
||||
current_themes.remove("daytime")
|
||||
current_themes.add("evening")
|
||||
|
||||
else
|
||||
current_themes.remove("evening")
|
||||
current_themes.add("daytime")
|
||||
|
||||
)
|
||||
|
||||
module.exports = ThemeSwitchStore
|
|
@ -1,14 +0,0 @@
|
|||
|
||||
React = require "react/addons"
|
||||
{div, h1} = React.DOM
|
||||
Router = require('react-router')
|
||||
|
||||
App = React.createClass
|
||||
render: ->
|
||||
(div {}, [
|
||||
h1 {}, "App"
|
||||
Router.RouteHandler
|
||||
])
|
||||
|
||||
|
||||
module.exports = App
|
|
@ -1,47 +0,0 @@
|
|||
###
|
||||
Rookeries client - Temporary unavailable modal.
|
||||
|
||||
@copyright (c) Copyright 2013-2015 Dorian Pula
|
||||
@license AGPL v3
|
||||
@author Dorian Pula [dorian.pula@amber-penguin-software.ca]
|
||||
###
|
||||
|
||||
'use strict'
|
||||
|
||||
React = require('react')
|
||||
Bootstrap = require('react-bootstrap')
|
||||
FontAwesome = require('react-fontawesome')
|
||||
|
||||
FeatureUnavailableModal = React.createClass(
|
||||
render: () ->
|
||||
console.log('Render UserRegistrationModal view.')
|
||||
return(
|
||||
|
||||
<Bootstrap.Modal {...@props} title='Feature Unavailable' animation={false}>
|
||||
|
||||
<div className="modal-body">
|
||||
<Bootstrap.Alert bsStyle='warning'>
|
||||
Feature currently unavailable.
|
||||
</Bootstrap.Alert>
|
||||
</div>
|
||||
|
||||
<div className="modal-footer">
|
||||
<Bootstrap.Button bsStyle="warning" onClick={this.props.onRequestHide}>OK</Bootstrap.Button>
|
||||
</div>
|
||||
|
||||
</Bootstrap.Modal>
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
FeatureUnavailableModalTrigger = (
|
||||
<Bootstrap.ModalTrigger {...@props} modal={<FeatureUnavailableModal />} >
|
||||
<div className="text-center muted hoverable">
|
||||
<FontAwesome name='eye' />
|
||||
|
||||
Change to [ alternative_theme ] theme
|
||||
</div>
|
||||
</Bootstrap.ModalTrigger>
|
||||
)
|
||||
|
||||
module.exports = FeatureUnavailableModalTrigger
|
|
@ -8,12 +8,12 @@ Rookeries client - Markdown controller to view a journal entry.
|
|||
|
||||
'use strict'
|
||||
|
||||
React = require('react')
|
||||
Reflux = require('reflux')
|
||||
marked = require('marked')
|
||||
Router = require('react-router')
|
||||
React = require 'react'
|
||||
Reflux = require 'reflux'
|
||||
marked = require 'marked'
|
||||
Router = require 'react-router'
|
||||
|
||||
JournalEntryActions = require('../actions/journal_actions.coffee')
|
||||
Actions = require "../actions.coffee"
|
||||
JournalEntryStore = require('../stores/journal_entry_store.coffee')
|
||||
|
||||
|
||||
|
@ -35,19 +35,19 @@ JournalMarkdownView = React.createClass(
|
|||
|
||||
componentDidMount: () ->
|
||||
console.log('Mount JournalMarkdownView.')
|
||||
@listenTo(JournalEntryActions.viewEntry, @onStatusChange)
|
||||
@listenTo(JournalEntryActions.showError, @onErrorStatus)
|
||||
@listenTo(Actions.viewEntry, @onStatusChange)
|
||||
@listenTo(Actions.showError, @onErrorStatus)
|
||||
|
||||
pageToLoad = @getParams().id
|
||||
console.log("Trigger JournalEntryAction.loadEntry event - #{pageToLoad}.")
|
||||
JournalEntryActions.loadEntry(pageToLoad)
|
||||
Actions.loadEntry(pageToLoad)
|
||||
|
||||
statics: {
|
||||
willTransitionTo: (transition, params, query, callback) ->
|
||||
console.log('Transition for JournalMarkdownView triggered.')
|
||||
pageToLoad = params.id
|
||||
console.log("Trigger JournalEntryAction.loadEntry event - #{pageToLoad}.")
|
||||
JournalEntryActions.loadEntry(pageToLoad)
|
||||
Actions.loadEntry(pageToLoad)
|
||||
callback()
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
###
|
||||
Rookeries client - Temporary unavailable modal.
|
||||
|
||||
@copyright (c) Copyright 2013-2015 Dorian Pula
|
||||
@license AGPL v3
|
||||
@author Dorian Pula [dorian.pula@amber-penguin-software.ca]
|
||||
###
|
||||
|
||||
"use strict"
|
||||
|
||||
React = require "react"
|
||||
Bootstrap = require "react-bootstrap"
|
||||
FontAwesome = require "react-fontawesome"
|
||||
|
||||
Actions = require "../actions.coffee"
|
||||
ThemeSwitchStore = require "../stores/theme_switcher_store.coffee"
|
||||
|
||||
|
||||
ThemeSwitchView = React.createClass(
|
||||
switchTheme: () ->
|
||||
console.log("Switch theme")
|
||||
Actions.switchTheme()
|
||||
|
||||
render: () ->
|
||||
console.log("Render UserRegistrationModal view.")
|
||||
return (
|
||||
<div className="text-center muted hoverable" onClick=@switchTheme>
|
||||
<FontAwesome name="eye" />
|
||||
Change to [ alternative_theme ] theme
|
||||
</div>
|
||||
)
|
||||
)
|
||||
|
||||
module.exports = ThemeSwitchView
|
Loading…
Reference in New Issue