UNPKG

account-dev

Version:
151 lines (106 loc) 2.82 kB
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 );