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[]> {
|
||||
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)
|
||||
};
|
||||
|
||||
|
|
@ -31,6 +31,7 @@ export class EventService {
|
|||
fd.append("description",event.description);
|
||||
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("timezoneOffset",new Date().getTimezoneOffset().toString());
|
||||
|
||||
return this.http.post(EVENTS_ADD_URL,fd,{withCredentials:true})
|
||||
.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("author",sermon.author);
|
||||
fd.append("file",sermonFile);
|
||||
|
||||
fd.append("timezoneOffset",new Date().getTimezoneOffset().toString());
|
||||
return this.http.post(SERMON_ADD_URL,fd,{withCredentials:true})
|
||||
.map(d=>{ return d.json(); })
|
||||
.catch(this.dataError);
|
||||
|
|
@ -63,6 +63,7 @@ export class SermonService {
|
|||
fd.append("description",sermon.description);
|
||||
fd.append("date",new Date(sermon.sermonDate).toUTCString());
|
||||
fd.append("author",sermon.author);
|
||||
fd.append("timezoneOffset",new Date().getTimezoneOffset().toString());
|
||||
return this.http.put(SERMON_UPDATE_URL,fd,{withCredentials:true})
|
||||
.map(d => { return d.json(); })
|
||||
.catch(this.dataError);
|
||||
|
|
|
|||
|
|
@ -4,5 +4,6 @@ module.exports = mysql.createConnection({
|
|||
user: "ofbapi",
|
||||
password: "87hjdusiodksyeunsjkdis7",
|
||||
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.title = rows[0].Title;
|
||||
event.description = rows[0].Description;
|
||||
event.timezoneOffset = rows[0].TimezoneOffset;
|
||||
}
|
||||
callback(null,event);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
exports.getEvents = function(pageSize, pageNumber, date, callback){
|
||||
exports.getEvents = function(pageSize, pageNumber, callback){
|
||||
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){
|
||||
console.log(err);
|
||||
callback(err);
|
||||
|
|
@ -43,6 +45,7 @@ exports.getEvents = function(pageSize, pageNumber, date, callback){
|
|||
event.endDate = rows[i].EndDate;
|
||||
event.title = rows[i].Title;
|
||||
event.description = rows[i].Description;
|
||||
event.timezoneOffset = rows[i].TimezoneOffset;
|
||||
events.push(event);
|
||||
}
|
||||
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'){
|
||||
insertEventFromObject(titleOrEventObject, startDateOrCallbackFunction);
|
||||
return;
|
||||
}
|
||||
//Date is passed as milliseconds since 1970 so we will convert it to a date object
|
||||
var startDte = new Date(+startDateOrCallbackFunction);
|
||||
console.log("Start Date");
|
||||
//Wrap it in another Date object to getTime so that we can make sure the date is in UTC format
|
||||
var startDte = new Date(new Date(+startDateOrCallbackFunction).getTime());
|
||||
console.log(startDte);
|
||||
var endDte = new Date(+endDate);
|
||||
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){
|
||||
var endDte = new Date(new Date(+endDate).getTime());
|
||||
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){
|
||||
console.log(error);
|
||||
callback(error);
|
||||
|
|
@ -77,7 +80,7 @@ exports.insertEvent = function(titleOrEventObject, startDateOrCallbackFunction,
|
|||
}
|
||||
|
||||
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){
|
||||
|
|
|
|||
|
|
@ -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'){
|
||||
insertSermonFromObject(dateOrSermonObject,titleOrCallbackFunction);
|
||||
return;
|
||||
}
|
||||
//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){
|
||||
if (error){
|
||||
console.log(error);
|
||||
|
|
@ -99,7 +100,7 @@ exports.insertSermon = function(dateOrSermonObject, titleOrCallbackFunction, aut
|
|||
}
|
||||
|
||||
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){
|
||||
|
|
|
|||
|
|
@ -20,14 +20,10 @@ router.get("/:id",function(req,res){
|
|||
router.get("/page/:page",function(req,res){
|
||||
console.log("page");
|
||||
var pageSize = 5;
|
||||
var dte = new Date();
|
||||
if (req.query.pageSize){
|
||||
pageSize = parseInt(req.query.pageSize);
|
||||
}
|
||||
if (req.query.date){
|
||||
dte = new Date(+req.query.date);
|
||||
}
|
||||
dbEvents.getEvents(pageSize,req.params.page,dte,function(err,events){
|
||||
dbEvents.getEvents(pageSize,req.params.page,function(err,events){
|
||||
if (err){
|
||||
res.status(500).json({"status":500,"message":"Error processing request","error":err});
|
||||
return;
|
||||
|
|
@ -45,7 +41,7 @@ router.post("/a/", function(req,res){
|
|||
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){
|
||||
res.status(500).json({"status":500,"message":"There was an error inserting the event"});
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ router.post("/a/", function(req,res){
|
|||
return;
|
||||
}
|
||||
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){
|
||||
removeFile(req.body.tmpPath);
|
||||
res.status(500).json({"status":500,"message":"There was an error inserting the sermon"});
|
||||
|
|
|
|||
|
|
@ -108,10 +108,13 @@ function getEventMeta(req, res, id){
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
var monthNum = event.startDate.getMonth();
|
||||
var startDate = event.startDate;
|
||||
//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 day = event.startDate.getDate();
|
||||
var day = startDate.getDate();
|
||||
|
||||
|
||||
var port = req.socket.localPort;
|
||||
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:type" content="website" />
|
||||
<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:width" content="200" />
|
||||
<meta property="og:image:height" content="200" />
|
||||
|
|
@ -141,6 +144,17 @@ function getEventMeta(req, res, id){
|
|||
|
||||
function dateToString(dte){
|
||||
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);
|
||||
return val;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue