Add delete functionality to events

Transactions
= 2017-09-14 20:05:07 -06:00
parent 98b549b955
commit 9b804fbd40
4 changed files with 26 additions and 3 deletions

View File

@ -1,8 +1,10 @@
import { Component, AfterContentInit, Input, Inject } from '@angular/core'; import { Component, AfterContentInit, Input, Inject } from '@angular/core';
import { MdDialog, MdDialogConfig } from '@angular/material'; import { MdDialog, MdDialogConfig } from '@angular/material';
import { trigger, state, style, transition, animate } from '@angular/animations'; import { trigger, state, style, transition, animate } from '@angular/animations';
import { EventService } from './../../services/event.service';
import { SharePopupComponent } from './../popups/share-popup/share-popup.component'; import { SharePopupComponent } from './../popups/share-popup/share-popup.component';
import { YesNoPopupComponent } from './../popups/yes-no-popup/yes-no-popup.component';
import { MONTHS_FULL } from '../../constants/months'; import { MONTHS_FULL } from '../../constants/months';
@ -69,7 +71,8 @@ export class EventLargeComponent implements AfterContentInit {
return "/api2/cim/" + monthName + "/" + this.startDate.getDate(); return "/api2/cim/" + monthName + "/" + this.startDate.getDate();
} }
constructor(private dialog: MdDialog){ constructor(private dialog: MdDialog,
private eventService: EventService){
console.log(this.title); console.log(this.title);
} }
@ -94,7 +97,19 @@ export class EventLargeComponent implements AfterContentInit {
} }
delete(){ delete(){
let opts = new MdDialogConfig;
opts.data = { title:'Delete','message':'Are you sure you want to delete "' + this.title + '"?' };
let dialog = this.dialog.open(YesNoPopupComponent, opts);
dialog.afterClosed().subscribe(s => {
s = s as boolean;
if (s === true){
this.eventService.deleteEvent(this.id).subscribe(
success => { console.log(success); },
error => { console.log(error); }
);
}
});
} }
} }

View File

@ -1,6 +1,7 @@
export const EVENTS_ADD_URL = "/api2/events/a/"; export const EVENTS_ADD_URL = "/api2/events/a/";
export const EVENT_BY_ID = "/api2/events/"; export const EVENT_BY_ID = "/api2/events/";
export const EVENTS_BY_PAGE_URL = "/api2/events/page/"; export const EVENTS_BY_PAGE_URL = "/api2/events/page/";
export const EVENTS_DELETE_BY_ID_URL = "/api2/events/a/";
export const SERMONS_BY_ID = '/api2/sermons/'; export const SERMONS_BY_ID = '/api2/sermons/';
export const SERMONS_BY_PAGE_URL = '/api2/sermons/page/'; export const SERMONS_BY_PAGE_URL = '/api2/sermons/page/';
export const SERMONS_BY_SEARCH_URL = '/api2/sermons/search'; export const SERMONS_BY_SEARCH_URL = '/api2/sermons/search';

View File

@ -5,7 +5,8 @@ import { Event } from '../interfaces/event';
import { EVENTS_BY_PAGE_URL, import { EVENTS_BY_PAGE_URL,
EVENT_BY_ID, EVENT_BY_ID,
EVENTS_ADD_URL } from '../constants/urls'; EVENTS_ADD_URL,
EVENTS_DELETE_BY_ID_URL } from '../constants/urls';
@Injectable() @Injectable()
export class EventService { export class EventService {
@ -36,6 +37,12 @@ export class EventService {
.catch(this.dataError); .catch(this.dataError);
} }
deleteEvent(eventId: number){
return this.http.delete(EVENTS_DELETE_BY_ID_URL,{withCredentials:true,body:{"id":eventId}})
.map(d => {return d.json(); })
.catch(this.dataError);
}
gotDataSingle(res: Response){ gotDataSingle(res: Response){
let body = res.json(); let body = res.json();
return this.toEvent(body.event); return this.toEvent(body.event);

View File

@ -89,7 +89,7 @@ exports.deleteEvent = function(eventIdOrEventObject, callback){
callback(error); callback(error);
return; return;
} }
dbSermons.getEvent(eventIdOrEventObject,function(error,event){ dbEvents.getEvent(eventIdOrEventObject,function(error,event){
if (error){ if (error){
callback(error); callback(error);
return; return;