controltower
Advanced tools
Comparing version 0.7.8 to 0.8.0
@@ -7,2 +7,6 @@ module.exports = { | ||
}, | ||
footer: { | ||
appName: version => `• Control Tower v${version} •`, | ||
viewSource: 'view source' | ||
}, | ||
dashboard: { | ||
@@ -9,0 +13,0 @@ title: 'Dashboard', |
module.exports = { | ||
login: { | ||
title: 'Conecte-se', | ||
subtitle: 'Para acessar sua torre de controle é preciso se identificar.', | ||
title: 'Entrada', | ||
subtitle: 'Para acessar a Torre de Controle é necessário identificar-se.', | ||
fbSignInButton: 'Acessar com Facebook' | ||
}, | ||
footer: { | ||
appName: version => `• Control Tower v${version} •`, | ||
viewSource: 'ver código-fonte' | ||
}, | ||
dashboard: { | ||
@@ -8,0 +12,0 @@ title: 'Dashboard', |
{ | ||
"name": "controltower", | ||
"version": "0.7.8", | ||
"version": "0.8.0", | ||
"main": "./src/index.js", | ||
@@ -5,0 +5,0 @@ "license": "AGPL-3.0", |
@@ -33,2 +33,6 @@ 'use strict'; | ||
var _main = require('./views/main'); | ||
var _main2 = _interopRequireDefault(_main); | ||
var _login = require('./views/login'); | ||
@@ -42,19 +46,6 @@ | ||
var _bot = require('./views/bot'); | ||
var _bot2 = _interopRequireDefault(_bot); | ||
var _defaultTheme = require('./style/defaultTheme'); | ||
var _defaultTheme2 = _interopRequireDefault(_defaultTheme); | ||
var _loginWrapper = require('./style/loginWrapper'); | ||
var _loginWrapper2 = _interopRequireDefault(_loginWrapper); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
// styling | ||
// import botForm from './views/bot'; | ||
// views | ||
@@ -73,9 +64,13 @@ | ||
const defaultAnonView = (0, _loginWrapper2.default)(_login2.default); | ||
const authWrapper = (loggedView, anonView = defaultAnonView) => (state, prev, send) => state.customer.isLogged && state.customer.id ? loggedView(state, prev, send) : anonView(state, prev, send); | ||
const viewWrapper = (0, _ramda.pipe)(authWrapper, _defaultTheme2.default); | ||
const defaultAnonView = _login2.default; | ||
const authWrapper = (loggedView, anonView = defaultAnonView) => (state, prev, send) => state.customer.isLogged ? loggedView(state, prev, send) : anonView(state, prev, send); | ||
app.router([['/', viewWrapper(_dashboard2.default)], ['/b/:botId', viewWrapper(_bot2.default)], | ||
const viewWrapper = (0, _ramda.pipe)(authWrapper, _main2.default); | ||
app.router([['/', viewWrapper(_dashboard2.default)], | ||
// ['/b/:botId', viewWrapper(botForm)], | ||
// TODO remove this duplicated routes in a nicer manner | ||
['/controltower', viewWrapper(_dashboard2.default)], ['/controltower/b/:botId', viewWrapper(_bot2.default)]]); | ||
['/controltower', viewWrapper(_dashboard2.default)] | ||
// ['/controltower/b/:botId', viewWrapper(botForm)] | ||
]); | ||
@@ -82,0 +77,0 @@ const tree = app.start(); |
@@ -12,22 +12,24 @@ 'use strict'; | ||
id: null, | ||
name: null, | ||
email: null, | ||
isLogged: false | ||
isLogged: false, | ||
facebook: { | ||
id: null, | ||
name: null, | ||
email: null, | ||
accessToken: null | ||
} | ||
}; | ||
// reducers | ||
const signOut = () => initialState; | ||
const signIn = (data, state) => _extends({}, state, { | ||
isLogged: true | ||
}); | ||
const signOut = () => ({ | ||
id: null, | ||
name: null, | ||
email: null, | ||
isLogged: false | ||
const setFbInfo = (data, state) => _extends({}, state, { | ||
facebook: _extends({}, state.facebook, { | ||
id: data.id, | ||
name: data.name, | ||
email: data.email, | ||
accessToken: data.accessToken | ||
}) | ||
}); | ||
const setInfo = (data, state) => _extends({}, state, { | ||
id: data.id, | ||
name: data.name, | ||
email: data.email | ||
}); | ||
@@ -38,3 +40,3 @@ const customerModel = { | ||
reducers: { | ||
setInfo, | ||
setFbInfo, | ||
signIn, | ||
@@ -41,0 +43,0 @@ signOut |
@@ -6,2 +6,5 @@ 'use strict'; | ||
}); | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
// effects | ||
@@ -14,3 +17,3 @@ const signInToggle = (isLogged, loginParams) => { | ||
if (loginResponse.authResponse) { | ||
console.log('Welcome!'); | ||
console.log('Welcome!', loginResponse.authResponse); | ||
} else { | ||
@@ -23,5 +26,6 @@ console.log('User cancelled login or did not fully authorize.'); | ||
const getUserInfo = (userFields, send, done) => { | ||
const accessToken = window.FB.getAuthResponse().accessToken; | ||
window.FB.api(`/me?fields=${ userFields }`, response => { | ||
console.table(response); | ||
send('customer:setInfo', response, done); | ||
console.table(_extends({}, response, { accessToken })); | ||
send('customer:setFbInfo', _extends({}, response, { accessToken }), done); | ||
}); | ||
@@ -37,3 +41,3 @@ }; | ||
send('fbsession:fetchInfo', data, done); | ||
return send('customer:signIn', data, done); | ||
return send('customer:signIn', null, done); | ||
} | ||
@@ -40,0 +44,0 @@ return send('customer:signOut', data, done); |
@@ -15,31 +15,46 @@ 'use strict'; | ||
var _toolbar = require('./toolbar'); | ||
var _sideMenu = require('../components/sideMenu'); | ||
var _toolbar2 = _interopRequireDefault(_toolbar); | ||
var _sideMenu2 = _interopRequireDefault(_sideMenu); | ||
var _footer = require('../components/footer'); | ||
var _footer2 = _interopRequireDefault(_footer); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const css = require('sheetify'); | ||
const dashboardCss = css` | ||
.right_col { | ||
min-height: 1000px; | ||
} | ||
`; | ||
const menuClasses = { | ||
list: 'nav side-menu', | ||
active: 'active', | ||
homeIcon: 'fa fa-home' | ||
}; | ||
exports.default = (state, prev, send) => _html2.default` | ||
<div> | ||
<h1>${ _ptBr2.default.dashboard.title }</h1> | ||
<form | ||
onsubmit=${ e => { | ||
e.preventDefault(); | ||
const botId = document.forms[0][0].value; | ||
send('bots:select', { id: botId }); | ||
send('bots:load', { id: botId }); | ||
} } | ||
> | ||
<label> | ||
${ _ptBr2.default.dashboard.botUrl } | ||
<input type="text" name="setupId"/> | ||
</label> | ||
<input | ||
type="submit" | ||
value=${ _ptBr2.default.dashboard.load } | ||
/> | ||
</form> | ||
${ (0, _toolbar2.default)(state.customer, state.app, send) } | ||
<hr> | ||
<p>${ JSON.stringify(state.user) }</p> | ||
</div>`; | ||
<div class="nav-sm ${ dashboardCss }"> | ||
<div class="container body"> | ||
<div class="main_container"> | ||
<div class="col-md-3 left_col"> | ||
<div class="left_col scroll-view"> | ||
<div class="main_menu_side hidden-print main_menu"> | ||
${ (0, _sideMenu2.default)(menuClasses) } | ||
</div> | ||
</div> | ||
</div> | ||
<div class="right_col"> | ||
</div> | ||
<footer> | ||
<div class="pull-right"> | ||
${ (0, _footer2.default)(_ptBr2.default.footer, state.customer, state.app, send) } | ||
</div> | ||
<div class="clearfix"></div> | ||
</footer> | ||
</div> | ||
</div> | ||
</div> | ||
`; |
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _html = require('choo/html'); | ||
@@ -15,20 +11,31 @@ | ||
var _login = require('../components/login'); | ||
var _login2 = _interopRequireDefault(_login); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const click = (send, action) => e => { | ||
e.preventDefault(); | ||
send(action); | ||
const css = require('sheetify'); | ||
const loginCss = css` | ||
.login { | ||
position: absolute; | ||
width: 100%; | ||
height: 100%; | ||
} | ||
`; | ||
const classes = { | ||
subtitle: 'lead', | ||
button: 'btn btn-primary' | ||
}; | ||
exports.default = (send, buttonClassname) => _html2.default` | ||
<form> | ||
<h1>${ _ptBr2.default.login.title }</h1> | ||
<h2>${ _ptBr2.default.login.subtitle }</h2> | ||
<button | ||
class=${ buttonClassname } | ||
onclick=${ click(send, 'fbsession:signIn') }} | ||
> | ||
${ _ptBr2.default.login.fbSignInButton } | ||
</button> | ||
</form> | ||
`; | ||
module.exports = (state, prev, send) => _html2.default` | ||
<div class=${ loginCss }> | ||
<div class="login"> | ||
<div class="login_wrapper"> | ||
<div class="login_form"> | ||
<section class="login_content"> | ||
${ (0, _login2.default)(_ptBr2.default.login, classes, send) } | ||
</section> | ||
</div> | ||
</div> | ||
</div> | ||
</div>`; |
59444
28
582