Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.19 KB | None | 0 0
  1. <div class="container">
  2. <div class="title-container">
  3. <div class="row">
  4. <div class="col-9" *ngIf="editData">
  5. <h1>Edytuj nową ofertę</h1>
  6. </div>
  7. <div class="col-9" *ngIf="!editData">
  8. <h1>Dodaj nową ofertę</h1>
  9. </div>
  10. <div class="col-3">
  11. <button class="save-button" (click)="addRoom()" [disabled]="!roomForm.valid">Zapisz</button>
  12. </div>
  13. </div>
  14. </div>
  15. <div class="row">
  16. <div class="col-7">
  17.  
  18. <!-- Room form -->
  19. <form [formGroup]="roomForm" novalidate>
  20. <p>Tytuł ogłoszenia</p>
  21. <input formControlName="title" title="Title"
  22. placeholder="Wpisz tytuł...">
  23. <p>Opis</p>
  24. <textarea rows="5" formControlName="description" title="Description"
  25. placeholder="Dodaj opis...">
  26. </textarea>
  27. <div class="row">
  28. <div class="col-5">
  29. <p>Liczba osób<input type="number" formControlName="capacity" title="Capacity"
  30. min="0" max="1000" step="1" value="15">
  31. </p>
  32. </div>
  33. <div class="col-6">
  34. <p>Powierzchnia <span class="small-text">(m<sup>2</sup>)</span><input type="number" formControlName="area" title="Area"
  35. min="0" max="1000" step="5" value="30"></p>
  36. </div>
  37. <div class="col-1"></div>
  38. </div>
  39. <p>Cena <span class="small-text">(zł/h)</span><input type="number" formControlName="price" title="Price"
  40. min="0" max="100000" step="1" value="30"></p>
  41.  
  42. <!-- Address form -->
  43.  
  44. <div formGroupName="address">
  45. <p>Adres</p>
  46. <div *ngIf="!defaultCompanyAddress">
  47. <input formControlName="city" title="City"
  48. placeholder="Wpisz miasto...">
  49. <input formControlName="street" title="Street"
  50. placeholder="Wpisz ulicę...">
  51. <input formControlName="houseNumber" title="House Number"
  52. placeholder="Wpisz numer domu...">
  53. <input formControlName="apartmentNumber" title="ApartmentNumber"
  54. placeholder="Wpisz numer mieszkania...">
  55. </div>
  56. </div>
  57. </form>
  58.  
  59. <!-- Calendar -->
  60.  
  61. <p>Dostępność oferty</p>
  62. <span class="description">Wybierz od kiedy Twoja oferta ma być widoczna dla
  63. użytkowników serwisu.</span>
  64. <div class="row">
  65. <div class="col-6">
  66. <p>Od</p>
  67. <p-calendar [inline]="true" [(ngModel)]="dateFrom" readonlyInput="true" [placeholder]=""
  68. [minDate]="minDate"></p-calendar>
  69. </div>
  70. <div class="col-6">
  71. <div *ngIf="autoProlong; else chooseDate">
  72. <p>Do</p>
  73. <p-checkbox name="date" binary="true"
  74. label="Automatyczne przedłużanie ogłoszenia (widoczne jeśli abonament jest opłacony)."
  75. [(ngModel)]="autoProlong">
  76. </p-checkbox>
  77. </div>
  78. <ng-template #chooseDate>
  79. <div>
  80. <p>DO</p>
  81. <p-calendar [inline]="true" [(ngModel)]="dateTo" readonlyInput="true" [placeholder]=""
  82. [minDate]="dateFrom"></p-calendar>
  83. <p-checkbox name="date" binary="true"
  84. label="Automatyczne przedłużanie ogłoszenia (widoczne jeśli abonament jest opłacony)."
  85. [(ngModel)]="autoProlong">
  86. </p-checkbox>
  87. </div>
  88. </ng-template>
  89. </div>
  90. </div>
  91. <p>Zdjęcia</p>
  92. <span class="description">Dodaj zdjęcia do swojej oferty sali.</span>
  93. <div>
  94. <input type="text" placeholder="Przeglądaj...">
  95. <button class="add-button"><span>Dodaj</span></button>
  96. </div>
  97. </div>
  98.  
  99. <!-- Additional information (right column) -->
  100.  
  101. <div class="col-5">
  102. <p>Udogodnienia</p>
  103. <span class="description">Zaznacz, która z poniższych udogodnień
  104. posiada dodawana przez Ciebie oferta.</span>
  105. <div class="info right">
  106. <div class="isEquipped">
  107. <p-checkbox name="facilities" binary="true" label="Sala wyposażona w sprzęt komputerowy" [(ngModel)]="isEquipped"></p-checkbox>
  108. </div>
  109. <div class="possibilityOfAddingEquipment">
  110. <p-checkbox name="facilities" binary="true"
  111. label="Możliwość wstawienia własnego sprzętu komputerowego" [(ngModel)]="possibilityOfAddingEquipment"></p-checkbox>
  112. </div>
  113. <div class="airConditioning">
  114. <p-checkbox name="facilities" binary="true" label="Klimatyzacja" [(ngModel)]="airConditioning"></p-checkbox>
  115. </div>
  116. <div class="wifi">
  117. <p-checkbox name="facilities" binary="true" label="WiFi" [(ngModel)]="wifi"></p-checkbox>
  118. </div>
  119. <div class="facilitiesForTheDisabled">
  120. <p-checkbox name="facilities" binary="true"
  121. label="Udogodnienia dla osób niepełnosprawnych" [(ngModel)]="facilitiesForTheDisabled"></p-checkbox>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. import {Component, NgZone, OnInit} from '@angular/core';
  134. import { FormBuilder, FormGroup, Validators } from '@angular/forms';
  135. import { Room } from '../../common/Room';
  136. import { RoomService } from '../services/room.service';
  137. import {ActivatedRoute, Router} from "@angular/router";
  138. import {UserService} from "../services/user.service";
  139. import {User} from "../../common/User";
  140. import {Observable} from "rxjs/Observable";
  141.  
  142.  
  143. declare let google: any;
  144.  
  145. @Component({
  146. selector: 'app-room-form',
  147. templateUrl: './room-form.component.html',
  148. styleUrls: ['./room-form.component.scss']
  149. })
  150. export class RoomFormComponent implements OnInit {
  151. public roomID: string;
  152. public room: Room;
  153. public userID: string;
  154. public user: User;
  155. public roomForm: FormGroup;
  156. public minDate = new Date();
  157. public dateFrom: Date;
  158. public dateTo: Date;
  159. public airConditioning: boolean;
  160. public facilitiesForTheDisabled: boolean;
  161. public wifi: boolean;
  162. public possibilityOfAddingEquipment: boolean;
  163. public isEquipped: boolean;
  164. public autoProlong: boolean;
  165. public editData: boolean;
  166. public connectionError: boolean = false;
  167.  
  168. geocoder: any;
  169.  
  170.  
  171. constructor(private formBuilder: FormBuilder,
  172. private roomService: RoomService,
  173. private userService: UserService,
  174. private router: Router,
  175. private route: ActivatedRoute,
  176. private zone: NgZone,) { }
  177.  
  178.  
  179. ngOnInit() {
  180. //for lat and long
  181. this.geocoder = new google.maps.Geocoder();
  182.  
  183. //checkboxes
  184. this.airConditioning = false;
  185. this.facilitiesForTheDisabled = false;
  186. this.wifi = false;
  187. this.possibilityOfAddingEquipment = false;
  188. this.isEquipped = false;
  189. this.autoProlong = true;
  190.  
  191. //get user info
  192. this.userID = this.route.snapshot.paramMap.get('userID');
  193. if (this.userID) {
  194. this.userService.getUserDataById(this.userID).subscribe((user) => {
  195. this.user = user;
  196. });
  197. } else {
  198. this.userService.getUserData().subscribe((user) => {
  199. this.user = user;
  200. });
  201. }
  202. this.roomForm = this.formBuilder.group({
  203. title: ['', Validators.required],
  204. description: ['', Validators.required],
  205. capacity: ['', Validators.required],
  206. area: ['', Validators.required],
  207. price: ['', Validators.required],
  208. airConditioning: this.airConditioning,
  209. facilitiesForTheDisabled: this.facilitiesForTheDisabled,
  210. wifi: this.wifi,
  211. possibilityOfAddingEquipment: this.possibilityOfAddingEquipment,
  212. isEquipped: this.isEquipped,
  213. address: this.formBuilder.group({
  214. city: ['', Validators.required],
  215. street: ['', Validators.required],
  216. houseNumber: ['', Validators.required],
  217. apartmentNumber: ['',],
  218. }),
  219. });
  220. //get room info if exist and check if room exist
  221. this.roomID = this.route.snapshot.paramMap.get('roomID');
  222. if (this.roomID) {
  223. this.roomService.getRoomDataById(this.roomID).subscribe((room) => {
  224. this.room = room;
  225. if (this.room) {
  226. this.roomForm.setValue({
  227. title: this.room.title,
  228. description: this.room.description,
  229. capacity: this.room.capacity,
  230. area: this.room.area,
  231. price: this.room.price,
  232. airConditioning: this.room.airConditioning,
  233. facilitiesForTheDisabled: this.room.facilitiesForTheDisabled,
  234. wifi: this.room.wifi,
  235. possibilityOfAddingEquipment: this.room.possibilityOfAddingEquipment,
  236. isEquipped: this.room.isEquipped,
  237. address: {
  238. city: this.room.address.city,
  239. street: this.room.address.street,
  240. houseNumber: this.room.address.houseNumber,
  241. apartmentNumber: this.room.address.apartmentNumber,
  242. },
  243. });
  244. }
  245. });
  246. //edit exist room
  247. this.editData = true;
  248. } else {
  249. //add new room
  250. this.editData = false;
  251. }
  252. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement