Плагин Locations 🌍

Я не могу воспроизвести это, пожалуйста, предоставьте шаги.

Для меня это выглядит так…

  1. Создайте категорию с включённой поддержкой местоположения (все три настройки местоположения отмечены, но не знаю, влияет ли это на что-то).
  2. Создайте новую тему в этой категории и добавьте к ней местоположение. В теме появляется кнопка «Показать карту», и при нажатии на неё на карте отображается маркер в правильном месте.
  3. Создайте вторую новую тему в той же категории, но не добавляйте к ней местоположение. В теме всё ещё отображается кнопка «Показать карту», но при нажатии на неё маркера нет — показывается пустая карта.
  4. Я создал третью тему без местоположения и получил тот же результат, что и в пункте (3).
  5. Я удалил местоположение из первой темы. Остальные темы всё ещё отображали кнопку «Показать карту» с пустой картой.
  6. После удаления местоположения из первой темы я создал четвёртую тему, снова не добавляя местоположение. Четвёртая тема также имела кнопку «Показать карту», ведущую к пустой карте.
  7. В другой категории с включённой поддержкой местоположения я добавил новую тему без указания местоположения. Эта тема также имела кнопку «Показать карту» с пустой картой.
  8. В другой категории без включённой поддержки местоположения (ни одна настройка местоположения не отмечена) я создал новую тему. У неё не было возможности добавить местоположение, но после сохранения темы у неё появилась кнопка «Показать карту», ведущая к пустой карте. Поскольку эта тема находится в категории без поддержки местоположения, нет способа отредактировать её, чтобы удалить местоположение.

Кажется, будто у меня намертво прилип маркер местоположения темы! Надеюсь, вам удастся воспроизвести эту проблему.

1 лайк

Я посмотрю, когда у меня будет время.

Мне также было бы интересно узнать, сможет ли кто-то еще повторить это…

1 лайк

У меня это воспроизвести не удаётся. В первой теме есть геолокация:

А вот моя вторая тема, без геолокации:

Обратите внимание, что у моего пользователя тоже есть привязанная геолокация (это отдельная настройка).

Это тестовый экземпляр, я также проверил это на Production.

Вы на ветке tests-passed?

Можете подробно описать, как вы создали первую геолокацию?

Если вы очистите кэш браузера для этого сайта, сможете ли вы воспроизвести проблему?

Насколько я знаю, я нахожусь в ветке tests-passed, так как никогда не менял настройки по умолчанию.

У моего пользователя была привязана локация, но я её удалил, чтобы проверить, повлияет ли это на что-либо. Все тесты, описанные в моём предыдущем сообщении (и ниже), проводились без установленной локации для пользователя.

Когда локация была установлена, она задавалась по координатам широты и долготы для получения более точного местоположения. Однако тесты тем были выполнены либо путём поиска моей локации — Город=“Layton, Blackpool”, пустое поле и “United Kingdom” с выбором локации с почтовым индексом FY3 8JL, либо по приблизительным координатам широты и долготы — 53.5N 3.01W, если я не ошибаюсь… где-то рядом с Little Crosby, потому что я ошибся при вводе широты! При отображении локации тем явно показывались локации тем, а не ранее определённая более точная локация.

Я очистил кэш, файлы cookie и данные сайта для моего поддомена Discourse. После повторного входа в систему я всё ещё создаю темы с пустой картой. Затем я попробовал другой браузер, которым, насколько я помню, никогда не пользовался для доступа к моему экземпляру Discourse, и он также создал новые темы с кнопкой “Show Map” и пустой картой.

Затем я создал новую учётную запись и не указывал для неё локацию пользователя. Я создал тему с локацией, и всё сработало как ожидалось (карта с маркером), а затем создал вторую тему, у которой локация не была сохранена. Это повторяет то, что вы наблюдаете.

Я создал второго нового пользователя и добавил локацию пользователя в профиль. При создании новой темы локация темы по умолчанию стала равна локации пользователя (должно ли она так работать?), и локация темы была корректно сохранена. Затем я создал вторую тему, нажал на крестик рядом с локацией по умолчанию, и тема была сохранена без локации.

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

1 лайк

Это очень странно. Если у вас есть доступ к консоли Rails, пожалуйста, также проверьте:

TopicCustomField.last(10)

и посмотрите, есть ли в бэкенде данные о местоположении для тем, с которыми у вас возникают проблемы.

1 лайк

Это тема, в которой отображается кнопка карты, но на самой карте нет маркера. Я предполагаю, что это означает наличие у темы локации, но сама локация равна «null» (или аналогичному значению)?

#<TopicCustomField:0x00007fae3f9838f8
  id: 62820,
  topic_id: 71985,
  name: "location",
  value: "{\"geo_location\":\"{}\"}",
  created_at: Thu, 20 Jul 2023 09:55:11.188231000 UTC +00:00,
  updated_at: Thu, 20 Jul 2023 09:55:11.188231000 UTC +00:00>,
#<TopicCustomField:0x00007fae3f983b78
  id: 62821,
  topic_id: 71985,
  name: "has_geo_location",
  value: "t",
  created_at: Thu, 20 Jul 2023 09:55:11.188676000 UTC +00:00,
  updated_at: Thu, 20 Jul 2023 09:55:11.188676000 UTC +00:00>,

Редактирование: Продолжаю копаться… в таблице user_custom_fields у моего аккаунта geo_location = “{}”.

Это полезно. Спасибо.

Я сейчас не за компьютером, но не могли бы вы попробовать добавить местоположение к этой теме, а затем нажать кнопку очистки?

После добавления локации и её последующего удаления исчезает кнопка «Показать карту» и пустая карта. После очистки TopicCustomField получается следующее:

 #<TopicCustomField:0x00007fe540801600
  id: 62834,
  topic_id: 71985,
  name: "has_geo_location",
  value: "f",
  created_at: Thu, 20 Jul 2023 14:48:16.645528000 UTC +00:00,
  updated_at: Thu, 20 Jul 2023 14:48:16.645528000 UTC +00:00>,
 #<TopicCustomField:0x00007fe5393c3d60
  id: 62835,
  topic_id: 71985,
  name: "location",
  value: "{}",
  created_at: Thu, 20 Jul 2023 14:48:16.645876000 UTC +00:00,
  updated_at: Thu, 20 Jul 2023 14:48:16.645876000 UTC +00:00>]
1 лайк

Хорошо, пока это обходное решение.

Если мне удастся воспроизвести проблему, я смогу её исправить.

Дайте знать, если она продолжит возникать.

1 лайк

Это удаляет кнопку из затронутой темы, но при создании каждого нового поста кнопка с пустой картой (null location) по-прежнему отображается.

Не стесняйтесь прислать мне свои настройки Locations в личное сообщение.

У меня есть идея… Я только что снова посмотрел настройки местоположения, и «значение по умолчанию для темы местоположения» было установлено в «пользователь». Я изменил это на «нет», и теперь я могу создать тему без указания местоположения или, при желании, выбрать его добавление. Не уверен, почему я раньше не заметил эту настройку.

Мне интересно, проверяет ли код, когда эта опция установлена в «пользователь», наличие у пользователя пользовательского поля geo_location. Если пользователь никогда не указывал местоположение, то пользовательское значение отсутствует и ничего не происходит. Но если поле найдено, оно добавляется к теме. Когда вы установили местоположение, а затем удалили его, поле geo_location существует, но его значение равно null. Значение null применяется к теме, из-за чего появляется кнопка, но карта остаётся пустой.

Также мне интересно, не являются ли пользователи с пустыми значениями местоположения и/или темы без местоположения причиной странного поведения мировой карты, поскольку она не ожидает увидеть значения null? Я думаю, что удалил все местоположения из тем, где оно, вероятно, было установлено в null, и мировая карта работает лучше: например, пока не возникает проблем с прокруткой.

1 лайк

Привет!

Мы только что обновили наш форум, и теперь наблюдаем различные ошибки, связанные с плагином Locations.

Иногда при просмотре карты внутри обсуждения с геолокацией отображается карта без маркера. Перезагрузка страницы (Shift+Ctrl+R) кажется решает проблему.

Отображение карты с несколькими маркерами внутри категории также иногда показывает карту без каких-либо маркеров. После перезагрузки страницы (Shift+Ctrl+R) появляются некоторые маркеры, но только 30 из них, а не сотни.

Переключение между прямыми URL-адресами к разным картам, отфильтрованным по категориям, не обновляет карту. Отображаются маркеры из предыдущей категории (с той же ошибкой выше: показываются только 30 маркеров вместо сотен).

Все маркеры корректно отображаются на странице /map (до нашего максимального лимита в 1700 маркеров, указанного в настройках). Проблема возникает только при просмотре карты для конкретной категории.

Всё актуально. Наше последнее обновление было 3 месяца назад, и тогда всё работало отлично :slight_smile:

Если это поможет, вот ссылка на наш форум: https://forum.agoramtl.com/

Спасибо за вашу работу над этим плагином.

1 лайк

Спасибо за отчет. Я займусь этим в ближайшее время. Пожалуйста, проявите терпение, так как это, похоже, временная некритичная проблема, а плагин бесплатный. PR с исправлением приветствуется.

2 лайка

Я всё прекрасно понял :slight_smile: Я очень благодарен за вашу работу над этим плагином.

Не знаю, связано ли это, но я вижу эти ошибки в наших логах, похоже, они связаны с картой?

ActionView::Template::Error (No route matches {:action=>"map_feed", :controller=>"list"})
app/views/list/list.erb:134
app/views/list/list.erb:132
lib/topic_list_responder.rb:15:in `block (2 levels) in respond_with_list'
lib/topic_list_responder.rb:8:in `respond_with_list'
app/controllers/list_controller.rb:110:in `block (2 levels) in <class:ListController>'
app/controllers/application_controller.rb:420:in `block in with_resolved_locale'
app/controllers/application_controller.rb:420:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:387:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/008-rack-cors.rb:24:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

РЕДАКТИРОВАНО: Да, это сообщение появляется при доступе к карте, и форум выдаёт ошибку.

1 лайк

Это полезная информация, спасибо.

2 лайка

Эта политика всё ещё действует?

1 лайк

Нет. Это бесплатный плагин, поэтому никаких гарантий совместимости больше не предоставляется. Мы делаем всё возможное, и ожидаем, что сообщество начнёт вносить больший вклад.

Тем не менее, совместимость отслеживается и отображается на панели управления по адресу:

https://coop.pavilion.tech/plugins?branch=tests-passed

Поэтому, пожалуйста, проверяйте это перед обновлением: я уже какое-то время прикладываю особые усилия для добавления тестовых случаев.

На практике серьёзные проблемы будут рассмотрены довольно скоро.

2 лайка

Хорошо, спасибо!