Ground work for the bill board announcement feature
parent
729f966952
commit
a27c5ccdd2
|
@ -612,4 +612,38 @@ $(document).ready(function() {
|
|||
// Repo
|
||||
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) {
|
||||
const router = app.loopback.Router();
|
||||
const User = app.models.User;
|
||||
const BillBoard = app.models.BillBoard;
|
||||
router.get('/api/github', githubCalls);
|
||||
router.get('/api/blogger', bloggerCalls);
|
||||
router.get('/api/trello', trelloCalls);
|
||||
|
@ -38,6 +39,7 @@ module.exports = function(app) {
|
|||
'/the-fastest-web-page-on-the-internet',
|
||||
theFastestWebPageOnTheInternet
|
||||
);
|
||||
router.get('/billBoard', billBoard);
|
||||
|
||||
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) {
|
||||
res.render('resources/the-fastest-web-page-on-the-internet', {
|
||||
title: 'This is the fastest web page on the internet'
|
||||
|
|
|
@ -66,5 +66,9 @@
|
|||
"userIdentity": {
|
||||
"dataSource": "db",
|
||||
"public": true
|
||||
},
|
||||
"BillBoard": {
|
||||
"dataSource": "db",
|
||||
"public": true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,3 +18,9 @@
|
|||
span.ion-close-circled
|
||||
for success in messages.success
|
||||
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