Size: a a a

Angular - русскоговорящее сообщество

2020 February 13

IB

Igor Bond in Angular - русскоговорящее сообщество
Илья | 😶
Через сервис проверять и отрисовывать
не, нужно не отрисовывать а при окончании плана переводить на страницу оплаты
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Igor Bond
Всем привет
Подскажите плиз как правильно сделать, интересен не код а сам алгоритм - есть такая тема - у юзера есть тарифный план до определенного времени.
нужно контролить когда он закончился. Правильно ли будет создать guard и в нем при каждом переходе на новую страницу делать запрос на сервак проверять дату окончания тарифного плана? Ибо с локалстор как то думаю не камильфо - там и поменять можно
Нельзя это делать на сервере? Сделать перехватчик, который при каждом запросе (ну или чуть реже) будет проверять, не протух ли план пользователя, если протух, то слать статус 402, а на клиенте в интерсепторе перехватывать этот статус.
источник

S

Sulu in Angular - русскоговорящее сообщество
ребят всем привет
источник

S

Sulu in Angular - русскоговорящее сообщество
подскажите как можно реализовать перевод справочных значений в dropdown prime ng
источник

S

Sulu in Angular - русскоговорящее сообщество
как лучше можно это сделать
источник

S

Sulu in Angular - русскоговорящее сообщество
перевод хранится в БД в табличке. например nameRu и nameEn
источник

R

Ramazan in Angular - русскоговорящее сообщество
ребят хелп , не работает
<img [src]="row | safe: 'resourceUrl'" />
источник

R

Ramazan in Angular - русскоговорящее сообщество
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';

@Pipe({
 name: 'safe'
})
export class SafePipe implements PipeTransform {

 constructor(protected sanitizer: DomSanitizer) {}

public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
   switch (type) {
  case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);
  case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);
  case 'script': return this.sanitizer.bypassSecurityTrustScript(value);
  case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);
  case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);
  default: throw new Error(`Invalid safe type specified: ${type}`);
 }
 }
}
источник

R

Ramazan in Angular - русскоговорящее сообщество
Not allowed to load local resource: file:///
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
Andrey Petrov
Нельзя это делать на сервере? Сделать перехватчик, который при каждом запросе (ну или чуть реже) будет проверять, не протух ли план пользователя, если протух, то слать статус 402, а на клиенте в интерсепторе перехватывать этот статус.
ну вот я как раз и спрашиваю как лучше
понятно что на сервере тоже будет проверка
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Igor Bond
ну вот я как раз и спрашиваю как лучше
понятно что на сервере тоже будет проверка
Я бы просто сделал проверку на сервере при каждом запросе, возможно, с кэшированием на n времени, и просто http-интерцептор на клиенте, которыый перехватывает статус истечения плана. В интерцепторе уже можно или открывать окно с просьбой оплаты, или редиректить на страницу оплаты.
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
Andrey Petrov
Я бы просто сделал проверку на сервере при каждом запросе, возможно, с кэшированием на n времени, и просто http-интерцептор на клиенте, которыый перехватывает статус истечения плана. В интерцепторе уже можно или открывать окно с просьбой оплаты, или редиректить на страницу оплаты.
ага, тоже думаю так гуд
А кеширование думаю не нужно, там же все равно есть инфа о юзере всегда, то есть не нужно доп запросы в бд и т.д
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
но еще может быть косяк, но такой мелкий
когда юзер переходит на страницу и там уже есть какие то запросы - то будет норм
а если к примеру юзер перешел на страницу где запросов нет, а там форма на 50 полей - он ее заполнял пол часа - а потом отправляет запрос - а ему говорят у тебя тарифный план закончился
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Igor Bond
но еще может быть косяк, но такой мелкий
когда юзер переходит на страницу и там уже есть какие то запросы - то будет норм
а если к примеру юзер перешел на страницу где запросов нет, а там форма на 50 полей - он ее заполнял пол часа - а потом отправляет запрос - а ему говорят у тебя тарифный план закончился
У нас такое возможно с авторизацией. Мы в таких случаях, чтобы пользователь не терял данные, отображаем поверх всего вьюпорта диалоговое окно авторизации, пользователь там вводит данные, и уже после этого окно закрывается, и все данные сохраняются. Плюс еще сделали фичу, что интерцептор переотправляет запросы, упавшие с 401, после успешной авторизации. То есть пользователь заполнил, нажал сохранить, попросили авторизоваться, авторизовался, данные сами сохранились, без доп. действий
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
Andrey Petrov
У нас такое возможно с авторизацией. Мы в таких случаях, чтобы пользователь не терял данные, отображаем поверх всего вьюпорта диалоговое окно авторизации, пользователь там вводит данные, и уже после этого окно закрывается, и все данные сохраняются. Плюс еще сделали фичу, что интерцептор переотправляет запросы, упавшие с 401, после успешной авторизации. То есть пользователь заполнил, нажал сохранить, попросили авторизоваться, авторизовался, данные сами сохранились, без доп. действий
ну с авторизацией проще, два поля заполнил и все
а тут выходит процесс оплаты  - длогая песня, он может и забыть что заполнял
может тогда и в guard сделать доп проверку плана без запроса на сервак, чисто не для мега безопасности, а просто что бы предотвратить подобные случаи?
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Igor Bond
ну с авторизацией проще, два поля заполнил и все
а тут выходит процесс оплаты  - длогая песня, он может и забыть что заполнял
может тогда и в guard сделать доп проверку плана без запроса на сервак, чисто не для мега безопасности, а просто что бы предотвратить подобные случаи?
Долгие процессы оплаты также решаемы, можно показать окошко "Время действия истекло, для оплаты нажмите кнопку", и открывать страницу оплаты в соседней вкладке. Если у вас на одном домене все, то можно после успешной оплаты через localStorage прокидывать данные в первую вкладку (хитровато, да 😊), а дальше уже как после успешной авторизации
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Igor Bond
ну с авторизацией проще, два поля заполнил и все
а тут выходит процесс оплаты  - длогая песня, он может и забыть что заполнял
может тогда и в guard сделать доп проверку плана без запроса на сервак, чисто не для мега безопасности, а просто что бы предотвратить подобные случаи?
Гвард тоже не 100% решение, открыл вкладку, час заполнял форму, дергая кого-нибудь для советов (а где на клаве any key?), план истек, час потерял 😊
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
Andrey Petrov
Долгие процессы оплаты также решаемы, можно показать окошко "Время действия истекло, для оплаты нажмите кнопку", и открывать страницу оплаты в соседней вкладке. Если у вас на одном домене все, то можно после успешной оплаты через localStorage прокидывать данные в первую вкладку (хитровато, да 😊), а дальше уже как после успешной авторизации
ну новая вкладка на обычном сайте норм, а вот в SPA печаль
да тоже думал что может такое быть - страницу открыл - до обеда другим занимался а тут решил заполнить и план истек
случаи редкие конечно но может быть и такое
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
> ну новая вкладка на обычном сайте норм, а вот в SPA печаль

Надо бы нашим пользователям рассказать, а то любят открыть список сущностей с какой-нибудь аналитикой и нужные сущности открыть в соседних вкладках 😅
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
Andrey Petrov
> ну новая вкладка на обычном сайте норм, а вот в SPA печаль

Надо бы нашим пользователям рассказать, а то любят открыть список сущностей с какой-нибудь аналитикой и нужные сущности открыть в соседних вкладках 😅
ну если юзер сам плодит новые вкладки даже на spa это его проблемы - пусть ждет загрузку всего приложения
А вот если разраб сам принцип spa игнорит - это пичаль бида ))
источник