Task1:
Дополнительная функциональность:
- Замена favicon ).
- Добавлены стили в style.css.
- Добавлены поля воода адреса доставки с двунаправленным связыванием в карту покупок. Адрес отображается внизу страницы при всех заполненных полях.
- Добавлена возможность удаления товаров из корзины.
- Описание товара открывается / закрывается по клику на название.
Task2:
Дополнительная функциональность:
- В product-list применён [ngClass] и [ngStyle]
- #variable в cart.component.html: сначала вводим адрес, затем нажимаем buy
- @ViewChild в cart.component.ts: кнопка Clear
- ngOnChanges в product.component.ts
- ngOnDestroy в cart-item.component.ts
- События keyup.enter и blur в hello.component.ts
Task4:
- В компоненте product применены currency, date и uppercase пайпы.
- В компоненте order применён currency пайп.
Task5:
- Корзина реализована в виде Secondary Router Outlet
- В модуле Admin применён Child Route Configuration
- Внедрена относительная навигация
- Модули Products и Admin вынесены в асинхронную загрузку
- В модуле Admin, компоненте ProductComponent и ProductListComponent используются CanActivate, CanActivateChild, CanLoad, CanDeactivate, Resolve
- В app.routing ализованы Custom Preloading Strategy, Title Service
- localstorage реализован в корзине (модуль cart)
Task6:
- Сервис по схеме Promise: ProductsService; по схеме Observable: UserArrayService, OrderArrayService.
- Добавлена функциональность регистрации и авторизации нового пользователя. При оформлении заказа происходит его регистрация. В дальнейшем статус заказа можно изменить в панеле адимнистратора.
- Добавлена функциональность корзины. При добавлении нового продукта появляется кнопка открытия корзины. При нажатии оформления заказа запрашивается вход (перенаправления на страницу login) или регистрация (register). Затем заказ добавляется в список заказов.
- В качестве бэкэнда используется json-server: json-server --watch db/db.json
- Добавлен ServerAddressInterceptor, который подставляет всем http запросам адрес сервера, прописанного в ConstantsService.
- Добавлены AutoUnsubscribe декоратор.
Task7:
- Чтобы войти в панель администратора, нужно авторизовать с логином/паролем Admin/Admin
- Добавлена опция "Remember me" на странице авторизации. Реализовано через LocalStorage.
- В форме продукта добавлена проверка существования имени, а в форме пользователя - логина через Async Custom Validator Directive.
- Добавлен шаблон ввода телефонного номера при его выборе в Send Notifications.
- Переработаны страницы "News" и "About".