moah client side stuff and temp database schema
This commit is contained in:
parent
2a48c2da55
commit
3ed466930c
2 changed files with 97 additions and 15 deletions
|
@ -1,15 +1,50 @@
|
||||||
exports.postAceInit = function(){
|
exports.postAceInit = function(){
|
||||||
|
|
||||||
|
|
||||||
// after 10 seconds if we dont already have an email for this author then prompt them
|
// after 10 seconds if we dont already have an email for this author then prompt them
|
||||||
setTimeout(function(){askClientToEnterEmail()},10000);
|
setTimeout(function(){init()},10000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function init(){
|
||||||
|
if(clientHasAlreadyRegistered){ // if the client has already registered for emails on this pad.
|
||||||
|
showAlreadyRegistered(); // client has already registered, let em know..
|
||||||
|
}else{
|
||||||
|
askClientToEnterEmail(); // ask the client to register
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAlreadyRegistered(){ // the client already registered for emails on this pad so notify the UI
|
||||||
|
$.gritter.add({
|
||||||
|
// (string | mandatory) the heading of the notification
|
||||||
|
title: "Email subscription",
|
||||||
|
// (string | mandatory) the text inside the notification
|
||||||
|
text: "You are already registered for emails for this pad",
|
||||||
|
// (bool | optional) if you want it to fade out on its own or just sit there
|
||||||
|
sticky: false
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function clientHasAlreadyRegistered(){ // Has the client already registered for emails on this?
|
||||||
|
// Given a specific AuthorID do we have an email address in the database?
|
||||||
|
// Given that email address is it registered to this pad?
|
||||||
|
// need to pass the server a message to check
|
||||||
|
var userId = pad.getUserId();
|
||||||
|
var message = {};
|
||||||
|
message.type = 'USERINFO_AUTHOR_EMAIL_IS_REGISTERED_TO_PAD';
|
||||||
|
message.userInfo = {};
|
||||||
|
message.userInfo.userId = userId;
|
||||||
|
pad.collabClient.sendMessage(message);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function askClientToEnterEmail(){
|
function askClientToEnterEmail(){
|
||||||
$.gritter.add({
|
$.gritter.add({
|
||||||
// (string | mandatory) the heading of the notification
|
// (string | mandatory) the heading of the notification
|
||||||
title: "Recieve Email notifications for this pad",
|
title: "Email notifications for this pad",
|
||||||
// (string | mandatory) the text inside the notification
|
// (string | mandatory) the text inside the notification
|
||||||
text: "<form id='ep_email_form'><label for='ep_email'><input type=text id='ep_email'><input type=submit></form>",
|
text: "<form id='ep_email_form'><label for='ep_email'><input id='ep_email' placeholder='your@email.com' value='foo@bar.com' type=email><input type=submit></form>",
|
||||||
// (bool | optional) if you want it to fade out on its own or just sit there
|
// (bool | optional) if you want it to fade out on its own or just sit there
|
||||||
sticky: true,
|
sticky: true,
|
||||||
// (int | optional) the time you want it to be alive for before fading out
|
// (int | optional) the time you want it to be alive for before fading out
|
||||||
|
@ -38,7 +73,7 @@ function sendEmailToServer(){
|
||||||
var message = {};
|
var message = {};
|
||||||
message.type = 'USERINFO_UPDATE';
|
message.type = 'USERINFO_UPDATE';
|
||||||
message.userInfo = {};
|
message.userInfo = {};
|
||||||
// message.userInfo.colorId = "#0000";
|
message.padId = pad.getPadId();
|
||||||
message.userInfo.email = email;
|
message.userInfo.email = email;
|
||||||
message.userInfo.userId = userId;
|
message.userInfo.userId = userId;
|
||||||
|
|
||||||
|
|
65
update.js
65
update.js
|
@ -1,4 +1,4 @@
|
||||||
var db = require('../../src/node/db/DB').db;
|
var db = require('../../src/node/db/DB').db,
|
||||||
API = require('../../src/node/db/API.js'),
|
API = require('../../src/node/db/API.js'),
|
||||||
async = require('../../src/node_modules/async'),
|
async = require('../../src/node_modules/async'),
|
||||||
settings = require('../../src/node/utils/Settings');
|
settings = require('../../src/node/utils/Settings');
|
||||||
|
@ -10,25 +10,69 @@ var timers = {};
|
||||||
|
|
||||||
// When a new message comes in from the client
|
// When a new message comes in from the client
|
||||||
exports.handleMessage = function(hook_name, context, callback){
|
exports.handleMessage = function(hook_name, context, callback){
|
||||||
console.warn(context);
|
|
||||||
if (context.message && context.message.data){
|
if (context.message && context.message.data){
|
||||||
if (context.message.data.type == 'USERINFO_UPDATE' ) { // if it smells okay..
|
if (context.message.data.type == 'USERINFO_UPDATE' ) { // if it's a request to update an authors email
|
||||||
if (context.message.data.userInfo){
|
if (context.message.data.userInfo){
|
||||||
console.warn("foo",context.message.data.userInfo);
|
console.debug("userInfo",context.message.data.userInfo);
|
||||||
if(context.message.data.userInfo.email){ // it contains email
|
if(context.message.data.userInfo.email){ // it contains email
|
||||||
|
// console.warn(context.message.data.userInfo.userId);
|
||||||
|
|
||||||
|
console.debug(context.message);
|
||||||
|
|
||||||
|
db.get("emailSubscription:"+context.message.data.padId, function(err, userIds){ // does email Subscription already exist for this user?
|
||||||
|
|
||||||
|
console.debug("UserIds subscribed by email to this pad:", userIds);
|
||||||
|
|
||||||
|
if(userIds){ // THIS NEEDS TO BE AN OBJECT :: TODO
|
||||||
|
// This user ID is already assigned to this padId so don't do anything except tell the user they are already subscribed somehow..
|
||||||
|
|
||||||
|
context.client.json.send({ type: "COLLABROOM",
|
||||||
|
data:{
|
||||||
|
type: email_subscription_success,
|
||||||
|
payload: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
// console.warn ("WRITE MY GOODNESS TO THE DATABASE!",context.message.data.userInfo.email);
|
||||||
|
|
||||||
exports.setAuthorEmail(
|
exports.setAuthorEmail(
|
||||||
context.message.data.userInfo.userId,
|
context.message.data.userInfo.userId,
|
||||||
context.message.data.userInfo.email, callback);
|
context.message.data.userInfo.email, callback
|
||||||
|
);
|
||||||
|
|
||||||
|
exports.setAuthorEmailRegistered(
|
||||||
|
context.message.data.userInfo.userId,
|
||||||
|
context.message.data.padId, callback
|
||||||
|
);
|
||||||
|
|
||||||
|
context.client.json.send({ type: "COLLABROOM",
|
||||||
|
data:{
|
||||||
|
type: email_subscription_success,
|
||||||
|
payload: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
callback(null); // don't run onto passing colorId or anything else to the message handler
|
||||||
|
|
||||||
console.warn ("WRITE MY GOODNESS TO THE DATABASE!",context.message.data.userInfo.email);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.warn ("LORDAMERCI!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.doesPadIdEmailAssociationAlreadyExist = function (padId, email){
|
||||||
|
var found = false;
|
||||||
|
db.get("emailSubscription:"+padId, function(err, value){
|
||||||
|
return value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
exports.padUpdate = function (hook_name, _pad) {
|
exports.padUpdate = function (hook_name, _pad) {
|
||||||
|
|
||||||
var pad = _pad.pad;
|
var pad = _pad.pad;
|
||||||
|
@ -122,8 +166,11 @@ exports.createInterval = function(padId){
|
||||||
}
|
}
|
||||||
|
|
||||||
// Updates the database with the email record
|
// Updates the database with the email record
|
||||||
exports.setAuthorEmail = function (author, email, callback)
|
exports.setAuthorEmail = function (author, email, callback){
|
||||||
{
|
|
||||||
db.setSub("globalAuthor:" + author, ["email"], email, callback);
|
db.setSub("globalAuthor:" + author, ["email"], email, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write email and padId to the database
|
||||||
|
exports.setAuthorEmailRegistered = function(author, padId, callback){
|
||||||
|
db.set("emailSubscription:" + padId, author);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue