Project: Mall App Client: Maiora
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

117 lines
5.5 KiB

  1. <ion-content>
  2. <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
  3. <ion-refresher-content
  4. pullingIcon="arrow-down"
  5. pullingText="Pull to refresh"
  6. refreshingSpinner="circles"
  7. refreshingText="Refreshing...">
  8. </ion-refresher-content>
  9. </ion-refresher>
  10. <div class="overlay" [ngClass]="{ 'active' : show_sort_popup }"></div>
  11. <section class="header-bar">
  12. <h2 *ngIf="!showSearchBar"> <img src="assets/custom/logo.png"> Find malls near you </h2>
  13. <input type="text" *ngIf="showSearchBar" placeholder="Search Malls" [(ngModel)]="searchTerm" (input)="searchAllMalls()" autocomplete="off" #searchbar>
  14. <button (click)="toggleSearchBar()">
  15. <ion-icon *ngIf="!showSearchBar" src="assets/custom/search.svg"></ion-icon>
  16. <ion-icon *ngIf="showSearchBar" name="close" mode="md"></ion-icon>
  17. </button>
  18. </section>
  19. <!-- <div class="top-bar-holder">
  20. <div class="tabs-holder">
  21. <button (click)="selected_tab = 'you'" class="tab" [ngClass]="{'active' : selected_tab === 'you'}"> For you </button>
  22. <button (click)="selected_tab = 'recomended'" class="tab" [ngClass]="{'active' : selected_tab === 'recomended'}"> Recommended </button>
  23. <button (click)="selected_tab = 'trendy'" class="tab" [ngClass]="{'active' : selected_tab === 'trendy'}"> Trendy </button>
  24. <button (click)="selected_tab = 'recent'" class="tab" [ngClass]="{'active' : selected_tab === 'recent'}"> Recent </button>
  25. </div>
  26. </div> -->
  27. <div class="results-utilities-holder no-padding">
  28. <h5> Categories </h5>
  29. <ion-button disabled color="default" fill="clear"> SEE ALL </ion-button>
  30. </div>
  31. <div class="food-types-holder">
  32. <ng-container *ngIf="selectedFoodType">
  33. <button (click)="selectedFoodType=''; getMallsByLocation()">
  34. <img src="assets/custom/001-house.svg">
  35. <span> ALL </span>
  36. </button>
  37. </ng-container>
  38. <ng-container *ngFor="let foodType of foodTypes">
  39. <button (click)="getMallsByFoodType(foodType.name)" [ngClass]="{'active' : selectedFoodType === foodType.name}">
  40. <img [src]="foodType.icon" alt=""> <span> {{ foodType.name }} </span>
  41. </button>
  42. </ng-container>
  43. </div>
  44. <div class="results-utilities-holder">
  45. <h5 *ngIf="tempMalls"> {{ tempMalls.length }} MALLS </h5>
  46. <ion-button color="default" fill="clear" (click)="show_sort_popup = true"> SORT / FILTER </ion-button>
  47. </div>
  48. <ion-list lines="none" class="result-list">
  49. <ng-container *ngFor="let mallData of tempMalls;">
  50. <ion-item *ngIf="mallData.mall.outlet && mallData.mall.outlet.length > 0">
  51. <img src="{{ mallData.mall.image_url }}" slot="start">
  52. <ion-label>
  53. <h3>
  54. <span (click)="showMallDetails(mallData)"> {{ mallData.mall.mall_name }} </span>
  55. <ion-icon (click)="toggleMallBookmark(mallData)" name="bookmark"
  56. [ngClass]="{'active' : mallData.mall.is_bookmarked }"></ion-icon>
  57. </h3>
  58. <p class="description" (click)="showMallDetails(mallData)"> {{ mallData.mall.description }} </p>
  59. <div class="offers-holder">
  60. <div class="offer">
  61. <ion-icon src="assets/custom/restaurant.svg"></ion-icon>
  62. Offers: <strong> {{ mallData.mall.offers_count }} </strong>
  63. </div>
  64. </div>
  65. <div class="utilities-holder">
  66. <div class="container">
  67. <div class="utility">
  68. <ion-icon name="star"></ion-icon> {{ mallData.mall.rating }}
  69. </div>
  70. <div class="utility">
  71. <ion-icon name="pin"></ion-icon> {{ mallData.mall.mall_distance }} km
  72. </div>
  73. </div>
  74. <div class="container">
  75. <button class="utility-button" (click)="shareMallDetails(mallData)">
  76. <ion-icon name="share"></ion-icon>
  77. </button>
  78. <a class="utility-button" target="_blank"
  79. href="https://maps.google.com/?q={{ mallData.latitude }},{{ mallData.longitude }}">
  80. <ion-icon name="navigate"></ion-icon>
  81. </a>
  82. </div>
  83. </div>
  84. </ion-label>
  85. </ion-item>
  86. </ng-container>
  87. </ion-list>
  88. <div class="common-semi-modal sort-holder" [ngClass]="{'active' : show_sort_popup }">
  89. <header>
  90. Sort / Filter <button (click)="show_sort_popup = false"> Done </button>
  91. </header>
  92. <div class="sort-buttons-holder">
  93. <button [ngClass]="{'active' : selected_sort === 'name'}"
  94. (click)="sortBy('name')">
  95. <div class="icon-holder"> A-Z </div>
  96. <span> NAME </span>
  97. </button>
  98. <button [ngClass]="{'active' : selected_sort === 'rating'}"
  99. (click)="sortBy('rating')">
  100. <div class="icon-holder"> <ion-icon name="star"></ion-icon> </div>
  101. <span> RATING </span>
  102. </button>
  103. </div>
  104. </div>
  105. </ion-content>