Angular app for CAC desktop
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

556 wiersze
26 KiB

  1. <section *ngIf="partnerDetails">
  2. <div class="shadow" *ngIf="showExportOptions" (click)="showExportOptions = false"></div>
  3. <section class="subpage">
  4. <header class="main-header">
  5. <h2> Partner Profile </h2>
  6. </header>
  7. <div class="segments">
  8. <button class="button" [ngClass]="{'active' : selectedSegment === 1}" (click)="selectedSegment = 1"> Profile
  9. </button>
  10. <button class="button" [ngClass]="{'active' : selectedSegment === 2}" (click)="selectedSegment = 2"
  11. *ngIf="partnerDetails.surveyCtoData.hiiData.length > 0 || partnerDetails.surveyCtoData.spData.length > 0 || partnerDetails.surveyCtoData.spSchemeData.length > 0">
  12. Implementation Data </button>
  13. </div>
  14. <ng-container *ngIf="selectedSegment === 1">
  15. <section class="card">
  16. <header>
  17. <h5> Primary Contact </h5>
  18. </header>
  19. <div class="container">
  20. <div class="input-holder">
  21. <input type="text" disabled="{{ !isFormEditable }}"
  22. [(ngModel)]="partnerDetails.primaryContact.name">
  23. <label> Name </label>
  24. </div>
  25. <div class="input-holder">
  26. <input type="text" disabled="{{ !isFormEditable }}"
  27. [(ngModel)]="partnerDetails.primaryContact.designation">
  28. <label> Designation </label>
  29. </div>
  30. <div class="input-holder">
  31. <input type="text" disabled="{{ !isFormEditable }}"
  32. [(ngModel)]="partnerDetails.primaryContact.email">
  33. <label> Email </label>
  34. </div>
  35. <div class="input-holder">
  36. <input type="text" disabled="{{ !isFormEditable }}"
  37. [(ngModel)]="partnerDetails.primaryContact.contactNumber">
  38. <label> Contact </label>
  39. </div>
  40. </div>
  41. </section>
  42. <section class="card">
  43. <header>
  44. <h5> Basic Info </h5>
  45. </header>
  46. <div class="container">
  47. <div class="input-holder">
  48. <input type="text" disabled="{{ !isFormEditable }}"
  49. [(ngModel)]="partnerDetails.organizationBasicInfo.name">
  50. <label> Name </label>
  51. </div>
  52. <div class="input-holder">
  53. <input type="text" disabled="{{ !isFormEditable }}"
  54. [(ngModel)]="partnerDetails.organizationBasicInfo.website">
  55. <label> Official Website </label>
  56. </div>
  57. <div class="input-holder">
  58. <input type="text" disabled="{{ !isFormEditable }}"
  59. [(ngModel)]="partnerDetails.organizationBasicInfo.type">
  60. <label> Type </label>
  61. </div>
  62. <div class="input-holder">
  63. <ng-select [items]="areasOfWork" [readonly]="!isFormEditable" [multiple]="true"
  64. [closeOnSelect]="false" [searchable]="false" bindLabel="name"
  65. placeholder="Select areas of work"
  66. [(ngModel)]="partnerDetails.organizationBasicInfo.areasOfWork">
  67. </ng-select>
  68. <label> Thematic areas of work </label>
  69. </div>
  70. <div class="input-holder">
  71. <input type="text" disabled="{{ !isFormEditable }}"
  72. [(ngModel)]="partnerDetails.organizationBasicInfo.source">
  73. <label> How did you hear about us </label>
  74. </div>
  75. <div class="input-holder">
  76. <input type="text" disabled="{{ !isFormEditable }}"
  77. [(ngModel)]="partnerDetails.organizationBasicInfo.referralName">
  78. <label> Name of the organisation and person that referred </label>
  79. </div>
  80. <div class="checkbox-holder">
  81. <input type="checkbox" disabled="{{ !isFormEditable }}"
  82. [(ngModel)]="partnerDetails.organizationBasicInfo.wouldLikeUpdates">
  83. <label> I would like to receive periodic updates about CAC </label>
  84. </div>
  85. <div class="input-holder">
  86. <textarea type="text" disabled="{{ !isFormEditable }}"
  87. [(ngModel)]="partnerDetails.organizationBasicInfo.reasonForBecomingMember"></textarea>
  88. <label> I would like to become a member of CAC because </label>
  89. </div>
  90. </div>
  91. </section>
  92. <section class="card">
  93. <header>
  94. <h5> Alternative Contact </h5>
  95. </header>
  96. <div class="container">
  97. <div class="input-holder">
  98. <input type="text" disabled="{{ !isFormEditable }}"
  99. [(ngModel)]="partnerDetails.alternateContact.designation">
  100. <label> Name </label>
  101. </div>
  102. <div class="input-holder">
  103. <input type="text" disabled="{{ !isFormEditable }}"
  104. [(ngModel)]="partnerDetails.alternateContact.email">
  105. <label> Name </label>
  106. </div>
  107. <div class="input-holder">
  108. <input type="text" disabled="{{ !isFormEditable }}"
  109. [(ngModel)]="partnerDetails.alternateContact.contactNumber">
  110. <label> Contact </label>
  111. </div>
  112. </div>
  113. </section>
  114. <section class="card">
  115. <header>
  116. <h5> Detailed Profile </h5>
  117. </header>
  118. <div class="container">
  119. <div class="input-holder">
  120. <input type="text" disabled="{{ !isFormEditable }}"
  121. [(ngModel)]="partnerDetails.detailedProfile.partnerLocation">
  122. <label> Partner/Organization/Network Headquarters Location </label>
  123. </div>
  124. <div class="input-holder">
  125. <input type="text" disabled="{{ !isFormEditable }}"
  126. [(ngModel)]="partnerDetails.detailedProfile.state">
  127. <label> State </label>
  128. </div>
  129. <div class="input-holder">
  130. <input type="text" disabled="{{ !isFormEditable }}"
  131. [(ngModel)]="partnerDetails.detailedProfile.district">
  132. <label> District </label>
  133. </div>
  134. <div class="checkbox-holder">
  135. <input type="checkbox" disabled="{{ !isFormEditable }}"
  136. [(ngModel)]="partnerDetails.detailedProfile.haveBranchesInOtherDistricts">
  137. <label> Do you have Branches / Field presence in any other District? </label>
  138. </div>
  139. <div class="input-holder">
  140. <ng-select [items]="countries" [readonly]="!isFormEditable" [multiple]="true"
  141. [closeOnSelect]="false" bindLabel="name" placeholder="Select countries"
  142. [(ngModel)]="partnerDetails.detailedProfile.branchLocationCountries">
  143. </ng-select>
  144. <label> Branch or Field office Location (Countries) </label>
  145. </div>
  146. <ng-container *ngIf="hasIndiaBranchLocation()">
  147. <div class="input-holder">
  148. <ng-select [items]="states" [readonly]="!isFormEditable" [multiple]="true"
  149. [closeOnSelect]="false" [searchable]="false" bindLabel="name"
  150. placeholder="Select states" (change)="updateDistricts($event)"
  151. [(ngModel)]="partnerDetails.detailedProfile.states">
  152. </ng-select>
  153. <label> Branch or Field office Location (States) </label>
  154. </div>
  155. <div class="input-holder">
  156. <ng-select [items]="districts" [readonly]="!isFormEditable" [multiple]="true"
  157. [closeOnSelect]="false" [searchable]="false" bindLabel="name"
  158. placeholder="Select districts" [(ngModel)]="partnerDetails.detailedProfile.districts">
  159. </ng-select>
  160. <label> Branch or Field office Location (Districts) </label>
  161. </div>
  162. </ng-container>
  163. <div class="input-holder">
  164. <input type="text" disabled="{{ !isFormEditable }}"
  165. [(ngModel)]="partnerDetails.detailedProfile.yearOfEstablishment">
  166. <label> Which year your organisation/partner/network was established? </label>
  167. </div>
  168. <div class="input-holder">
  169. <ng-select [items]="communities" [readonly]="!isFormEditable" [multiple]="true"
  170. [closeOnSelect]="false" [searchable]="false" bindLabel="name"
  171. placeholder="Select communities" [(ngModel)]="partnerDetails.detailedProfile.communities">
  172. </ng-select>
  173. <label> Which communities do you work with? </label>
  174. </div>
  175. <div class="input-holder">
  176. <ng-select [items]="preferredModesOfCommunication" [readonly]="!isFormEditable"
  177. [multiple]="true" [closeOnSelect]="false" [searchable]="false" bindLabel="name"
  178. placeholder="Select mode of communication"
  179. [(ngModel)]="partnerDetails.detailedProfile.preferredModeOfCommunications">
  180. </ng-select>
  181. <label> Select your preferred mode of communications with the Collab</label>
  182. </div>
  183. <div class="input-holder">
  184. <ng-select [items]="preferredLanguages" [readonly]="!isFormEditable" [multiple]="true"
  185. [closeOnSelect]="false" [searchable]="false" bindLabel="name"
  186. placeholder="Select preferred Language"
  187. [(ngModel)]="partnerDetails.detailedProfile.preferredLanguages">
  188. </ng-select>
  189. <label> Preferred Language of Communication* (emails, webinars etc. Select all that apply)
  190. </label>
  191. </div>
  192. <div class="input-holder">
  193. <input type="text" disabled="{{ !isFormEditable }}"
  194. [(ngModel)]="partnerDetails.detailedProfile.totalReachOfOrganization">
  195. <label> What is the total reach of your organisation in a year? </label>
  196. </div>
  197. <div class="input-holder">
  198. <textarea maxlength="100" type="text" disabled="{{ !isFormEditable }}"
  199. [(ngModel)]="partnerDetails.detailedProfile.bio"></textarea>
  200. <label> Bio (This information will be displayed along with your logo in the members section of
  201. this website. Max:100 Characters) </label>
  202. </div>
  203. </div>
  204. </section>
  205. <section class="card">
  206. <header>
  207. <h5>
  208. Strength &amp; Capability
  209. </h5>
  210. </header>
  211. <div class="container">
  212. <div class="input-holder">
  213. <ng-select [items]="areasOfSupport" [readonly]="!isFormEditable" [multiple]="true"
  214. [closeOnSelect]="false" [searchable]="false" bindLabel="name" placeholder="Select areas"
  215. [(ngModel)]="partnerDetails.strengthAndCapability.primaryAreasOfSupportRequired">
  216. </ng-select>
  217. <label> What are the primary areas of support that you seek from #COVIDActionCollab? </label>
  218. </div>
  219. <div class="input-holder">
  220. <input type="text" disabled="{{ !isFormEditable }}"
  221. [(ngModel)]="partnerDetails.strengthAndCapability.primaryAreasOfSupportRequiredOther">
  222. <label> If other, please describe </label>
  223. </div>
  224. <div class="input-holder">
  225. <textarea maxlength="100" type="text" disabled="{{ !isFormEditable }}"
  226. [(ngModel)]="partnerDetails.strengthAndCapability.primaryAreasOfSupportRequiredDescription"></textarea>
  227. <label> Kindly elaborate on the option(s) selected above </label>
  228. </div>
  229. <div class="input-holder">
  230. <ng-select [items]="areasOfSupport" [readonly]="!isFormEditable" [multiple]="true"
  231. [closeOnSelect]="false" [searchable]="false" bindLabel="name" placeholder="Select areas"
  232. [(ngModel)]="partnerDetails.strengthAndCapability.primaryAreasOfSupportOffered">
  233. </ng-select>
  234. <label> What are the areas in which you can support/contribute to the #COVIDActionCollab and its
  235. partners? </label>
  236. </div>
  237. <div class="input-holder">
  238. <input type="text" disabled="{{ !isFormEditable }}"
  239. [(ngModel)]="partnerDetails.strengthAndCapability.primaryAreasOfSupportOfferedOther">
  240. <label> If other, please describe </label>
  241. </div>
  242. <div class="input-holder">
  243. <textarea maxlength="100" type="text" disabled="{{ !isFormEditable }}"
  244. [(ngModel)]="partnerDetails.strengthAndCapability.primaryAreasOfSupportOfferedDescription"></textarea>
  245. <label> Kindly elaborate on the option(s) selected above </label>
  246. </div>
  247. <div class="input-holder">
  248. <textarea maxlength="100" type="text" disabled="{{ !isFormEditable }}"
  249. [(ngModel)]="partnerDetails.strengthAndCapability.otherSpecificSupportRequired"></textarea>
  250. <label> Do you require any other specific support? </label>
  251. </div>
  252. </div>
  253. </section>
  254. <div class="card">
  255. <div class="checkbox-holder">
  256. <input type="checkbox" disabled [(ngModel)]="partnerDetails.didAgree">
  257. <label> I agree to the <a href="https://covidactioncollab.org/Mou-charter/" target="_blank">MOU &
  258. Charter</a>. </label>
  259. </div>
  260. <div class="checkbox-holder">
  261. <input type="checkbox" disabled [(ngModel)]="partnerDetails.didDeclare">
  262. <label> I/We hereby declare that I/we neither support nor are associated with any act which
  263. promotes: 1. Human trafficking; 2. Smoking / Chewing tobacco; 3. Violence / terrorism 4. Child
  264. labour / Child Marriage 5. Discrimination based color, race, religion, caste, disability &
  265. sexual orientation 6. Mining 7. Terrorism 8. Abortion counselling referrals, advocate to
  266. decriminalise abortion or expand abortion services. </label>
  267. </div>
  268. </div>
  269. </ng-container>
  270. <ng-container *ngIf="selectedSegment === 2">
  271. <section class="card" *ngIf="partnerDetails.surveyCtoData.hiiData.length > 0">
  272. <header>
  273. <h5> HII Data </h5>
  274. </header>
  275. <section class="table" *ngFor="let package of partnerDetails.surveyCtoData.hiiData">
  276. <div class="row">
  277. <div class="col">
  278. Name
  279. </div>
  280. <div class="col">
  281. {{ package.name }}
  282. </div>
  283. </div>
  284. <div class="row">
  285. <div class="col">
  286. Implementation Status
  287. </div>
  288. <div class="col">
  289. {{ package.implementationStatus }}
  290. </div>
  291. </div>
  292. <div class="row">
  293. <div class="col">
  294. No. of Females
  295. </div>
  296. <div class="col">
  297. {{ package.noOfFemales }}
  298. </div>
  299. </div>
  300. <div class="row">
  301. <div class="col">
  302. No. of Males
  303. </div>
  304. <div class="col">
  305. {{ package.noOfMales }}
  306. </div>
  307. </div>
  308. <div class="row">
  309. <div class="col">
  310. No. of Transgenders
  311. </div>
  312. <div class="col">
  313. {{ package.noOfTransgender }}
  314. </div>
  315. </div>
  316. <div class="row">
  317. <div class="col">
  318. Health Package ID
  319. </div>
  320. <div class="col">
  321. {{ package.packagesHealth }}
  322. </div>
  323. </div>
  324. <div class="row">
  325. <div class="col">
  326. Health Remarks
  327. </div>
  328. <div class="col">
  329. {{ package.healthRemarks }}
  330. </div>
  331. </div>
  332. <div class="row">
  333. <div class="col">
  334. Disaggregation Note
  335. </div>
  336. <div class="col">
  337. {{ package.disaggregationNote }}
  338. </div>
  339. </div>
  340. <div class="row">
  341. <div class="col">
  342. Relevant Documents
  343. </div>
  344. <div class="col">
  345. <a *ngIf="package.relevantDocuments" href="{{ package.relevantDocuments }}" target="_blank"> Link </a>
  346. <span *ngIf="!package.relevantDocuments"> - </span>
  347. </div>
  348. </div>
  349. </section>
  350. </section>
  351. <section class="card" *ngIf="partnerDetails.surveyCtoData.spData.length > 0">
  352. <header>
  353. <h5> SP Data </h5>
  354. </header>
  355. <section class="table" *ngFor="let package of partnerDetails.surveyCtoData.spData">
  356. <div class="row">
  357. <div class="col">
  358. Name
  359. </div>
  360. <div class="col">
  361. {{ package.name }}
  362. </div>
  363. </div>
  364. <div class="row">
  365. <div class="col">
  366. Implementation Status
  367. </div>
  368. <div class="col">
  369. {{ package.status }}
  370. </div>
  371. </div>
  372. <div class="row">
  373. <div class="col">
  374. Female Number
  375. </div>
  376. <div class="col">
  377. {{ package.femaleNo }}
  378. </div>
  379. </div>
  380. <div class="row">
  381. <div class="col">
  382. Male Number
  383. </div>
  384. <div class="col">
  385. {{ package.maleNo }}
  386. </div>
  387. </div>
  388. <div class="row">
  389. <div class="col">
  390. Transgenders Number
  391. </div>
  392. <div class="col">
  393. {{ package.tgNo }}
  394. </div>
  395. </div>
  396. <div class="row">
  397. <div class="col">
  398. Total Aggregation
  399. </div>
  400. <div class="col">
  401. {{ package.totalAggregation }}
  402. </div>
  403. </div>
  404. <div class="row">
  405. <div class="col">
  406. Other Remarks
  407. </div>
  408. <div class="col">
  409. {{ package.otherRemarks }}
  410. </div>
  411. </div>
  412. <div class="row">
  413. <div class="col">
  414. Relevant Documents
  415. </div>
  416. <div class="col">
  417. <a *ngIf="package.relevantDocuments" href="{{ package.relevantDocuments }}" target="_blank"> Link </a>
  418. <span *ngIf="!package.relevantDocuments"> - </span>
  419. </div>
  420. </div>
  421. </section>
  422. </section>
  423. <section class="card" *ngIf="partnerDetails.surveyCtoData.spSchemeData.length > 0">
  424. <header>
  425. <h5> SP Scheme </h5>
  426. </header>
  427. <section class="table" *ngFor="let package of partnerDetails.surveyCtoData.spSchemeData">
  428. <div class="row">
  429. <div class="col">
  430. Count
  431. </div>
  432. <div class="col">
  433. {{ package.count }}
  434. </div>
  435. </div>
  436. <div class="row">
  437. <div class="col">
  438. Scheme Id
  439. </div>
  440. <div class="col">
  441. {{ package.schemeId }}
  442. </div>
  443. </div>
  444. </section>
  445. </section>
  446. </ng-container>
  447. <section class="footer-buttons">
  448. <div class="shadow" *ngIf="showExportOptions" (click)="showExportOptions = false"></div>
  449. <button class="button back" [routerLink]="'/dashboard/partners'">
  450. <img src="assets/chevron-left.svg" alt="">
  451. Back
  452. </button>
  453. <ng-container *ngIf="!isFormEditable">
  454. <button class="button edit" (click)="isFormEditable=true"> <img src="assets/edit.svg" alt=""> Edit
  455. </button>
  456. <button class="button" (click)="showExportOptions=true"> <img src="assets/export.svg" alt=""> Export
  457. </button>
  458. <button class="button delete"> <img src="assets/delete.svg" alt=""> Delete </button>
  459. </ng-container>
  460. <ng-container *ngIf="showExportOptions">
  461. <div class="export-options">
  462. <div class="sub-options">
  463. <header>
  464. <h5>Select Data Type</h5>
  465. </header>
  466. <div>
  467. <span>Profile Data</span>
  468. <div class="radioButton" [ngClass]="{'active' : isProfileData}"
  469. (click)="isProfileData = true; isImplementationData=false; isBothData=false"></div>
  470. </div>
  471. <div>
  472. <span>Implementation Data</span>
  473. <div class="radioButton" [ngClass]="{'active' : isImplementationData}"
  474. (click)="isImplementationData= true; isProfileData=false; isBothData=false"></div>
  475. </div>
  476. <div>
  477. <span>Both</span>
  478. <div class="radioButton" [ngClass]="{'active' : isBothData}"
  479. (click)="isBothData = true; isProfileData = false; isImplementationData=false"></div>
  480. </div>
  481. </div>
  482. <header>
  483. <h5> Export as </h5>
  484. </header>
  485. <div class="options">
  486. <button class="button" (click)="exportProfileData('CSV')"> CSV </button>
  487. <button class="button" (click)="exportProfileData('XLSX')"> Excel </button>
  488. </div>
  489. </div>
  490. </ng-container>
  491. <ng-container *ngIf="isFormEditable">
  492. <button class="button edit" (click)="save()"> <img src="assets/save.svg" alt=""> Save
  493. </button>
  494. <button class="button delete" (click)="isFormEditable=false"> X Cancel </button>
  495. </ng-container>
  496. </section>
  497. </section>
  498. </section>