Ground work for the bill board announcement feature
parent
729f966952
commit
a27c5ccdd2
|
@ -612,4 +612,38 @@ $(document).ready(function() {
|
||||||
// Repo
|
// Repo
|
||||||
window.location = 'https://github.com/freecodecamp/freecodecamp/';
|
window.location = 'https://github.com/freecodecamp/freecodecamp/';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function getCurrentBillBoard(cb) {
|
||||||
|
$.ajax({
|
||||||
|
url: '/billboard',
|
||||||
|
method: 'GET',
|
||||||
|
dataType: 'JSON'
|
||||||
|
}).done((resp) => {
|
||||||
|
cb(resp);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleNewBillBoard(message) {
|
||||||
|
const seen = typeof localStorage.getItem('billboardSeen') !== "undefined" ? localStorage.getItem('billboardSeen') : 'false';
|
||||||
|
let old = typeof localStorage.getItem('billboard') !== "undefined" ? localStorage.getItem('billboard') : 'false';
|
||||||
|
if(seen !== 'true') {
|
||||||
|
old = null;
|
||||||
|
}
|
||||||
|
if(message.data !== old) {
|
||||||
|
if(!message.err) {
|
||||||
|
$('#billContent').text(message.data);
|
||||||
|
localStorage.setItem('billboard', message.data)
|
||||||
|
} else {
|
||||||
|
console.error(message.err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getCurrentBillBoard(handleNewBillBoard);
|
||||||
|
|
||||||
|
$('#dismissBill').on('click', () => {
|
||||||
|
console.log("test");
|
||||||
|
localStorage.setItem('billboardSeen', 'true');
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"name": "BillBoard",
|
||||||
|
"base": "PersistedModel",
|
||||||
|
"idInjection": true,
|
||||||
|
"trackChanges": false,
|
||||||
|
"properties": {
|
||||||
|
"message": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"active": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"validations": [],
|
||||||
|
"relations": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"acls": [
|
||||||
|
{
|
||||||
|
"accessType": "*",
|
||||||
|
"principalType": "ROLE",
|
||||||
|
"principalId": "$everyone",
|
||||||
|
"permission": "DENY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accessType": "READ",
|
||||||
|
"principalType": "ROLE",
|
||||||
|
"principalId": "$everyone",
|
||||||
|
"permission": "ALLOW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"methods": []
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ import secrets from '../../config/secrets';
|
||||||
module.exports = function(app) {
|
module.exports = function(app) {
|
||||||
const router = app.loopback.Router();
|
const router = app.loopback.Router();
|
||||||
const User = app.models.User;
|
const User = app.models.User;
|
||||||
|
const BillBoard = app.models.BillBoard;
|
||||||
router.get('/api/github', githubCalls);
|
router.get('/api/github', githubCalls);
|
||||||
router.get('/api/blogger', bloggerCalls);
|
router.get('/api/blogger', bloggerCalls);
|
||||||
router.get('/api/trello', trelloCalls);
|
router.get('/api/trello', trelloCalls);
|
||||||
|
@ -38,6 +39,7 @@ module.exports = function(app) {
|
||||||
'/the-fastest-web-page-on-the-internet',
|
'/the-fastest-web-page-on-the-internet',
|
||||||
theFastestWebPageOnTheInternet
|
theFastestWebPageOnTheInternet
|
||||||
);
|
);
|
||||||
|
router.get('/billBoard', billBoard);
|
||||||
|
|
||||||
app.use(router);
|
app.use(router);
|
||||||
|
|
||||||
|
@ -82,6 +84,25 @@ module.exports = function(app) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function billBoard(req, res) {
|
||||||
|
if(req.user && typeof req.user.currentChallenge.challengeId !== "undefined"){
|
||||||
|
BillBoard.findOne({}, function(err, data){
|
||||||
|
if(err){
|
||||||
|
res.send({err: {type: "Error", message: "Database Error"}, data: null});
|
||||||
|
} else {
|
||||||
|
if (data.active) {
|
||||||
|
res.send({err: null, data: data.message});
|
||||||
|
} else {
|
||||||
|
res.send({err: {type: "warning", message: "Bill Board is not active"}, data: null});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res.send({err: {type: "warning", message: "User Not Signed In"}, data: null});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function theFastestWebPageOnTheInternet(req, res) {
|
function theFastestWebPageOnTheInternet(req, res) {
|
||||||
res.render('resources/the-fastest-web-page-on-the-internet', {
|
res.render('resources/the-fastest-web-page-on-the-internet', {
|
||||||
title: 'This is the fastest web page on the internet'
|
title: 'This is the fastest web page on the internet'
|
||||||
|
|
|
@ -66,5 +66,9 @@
|
||||||
"userIdentity": {
|
"userIdentity": {
|
||||||
"dataSource": "db",
|
"dataSource": "db",
|
||||||
"public": true
|
"public": true
|
||||||
|
},
|
||||||
|
"BillBoard": {
|
||||||
|
"dataSource": "db",
|
||||||
|
"public": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,3 +18,9 @@
|
||||||
span.ion-close-circled
|
span.ion-close-circled
|
||||||
for success in messages.success
|
for success in messages.success
|
||||||
div!= success.msg
|
div!= success.msg
|
||||||
|
.row.flashMessage
|
||||||
|
.col-xs-12
|
||||||
|
.alert.alert-success.fade.in
|
||||||
|
button.close(type='button', data-dismiss='alert')
|
||||||
|
span.ion-close-circled#dismissBill
|
||||||
|
#billContent
|
Loading…
Reference in New Issue