I think dates on events are actually working now!
parent
bc6f96455a
commit
a2ac4a8bca
|
|
@ -16,7 +16,7 @@ export class EventService {
|
||||||
}
|
}
|
||||||
|
|
||||||
getEvents(page: number): Observable<Event[]> {
|
getEvents(page: number): Observable<Event[]> {
|
||||||
let url = EVENTS_BY_PAGE_URL + page + "?pageSize=" + 10 + "&date=" + (new Date()).getTime().toString();
|
let url = EVENTS_BY_PAGE_URL + page + "?pageSize=" + 10;
|
||||||
return this.http.get(url).map(this.gotData,this).catch(this.dataError)
|
return this.http.get(url).map(this.gotData,this).catch(this.dataError)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -31,6 +31,7 @@ export class EventService {
|
||||||
fd.append("description",event.description);
|
fd.append("description",event.description);
|
||||||
fd.append("startDate",new Date(event.startDate).getTime().toString()); //Pass date as milliseconds since 1970
|
fd.append("startDate",new Date(event.startDate).getTime().toString()); //Pass date as milliseconds since 1970
|
||||||
fd.append("endDate",new Date(event.endDate).getTime().toString()); //Pass date as milliseconds since 1970
|
fd.append("endDate",new Date(event.endDate).getTime().toString()); //Pass date as milliseconds since 1970
|
||||||
|
fd.append("timezoneOffset",new Date().getTimezoneOffset().toString());
|
||||||
|
|
||||||
return this.http.post(EVENTS_ADD_URL,fd,{withCredentials:true})
|
return this.http.post(EVENTS_ADD_URL,fd,{withCredentials:true})
|
||||||
.map(d=>{ return d.json(); })
|
.map(d=>{ return d.json(); })
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ export class SermonService {
|
||||||
fd.append("date",new Date(sermon.sermonDate).getTime().toString()); //Pas date as milliseconds since 1970
|
fd.append("date",new Date(sermon.sermonDate).getTime().toString()); //Pas date as milliseconds since 1970
|
||||||
fd.append("author",sermon.author);
|
fd.append("author",sermon.author);
|
||||||
fd.append("file",sermonFile);
|
fd.append("file",sermonFile);
|
||||||
|
fd.append("timezoneOffset",new Date().getTimezoneOffset().toString());
|
||||||
return this.http.post(SERMON_ADD_URL,fd,{withCredentials:true})
|
return this.http.post(SERMON_ADD_URL,fd,{withCredentials:true})
|
||||||
.map(d=>{ return d.json(); })
|
.map(d=>{ return d.json(); })
|
||||||
.catch(this.dataError);
|
.catch(this.dataError);
|
||||||
|
|
@ -63,6 +63,7 @@ export class SermonService {
|
||||||
fd.append("description",sermon.description);
|
fd.append("description",sermon.description);
|
||||||
fd.append("date",new Date(sermon.sermonDate).toUTCString());
|
fd.append("date",new Date(sermon.sermonDate).toUTCString());
|
||||||
fd.append("author",sermon.author);
|
fd.append("author",sermon.author);
|
||||||
|
fd.append("timezoneOffset",new Date().getTimezoneOffset().toString());
|
||||||
return this.http.put(SERMON_UPDATE_URL,fd,{withCredentials:true})
|
return this.http.put(SERMON_UPDATE_URL,fd,{withCredentials:true})
|
||||||
.map(d => { return d.json(); })
|
.map(d => { return d.json(); })
|
||||||
.catch(this.dataError);
|
.catch(this.dataError);
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,6 @@ module.exports = mysql.createConnection({
|
||||||
user: "ofbapi",
|
user: "ofbapi",
|
||||||
password: "87hjdusiodksyeunsjkdis7",
|
password: "87hjdusiodksyeunsjkdis7",
|
||||||
database: "ofb",
|
database: "ofb",
|
||||||
multipleStatements: true
|
multipleStatements: true,
|
||||||
|
timezone:'UTC+0'
|
||||||
});
|
});
|
||||||
|
|
@ -21,15 +21,17 @@ exports.getEvent = function(eventId, callback, includeDeleted){
|
||||||
event.endDate = rows[0].EndDate;
|
event.endDate = rows[0].EndDate;
|
||||||
event.title = rows[0].Title;
|
event.title = rows[0].Title;
|
||||||
event.description = rows[0].Description;
|
event.description = rows[0].Description;
|
||||||
|
event.timezoneOffset = rows[0].TimezoneOffset;
|
||||||
}
|
}
|
||||||
callback(null,event);
|
callback(null,event);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
exports.getEvents = function(pageSize, pageNumber, date, callback){
|
exports.getEvents = function(pageSize, pageNumber, callback){
|
||||||
var offset = (pageNumber - 1) * pageSize;
|
var offset = (pageNumber - 1) * pageSize;
|
||||||
connection.query("SELECT * FROM Events WHERE DeletedDate IS NULL AND StartDate >= ? ORDER BY StartDate ASC LIMIT ?,?;",[date,offset,pageSize],function(err,rows,fields){
|
var dte = new Date();
|
||||||
|
connection.query("SELECT * FROM Events WHERE DeletedDate IS NULL AND StartDate >= ? ORDER BY StartDate ASC LIMIT ?,?;",[dte,offset,pageSize],function(err,rows,fields){
|
||||||
if (err){
|
if (err){
|
||||||
console.log(err);
|
console.log(err);
|
||||||
callback(err);
|
callback(err);
|
||||||
|
|
@ -43,6 +45,7 @@ exports.getEvents = function(pageSize, pageNumber, date, callback){
|
||||||
event.endDate = rows[i].EndDate;
|
event.endDate = rows[i].EndDate;
|
||||||
event.title = rows[i].Title;
|
event.title = rows[i].Title;
|
||||||
event.description = rows[i].Description;
|
event.description = rows[i].Description;
|
||||||
|
event.timezoneOffset = rows[i].TimezoneOffset;
|
||||||
events.push(event);
|
events.push(event);
|
||||||
}
|
}
|
||||||
console.log(events);
|
console.log(events);
|
||||||
|
|
@ -50,17 +53,17 @@ exports.getEvents = function(pageSize, pageNumber, date, callback){
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.insertEvent = function(titleOrEventObject, startDateOrCallbackFunction, endDate, description, callback){
|
exports.insertEvent = function(titleOrEventObject, startDateOrCallbackFunction, endDate, timezoneOffset, description, callback){
|
||||||
if (typeof startDateOrCallbackFunction === 'function'){
|
if (typeof startDateOrCallbackFunction === 'function'){
|
||||||
insertEventFromObject(titleOrEventObject, startDateOrCallbackFunction);
|
insertEventFromObject(titleOrEventObject, startDateOrCallbackFunction);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//Date is passed as milliseconds since 1970 so we will convert it to a date object
|
//Date is passed as milliseconds since 1970 so we will convert it to a date object
|
||||||
var startDte = new Date(+startDateOrCallbackFunction);
|
//Wrap it in another Date object to getTime so that we can make sure the date is in UTC format
|
||||||
console.log("Start Date");
|
var startDte = new Date(new Date(+startDateOrCallbackFunction).getTime());
|
||||||
console.log(startDte);
|
console.log(startDte);
|
||||||
var endDte = new Date(+endDate);
|
var endDte = new Date(new Date(+endDate).getTime());
|
||||||
connection.query("INSERT INTO Events (CreatedDate,ModifiedDate,Id,Title,StartDate,EndDate,Description) VALUES(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,NULL,?,?,?,?)",[titleOrEventObject,startDte,endDte,description],function(error,result){
|
connection.query("INSERT INTO Events (CreatedDate,ModifiedDate,Id,Title,StartDate,EndDate,TimezoneOffset,Description) VALUES(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,NULL,?,?,?,?,?)",[titleOrEventObject,startDte,endDte,timezoneOffset,description],function(error,result){
|
||||||
if (error){
|
if (error){
|
||||||
console.log(error);
|
console.log(error);
|
||||||
callback(error);
|
callback(error);
|
||||||
|
|
@ -77,7 +80,7 @@ exports.insertEvent = function(titleOrEventObject, startDateOrCallbackFunction,
|
||||||
}
|
}
|
||||||
|
|
||||||
function insertEventFromObject(event, callback){
|
function insertEventFromObject(event, callback){
|
||||||
dbSermons.insertSermon(event.title,event.startDate,event.endDate,evvent.description,callback);
|
dbSermons.insertSermon(event.title,event.startDate,event.endDate,event.timezoneOffset,event.description,callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.deleteEvent = function(eventIdOrEventObject, callback){
|
exports.deleteEvent = function(eventIdOrEventObject, callback){
|
||||||
|
|
|
||||||
|
|
@ -75,13 +75,14 @@ exports.searchSermons = function(pageSize, pageNumber, searchTerm, callback){
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.insertSermon = function(dateOrSermonObject, titleOrCallbackFunction, author, description, file, callback){
|
exports.insertSermon = function(dateOrSermonObject, titleOrCallbackFunction, timezoneOffset, author, description, file, callback){
|
||||||
if (typeof title === 'function'){
|
if (typeof title === 'function'){
|
||||||
insertSermonFromObject(dateOrSermonObject,titleOrCallbackFunction);
|
insertSermonFromObject(dateOrSermonObject,titleOrCallbackFunction);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//Date is passed in as milliseconds from 1970 so we will convert it here
|
//Date is passed in as milliseconds from 1970 so we will convert it here
|
||||||
dateOrSermonObject = new Date(+dateOrSermonObject);
|
//Wrap it in another Date object to getTime so that we can make sure the date is in UTC format
|
||||||
|
dateOrSermonObject = new Date(new Date(+dateOrSermonObject).getTime());
|
||||||
connection.query("INSERT INTO Sermons (CreatedDate,ModifiedDate,Id,Date,Title,Author,Description,File) VALUES(?,CURRENT_TIMESTAMP,NULL,?,?,?,?,?)",[new Date,dateOrSermonObject,titleOrCallbackFunction,author,description,file],function(error,result){
|
connection.query("INSERT INTO Sermons (CreatedDate,ModifiedDate,Id,Date,Title,Author,Description,File) VALUES(?,CURRENT_TIMESTAMP,NULL,?,?,?,?,?)",[new Date,dateOrSermonObject,titleOrCallbackFunction,author,description,file],function(error,result){
|
||||||
if (error){
|
if (error){
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
|
@ -99,7 +100,7 @@ exports.insertSermon = function(dateOrSermonObject, titleOrCallbackFunction, aut
|
||||||
}
|
}
|
||||||
|
|
||||||
function insertSermonFromObject(sermon, callback){
|
function insertSermonFromObject(sermon, callback){
|
||||||
dbSermons.insertSermon(sermon.date,sermon.title,sermon.author,sermon.description,sermon.file,callback);
|
dbSermons.insertSermon(sermon.date,sermon.title,sermon.timezoneOffset,sermon.author,sermon.description,sermon.file,callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.updateSermon = function(sermonIdOrSermonObject, dateOrCallbackFunction, title, author, description, callback){
|
exports.updateSermon = function(sermonIdOrSermonObject, dateOrCallbackFunction, title, author, description, callback){
|
||||||
|
|
|
||||||
|
|
@ -20,14 +20,10 @@ router.get("/:id",function(req,res){
|
||||||
router.get("/page/:page",function(req,res){
|
router.get("/page/:page",function(req,res){
|
||||||
console.log("page");
|
console.log("page");
|
||||||
var pageSize = 5;
|
var pageSize = 5;
|
||||||
var dte = new Date();
|
|
||||||
if (req.query.pageSize){
|
if (req.query.pageSize){
|
||||||
pageSize = parseInt(req.query.pageSize);
|
pageSize = parseInt(req.query.pageSize);
|
||||||
}
|
}
|
||||||
if (req.query.date){
|
dbEvents.getEvents(pageSize,req.params.page,function(err,events){
|
||||||
dte = new Date(+req.query.date);
|
|
||||||
}
|
|
||||||
dbEvents.getEvents(pageSize,req.params.page,dte,function(err,events){
|
|
||||||
if (err){
|
if (err){
|
||||||
res.status(500).json({"status":500,"message":"Error processing request","error":err});
|
res.status(500).json({"status":500,"message":"Error processing request","error":err});
|
||||||
return;
|
return;
|
||||||
|
|
@ -45,7 +41,7 @@ router.post("/a/", function(req,res){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dbEvents.insertEvent(req.body.title,req.body.startDate,req.body.endDate,req.body.description,function(error,event){
|
dbEvents.insertEvent(req.body.title,req.body.startDate,req.body.endDate,req.body.timezoneOffset,req.body.description,function(error,event){
|
||||||
if (error){
|
if (error){
|
||||||
res.status(500).json({"status":500,"message":"There was an error inserting the event"});
|
res.status(500).json({"status":500,"message":"There was an error inserting the event"});
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ router.post("/a/", function(req,res){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
req.body.file = "sermons/" + req.body.file;
|
req.body.file = "sermons/" + req.body.file;
|
||||||
dbSermons.insertSermon(req.body.date,req.body.title,req.body.author,req.body.description,req.body.file,function(error,sermon){
|
dbSermons.insertSermon(req.body.date,req.body.title,req.body.timezoneOffset,req.body.author,req.body.description,req.body.file,function(error,sermon){
|
||||||
if (error){
|
if (error){
|
||||||
removeFile(req.body.tmpPath);
|
removeFile(req.body.tmpPath);
|
||||||
res.status(500).json({"status":500,"message":"There was an error inserting the sermon"});
|
res.status(500).json({"status":500,"message":"There was an error inserting the sermon"});
|
||||||
|
|
|
||||||
|
|
@ -108,10 +108,13 @@ function getEventMeta(req, res, id){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var startDate = event.startDate;
|
||||||
var monthNum = event.startDate.getMonth();
|
//Calculate time with local timezone offset but keep it in UTC
|
||||||
|
startDate.setTime(startDate.getTime() - event.timezoneOffset * 60 * 1000);
|
||||||
|
var monthNum = startDate.getMonth();
|
||||||
var monthName = MONTHS_FULL[monthNum];
|
var monthName = MONTHS_FULL[monthNum];
|
||||||
var day = event.startDate.getDate();
|
var day = startDate.getDate();
|
||||||
|
|
||||||
|
|
||||||
var port = req.socket.localPort;
|
var port = req.socket.localPort;
|
||||||
var imageUrl = req.protocol + "://" + req.hostname + calendarImageUrl + monthName + "/" + day;
|
var imageUrl = req.protocol + "://" + req.hostname + calendarImageUrl + monthName + "/" + day;
|
||||||
|
|
@ -125,7 +128,7 @@ function getEventMeta(req, res, id){
|
||||||
<meta property="og:url" content="`+ evntUrl +`"/>
|
<meta property="og:url" content="`+ evntUrl +`"/>
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
<meta property="og:title" content="` + event.title + `" />
|
<meta property="og:title" content="` + event.title + `" />
|
||||||
<meta property="og:description" content="` + event.startDate.toString() + ` | ` + event.description + `" />
|
<meta property="og:description" content="` + dateToString(startDate) + ` | ` + event.description + `" />
|
||||||
<meta property="og:image" content="` + imageUrl + `"/>
|
<meta property="og:image" content="` + imageUrl + `"/>
|
||||||
<meta property="og:image:width" content="200" />
|
<meta property="og:image:width" content="200" />
|
||||||
<meta property="og:image:height" content="200" />
|
<meta property="og:image:height" content="200" />
|
||||||
|
|
@ -141,6 +144,17 @@ function getEventMeta(req, res, id){
|
||||||
|
|
||||||
function dateToString(dte){
|
function dateToString(dte){
|
||||||
var val = dte.toLocaleString([],{ day: 'numeric', month: 'numeric', year: 'numeric', hour: 'numeric', minute:'2-digit'});
|
var val = dte.toLocaleString([],{ day: 'numeric', month: 'numeric', year: 'numeric', hour: 'numeric', minute:'2-digit'});
|
||||||
|
|
||||||
|
var month = dte.getUTCMonth() + 1;
|
||||||
|
var day = dte.getUTCDate();
|
||||||
|
var year = dte.getUTCFullYear();
|
||||||
|
var hour = dte.getUTCHours();
|
||||||
|
var minute = dte.getUTCMinutes();
|
||||||
|
minute < 10 ? "0" + minute : minute;
|
||||||
|
var pmOrAm = hour > 11 ? " PM" : " AM";
|
||||||
|
hour = hour > 11 ? hour - 12 : hour;
|
||||||
|
val = month + "/" + day + "/" + year + " - " + hour + (minute > 0 ? ":" + minute : "") + pmOrAm;
|
||||||
|
|
||||||
console.log(val);
|
console.log(val);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue