account-dev
Version:
151 lines (106 loc) • 2.82 kB
JavaScript
require('lambdajs').expose(window);
var ALIEN_ID = "account";
var request = require("superagent");
var adda = require("divsense-adda-helper");
var alienBody = require("divsense-alien-body")( ALIEN_ID );
var init = adda.init;
var makeNode = adda.makeNode;
var setChild = adda.setChild;
var toArray = adda.toArray;
var cont = compose( //[[[1
toArray,
setChild( "__root__", "_welcome" ),
makeNode( "_welcome", {
t: "Welcome!",
u: {type:"text",},
k: {fontweight:"bold", color: "blue"}
}),
init
);
var signInForm = compose( //[[[1
toArray,
// setChild( "__root__", "_submit" ),
setChild( "__root__", "_password" ),
setChild( "__root__", "_username" ),
// makeNode( "_submit", {
// t: "Submit",
// u: {type:"command", command: "SIGNAL", fixed: "true"},
// k: {icon:"fa-check"}
// }),
makeNode( "_password", {
u: {type:"input", subtype:"password", fixed: "true", tag:"form", name:"password"},
k: {placeholder:"password",icon:"fa-circle-o"}
}),
makeNode( "_username", {
u: {type:"input", subtype:"text", fixed: "true", tag:"form",name:"username"},
k: {placeholder:"username",icon:"fa-circle-o"}
}),
init
);
var signInHead = function(){ //[[[1
return {
icon: "fa-sign-in",
text: "sign in",
data_attrs: [
["tag", "signin"],
["fixed", "true"],
["change", "content nodes dataset tag form"],
],
content: signInForm()
}
}
var handleHeadEvent = function( req, res, next ){ //[[[1
console.log( "ACCOUNT HANDLE HEAD EVENT", req );
var input = req.params.user_input;
if( input === "in" ){
res.content = {
head: signInHead()
}
}
else if( input === "out" ){
res.content = {
head:{
icon: "fa-sign-out",
text: "Bye, bye!",
data_attrs: [["fixed","true"]]
}
};
}
next( res );
}
var handleChannelSignal = function(req, res, next){ //[[[1
console.log("ACCOUNT SIGNAL", req );
if( req.method === "signal" ){
var tag = adda.getUnitData( "u", "tag", req.params.head );
if( tag === "signin" ){ // user tries to sign in
// get 'username' and 'password' elements
var form_elems = reduce( function(m,e){
var name = adda.getUnitData( "u", "name", e );
if( (name === "username" || name === "password" ) )
m[ name ] = e.t;
return m;
}, {}, req.params.content );
if( form_elems.username && form_elems.password ){
res.content = {
head:{
icon: "fa-home",
text: form_elems.username,
data_attrs: [
["tag", "home"],
["save", "content all"]
],
content: cont()
}
}
}
}
else{
// save in CoundDB
//
}
}
next( res );
}
//]]]1
alienBody.on("channel", handleChannelSignal );
alienBody.on("head", handleHeadEvent );