internal-page-content.component.ts 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. import { HttpClient } from '@angular/common/http';
  2. import { UserService } from './../../shared/user.service';
  3. import { Router, ActivatedRoute } from '@angular/router';
  4. import { AuthServiceService } from './../../shared/auth-service.service';
  5. import { Component, OnInit, AfterViewInit, ViewChild, EventEmitter } from '@angular/core';
  6. import { InternalPageService } from '../../shared/internal-page.service';
  7. import { NgxSpinnerService } from 'ngx-spinner';
  8. import {NgbCarousel,NgbCarouselConfig} from '@ng-bootstrap/ng-bootstrap';
  9. import * as $ from 'jquery';
  10. declare var jQuery: any;
  11. @Component({
  12. selector: 'app-internal-page-content',
  13. templateUrl: './internal-page-content.component.html',
  14. styleUrls: ['./internal-page-content.component.css'],
  15. providers: [NgbCarouselConfig],
  16. })
  17. export class InternalPageContentComponent implements OnInit {
  18. @ViewChild('myCarousel') myCarousel: NgbCarousel;
  19. constructor(private authSer: AuthServiceService,
  20. private router:Router,
  21. private userservice: UserService,
  22. private internalService: InternalPageService,
  23. private route: ActivatedRoute,
  24. private config: NgbCarouselConfig,
  25. private http: HttpClient,
  26. private spinner: NgxSpinnerService) {
  27. this.spinner.show();
  28. }
  29. joinUs = [];
  30. reportsData = [];
  31. externalServices = [];
  32. congratulations = [];
  33. condolences = [];
  34. internalServices = [];
  35. tabsData = [];
  36. achievements = [];
  37. tabCongaData= {
  38. employee_name: '',
  39. employee_name_en: '',
  40. created_at: '',
  41. name: '',
  42. name_en: '',
  43. };
  44. tabSadData = {
  45. employee_name: '',
  46. employee_name_en: '',
  47. created_at: '',
  48. name: '',
  49. name_en: ''
  50. };
  51. joinTabData = {
  52. name: '',
  53. name_en: '',
  54. adminstration_name: '',
  55. adminstration_name_en: '',
  56. date_of_employment_hij: '',
  57. photo: '',
  58. };
  59. advertisiment = {
  60. photo : '',
  61. description: '',
  62. description_en: '',
  63. };
  64. checkShowData: boolean;
  65. tabtype:number = 0;
  66. expandedIndex:number;
  67. selectedItem: any = 0 //check تعاميم active class
  68. live_event = [];
  69. next_lecture = [];
  70. myInnerHeight = window.innerHeight;
  71. flag: boolean = false;
  72. catchEvent(event) {
  73. this.flag = true
  74. console.log(event)
  75. }
  76. hide(event) {
  77. this.flag = false;
  78. }
  79. ngOnInit() {
  80. console.log('content');
  81. //console.log(this.checkTokenExpire);
  82. //get profile data
  83. //this.spinner.show();
  84. this.userservice.getUserDataProfile();
  85. this.authSer.homeActivate = true;
  86. this.internalService.getParentData().subscribe(
  87. (responce) => {
  88. this.authSer.parentsPage = responce['parents'];
  89. for(let i = 0; i < this.authSer.parentsPage.length; i++) {
  90. this.authSer.parentsPage[i].active = 0;
  91. }
  92. },
  93. (error) => {
  94. console.log(error);
  95. }
  96. );
  97. this.internalService.getInternalPageData().subscribe(
  98. (responce) => {
  99. console.log(responce);
  100. this.externalServices = responce['data'].external_services;
  101. console.log('external services ', this.externalServices);
  102. this.reportsData = responce['data'].reports;
  103. console.log('report data', this.reportsData);
  104. for(let i = 0; i< this.reportsData.length; i++) {
  105. if(this.reportsData[i].description.length > 60) {
  106. this.reportsData[i].description = this.reportsData[i].description.substr(0,100) + '.......';
  107. this.reportsData[i].description_en = this.reportsData[i].description_en.substr(0,100) + 'Read More';
  108. }
  109. }
  110. this.live_event = responce['data'].live_lecture;
  111. this.next_lecture = responce['data'].next_lecture;
  112. this.joinUs = responce['data'].users;
  113. this.showJoinData(this.joinUs[0]);
  114. this.condolences = responce['data'].condolences_events;
  115. this.showTabData(this.condolences[0], 'sad');
  116. this.congratulations = responce['data'].congratulations_events;
  117. this.showTabData(this.congratulations[0], 'wedding');
  118. this.internalService = responce['data'].internal_services;
  119. console.log('internalService', this.internalService);
  120. this.tabsData = responce['data'].tabs;
  121. this.tabsData.map( (tab) => {
  122. tab.created_at = tab.created_at.split(' ')[0];
  123. });
  124. if(this.tabsData.length > 0) {
  125. this.checkShowData = false;
  126. } else {
  127. this.checkShowData = true;
  128. }
  129. this.achievements = responce['data'].achievements;
  130. this.advertisiment = {
  131. photo: responce['data']['main_ad'] ? responce['data']['main_ad'].photo : '',
  132. description: responce['data']['main_ad'] ? responce['data']['main_ad'].description: '',
  133. description_en: responce['data']['main_ad'] ? responce['data']['main_ad'].description_en: '',
  134. }
  135. this.spinner.hide();
  136. },
  137. (error) => {
  138. console.log(error);
  139. }
  140. )
  141. }
  142. onGetData(numberTab) {
  143. this.selectedItem = numberTab;
  144. this.spinner.show();
  145. this.tabsData = [];
  146. this.tabtype = numberTab;
  147. this.http.get(this.authSer.pathApi + '/forth_tabs_list/' + this.tabtype).subscribe(
  148. (responce) => {
  149. console.log(responce);
  150. this.tabsData = responce['tabs'];
  151. this.spinner.hide();
  152. },
  153. (error) => {
  154. console.log(error);
  155. }
  156. );
  157. }
  158. onExtraPage(reportId) {
  159. this.router.navigate(['InternalPage/news/' + reportId]);
  160. }
  161. open(data,i) {
  162. console.log(data);
  163. this.expandedIndex = i;
  164. }
  165. closeCollapse(i) {
  166. this.expandedIndex = -1;
  167. }
  168. goToHome() {
  169. this.router.navigate(['InternalPage']);
  170. }
  171. onPageCir() {
  172. this.router.navigate(['InternalPage/circulars']);
  173. }
  174. onLectureTable() {
  175. this.router.navigate(['InternalPage/events']);
  176. }
  177. showTabData(tab, typeTab) {
  178. console.log(tab);
  179. if(typeTab == 'wedding') {
  180. this.tabCongaData = {
  181. employee_name : tab.employee_name,
  182. employee_name_en: tab.employee_name_en,
  183. created_at: tab.created_at,
  184. name: tab.name,
  185. name_en: tab.name_en,
  186. };
  187. for(let i = 0 ; i < this.congratulations.length; i++) {
  188. if(this.congratulations[i].id == tab.id) {
  189. this.congratulations[i].active = 1;
  190. } else {
  191. this.congratulations[i].active = 0;
  192. }
  193. }
  194. } else if(typeTab == 'sad') {
  195. this.tabSadData = {
  196. employee_name : tab.employee_name,
  197. employee_name_en: tab.employee_name_en,
  198. created_at: tab.created_at,
  199. name: tab.name,
  200. name_en: tab.name_en
  201. };
  202. for(let i = 0 ; i < this.condolences.length; i++) {
  203. if(this.condolences[i].id == tab.id) {
  204. this.condolences[i].active = 1;
  205. } else {
  206. this.condolences[i].active = 0;
  207. }
  208. }
  209. }
  210. }
  211. showJoinData(join){
  212. this.joinTabData = {
  213. name : join.name,
  214. name_en: join.name_en,
  215. adminstration_name: join.adminstration_name,
  216. adminstration_name_en: join.adminstration_name,
  217. date_of_employment_hij: join.date_of_employment_hij,
  218. photo: join.photo,
  219. };
  220. for(let i = 0 ; i < this.joinUs.length; i++) {
  221. if(this.joinUs[i].id == join.id) {
  222. this.joinUs[i].active = 1;
  223. } else {
  224. this.joinUs[i].active = 0;
  225. }
  226. }
  227. }
  228. getAllNews() {
  229. this.router.navigate(['InternalPage/newpages/']);
  230. }
  231. onGetService(serviceData) {
  232. console.log(serviceData);
  233. if(serviceData.type == 'internal') {
  234. this.router.navigate(['InternalPage/externalServiceDetails/' + serviceData.id]);
  235. } else if(serviceData.type == 'external') {
  236. window.location.href = serviceData.link;
  237. }
  238. }
  239. }