events.component.ts 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. import { HttpClient } from '@angular/common/http';
  2. import { EventService } from './../../shared/event.service';
  3. import { AuthServiceService } from './../../shared/auth-service.service';
  4. import { UserService } from './../../shared/user.service';
  5. import { ActivatedRoute, Router, Params } from '@angular/router';
  6. import { Component, OnInit } from '@angular/core';
  7. import { NgxSpinnerService } from 'ngx-spinner';
  8. import { ToastrService } from 'ngx-toastr';
  9. @Component({
  10. selector: 'app-events',
  11. templateUrl: './events.component.html',
  12. styleUrls: ['./events.component.css']
  13. })
  14. export class EventsComponent implements OnInit {
  15. constructor(private route: ActivatedRoute,
  16. private userSer: UserService,
  17. private spinner: NgxSpinnerService,
  18. private authSer: AuthServiceService,
  19. private toastr: ToastrService,
  20. private http: HttpClient,
  21. private eventService: EventService,
  22. private router: Router) { }
  23. pageId: number;
  24. eventsList = [];
  25. eventsListIds = [];
  26. count: number;
  27. perPagePagenation: number;
  28. p: number[] = [];
  29. currentPage:number = 1;
  30. filtterStatus = '';
  31. selectedAll: any;
  32. userLoginId:number;
  33. serviceId:number;
  34. dataTableNumber: number = 5;
  35. pages = [];
  36. ngOnInit() {
  37. this.spinner.show();
  38. //init the values of permision boolean
  39. this.authSer.showAddBtn = false;
  40. this.authSer.showDeleteBtn = false;
  41. this.authSer.showEditBtn = false;
  42. //show / hide notification search in header
  43. this.authSer.notificationLogin = true;
  44. this.authSer.showSearchHeader = false;
  45. this.authSer.showHeaderLogin = false;
  46. this.authSer.showHeaderDashBoard = true;
  47. this.authSer.showDashboardHeader = true;
  48. this.authSer.internalHeader = false;
  49. this.route.params.subscribe(
  50. (params: Params) => {
  51. this.pageId = params['eventPageId'];
  52. }
  53. );
  54. //to show / hide permissions
  55. this.route.parent.params.subscribe(
  56. (params:Params) => {
  57. this.userLoginId = params['userID'];
  58. this.serviceId = params['serviceID'];
  59. this.userSer.getPagesPermetiotns(this.userLoginId, this.serviceId).subscribe(
  60. (responce) => {
  61. console.log(responce);
  62. this.pages = responce['pages'];
  63. for(let i = 0; i< this.pages.length; i++) {
  64. if(this.pages[i].id == 8) {
  65. for(let j = 0; j < this.pages[i].permissions.length; j++) {
  66. if(this.pages[i].permissions[j].name == 'add_event'){
  67. this.authSer.showAddBtn = true;
  68. }
  69. if(this.pages[i].permissions[j].name == 'edit_event'){
  70. this.authSer.showEditBtn = true;
  71. }
  72. if(this.pages[i].permissions[j].name == 'delete_events'){
  73. this.authSer.showDeleteBtn = true;
  74. }
  75. }
  76. }else {
  77. console.log('no events');
  78. }
  79. }
  80. this.spinner.hide();
  81. },
  82. (error) => {console.log(error)}
  83. );
  84. }
  85. );
  86. //get list data
  87. this.eventService.getEventsList(this.pageId, this.currentPage ,this.dataTableNumber).subscribe(
  88. (responce) => {
  89. console.log(responce);
  90. this.eventsList = responce['events'];
  91. this.count = responce['count'];
  92. this.perPagePagenation = responce['per_page'];
  93. console.log('evennnnts', this.eventsList);
  94. this.spinner.hide();
  95. },
  96. (error) => {
  97. console.log(error);
  98. }
  99. );
  100. }
  101. //make all checkbox of user checked
  102. selectAll() {
  103. for (var i = 0; i < this.eventsList.length; i++) {
  104. this.eventsList[i].selected = this.selectedAll;
  105. }
  106. }
  107. checkIfAllSelected() {
  108. this.selectedAll = this.eventsList.every(function(item:any) {
  109. return item.selected == true;
  110. });
  111. }
  112. //filtter function
  113. filtterFunc(data) {
  114. this.eventsList = [];
  115. console.log(data.target.value);
  116. const dataSearch = data.target.value;
  117. this.currentPage = 1;
  118. console.log('search curent page', this.currentPage);
  119. console.log('search page id', this.pageId);
  120. this.eventService.getDataUSerSearchBar(dataSearch, this.pageId, this.currentPage, this.dataTableNumber).subscribe(
  121. (responce) => {
  122. console.log(responce);
  123. this.eventsList = responce['events'];
  124. this.count = responce['count'];
  125. this.perPagePagenation = responce['per_page'];
  126. console.log('filtter count', this.count);
  127. console.log('filtter perPagePAgenation', this.perPagePagenation);
  128. },
  129. (error) => {
  130. console.log(error)
  131. }
  132. );
  133. };
  134. changeRanking(event, id) {
  135. const data = {
  136. id: id,
  137. ranking: event.target.value,
  138. };
  139. console.log(data);
  140. this.http.post(this.authSer.pathApi + '/rank_event', data).subscribe(
  141. (responce) => {
  142. console.log(responce);
  143. this.eventService.getEventsList(this.pageId, this.currentPage, this.dataTableNumber).subscribe(
  144. (responce) => {
  145. console.log(responce);
  146. this.count = responce['count'];
  147. this.perPagePagenation = responce['per_page'];
  148. this.eventsList = responce['events'];
  149. console.log(this.eventsList);
  150. this.spinner.hide();
  151. },
  152. (error) => {
  153. console.log(error);
  154. }
  155. )
  156. },
  157. (error) => {console.log(error)},
  158. );
  159. };
  160. //determine the list count from select element
  161. onGetValue(event) {
  162. this.spinner.show();
  163. this.eventsList = [];
  164. this.dataTableNumber = event.target.value;
  165. this.eventService.getEventsList(this.pageId, this.currentPage, this.dataTableNumber).subscribe(
  166. (responce) => {
  167. console.log(responce);
  168. this.eventsList = responce['events'];
  169. this.count = responce['count'];
  170. this.perPagePagenation = responce['per_page'];
  171. this.spinner.hide();
  172. },
  173. (error) => {
  174. console.log(error);
  175. this.spinner.hide();
  176. }
  177. );
  178. }
  179. onDelete() {
  180. this.eventsListIds = [];
  181. for(let i = 0; i < this.eventsList.length; i++) {
  182. if(this.eventsList[i].selected == true) {
  183. this.eventsListIds.push(this.eventsList[i].id);
  184. }
  185. }
  186. console.log(this.eventsListIds);
  187. this.eventService.deleteEvent(this.eventsListIds).subscribe(
  188. (responce) => {
  189. console.log(responce);
  190. this.toastr.success('تم الحذف');
  191. window.location.reload();
  192. },
  193. (error) => {
  194. console.log(error);
  195. this.spinner.hide();
  196. },
  197. );
  198. };
  199. //add function
  200. onAdd() {
  201. console.log('service/' + this.userLoginId + '/' + this.serviceId + '/addEvent');
  202. this.router.navigate(['service/' + this.userLoginId + '/' + this.serviceId + '/addEvent']);
  203. }
  204. //edit function
  205. onEdit(editEventID) {
  206. this.router.navigate(['service/' + this.userLoginId + '/' + this.serviceId + '/' + 'Event/edit/' + editEventID]);
  207. }
  208. }