Angular app for CAC desktop
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

556 lignes
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>