SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002685SAS.Планета[All Projects] Багpublic16-04-2015 10:2516-04-2015 13:25
ReporterGarl 
Assigned Tozed 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusresolvedResolutionfixed 
PlatformWindowsOS7OS VersionProfessional
Product Version141212 
Target Version150915Fixed in Version150915 
Summary0002685: Пункт меню "Открыть папку, содержащую тайл основной карты" для отсутствующего тайла
DescriptionПри выборе пункта меню "Открыть папку, содержащую тайл основной карты" на пустом тайле открывается папка текущего пользователя
в идеале должна открываться папка где должен находиться тайл или каталог выше вплоть до %caсhe_dir%
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0015592)
zed (manager)
16-04-2015 11:04

А по-моему вообще ничего открываться не должно. Надо выдавать сообщение, что тайла не существует, и не мудрить.
(0015593)
vasketsov (manager)
16-04-2015 11:19
edited on: 16-04-2015 11:21

Хм. Вообще-то папка, содержащая тайл основной карты, есть даже в беркли и sqlite. Это папка с БД. Вот её и надо открывать.

Кроме того, концепция tne в части отображения тайла не различает случаи, когда ничего нет в кэше, или есть tne. Сохранять tne или нет - дело исключительно пользователя. К открыванию папки, где хранится тайл, это никакого отношения не имеет, и вообще сохранение признака отсутствия тайла даже на файловом кэше может быть в принципе сделано и без tne. Поэтому должна пытаться открываться именно та папка, где должен быть тайл, независимо от того, есть он, есть tne или вообще ничего нет.

>тайла не существует
Эта логика понятна, что раз нет тайла, то нет и папки, его содержащей. Но разумнее изменить описание на что-то типа "Открыть папку хранения тайла", и открывать папку даже при отсутствии тайла.

(0015594)
Garl (manager)
16-04-2015 11:19

имхо если написано "открыть папку" - значит надо открыть папку
(0015595)
zed (manager)
16-04-2015 11:25

Если тайла нет, то и папки может не быть. И нельзя открыть то, чего нет. А самовольничать и перескакивать на верхнюю папку вплоть до %caсhe_dir% (которой тоже может не быть), не лучшая идея.
(0015596)
vdemidov (manager)
16-04-2015 11:49

Ну, я за то что бы пытаться получить наиболее подробный существующий путь к месту где тайл должен находится.
(0015597)
vdemidov (manager)
16-04-2015 11:50

Но на первое время, хватит и проверки существования такой папки и сообщения, что ее нет вместо открытия експлорера.
(0015598)
vasketsov (manager)
16-04-2015 11:51

>самовольничать
Можно просто спросить, чего открыть, если финишной папки нет.
Чтобы юзер знал, что открылось не то, что он возможно хотел.

Ведь доподлинно неизвестно, что именно хочет юзер, когда видит отсутствие тайла и выполняет данную операцию. Он может не знать, есть tne или нет. А нужно прогнозируемое поведение. Во всяком случае, желательно, чтобы при отсутствующем тайле поведение не зависело от наличия или отсутствия tne. От наличия или отсутствия папки - возможно.

>Если тайла нет, то и папки может не быть
Я тебе даже больше скажу, файл может быть, но папки уже может не быть )))
А в SACS так вообще файловый кэш версионный, а показываться может не запрошенная версия,... и ничего страшного, открывается. Причём в общем версионном случае логика открытия папки может отличаться от логики показа тайла при его отсутствии в нужной версии.

А вообще в ситуации z1\x2\y3\tile.jpg формально папка x2 тоже содержит тайл tile.jpg. Так что формально ничего страшного не произойдёт, если открыть её, если юзер подтвердит, что она его устроит.
(0015599)
zed (manager)
16-04-2015 11:52
edited on: 16-04-2015 11:53

>Ну, я за то что бы пытаться получить наиболее подробный существующий путь

Вплоть до %caсhe_dir%? Не согласен. Пользователь может ошибочно решить, что открылась именно та папка, которае ему нужна, а по факту будет совсем не то.

(0015600)
zed (manager)
16-04-2015 11:54
edited on: 16-04-2015 11:58

> Можно просто спросить, чего открыть, если финишной папки нет.

Не понимаю, зачем такая морока. И зачем юзеру не то, что он вероятнее всего хотел получить.

(0015601)
Garl (manager)
16-04-2015 11:54

>Если тайла нет, то и папки может не быть.
ай не факт, из всего кэша удалили 1 тайл и как раз на нём клацаем, чтобы открыть ... понимаю что это частный случай, но вот так у меня и вышло...
(0015602)
zed (manager)
16-04-2015 11:56

> ай не факт
Поэтому и написано слово может. Может не быть, а может и быть.
(0015603)
vasketsov (manager)
16-04-2015 12:01

>зачем юзеру не то, что он вероятнее всего хотел получить
А что может хотеть получить юзер, вызывая эту операцию на том месте, где он видит, что НЕТ тайла?
(0015604)
zed (manager)
16-04-2015 12:06

Ничего хорошего, поэтому и нужна простая защита от дурака или случайного нажатия.

Либо, нужно делать полную обработку всех возможных ситуаций с отсутствием папки/тайла и на каждом этапе спрашивать и предупреждать юзера, что он дурак и делает не то. Но это, имхо, усложнение на ровном месте.
(0015605)
vasketsov (manager)
16-04-2015 12:24

>простая защита
Ок. Минимум - это проверка наличия желаемой папки и сообщение, что открывать нечего.

Модификация:
а) вместо сообщения о факте отсутствия папки - дополнить его вопросом, а не возжелает ли господин открыть вместо неё родительскую папку;
б) при согласии - пооткусывать в цикле хвост, пока папка не появится или строка не кончится, и если что-то есть - это открыть.

Где усложнение? Цикл? Да его написать быстрее, чем это обсуждать.
Для пользователя, если он хочет именно желаемую папку, ровным счётом ничего не меняется, просто он жмакает "Нет". Ровно то же одно сообщение, которое тоже надо как минимум закрыть.

Зато появляются бонусы:
а) за то же одно сообщение юзер понимает, есть ли тайл, и может перейти к корню или к промежуточной папке - просто как минимум выигрыш в скорости;
б) для кэшей типа SQlite или беркли получается переход к самой базе, независимо от опционального генератора тайловых координат внутри базы, который по сути становится просто точкой вторичного разбора в пространстве имён тайлов.
(0015606)
zed (manager)
16-04-2015 13:04

Вообще, самая простая защита там уже присутствует:

  if DirectoryExists(ExtractFilePath(VTileFileName)) then begin
    SelectFileInExplorer(VTileFileName);
  end else begin
    ShowMessageFmt(SAS_ERR_DirectoryNotExistFmt, [VTileFileName]);
  end;

Так что если папки нету, то ничего и не откроется. Правда в SelectFileInExplorer может передаваться несуществующее имя тайла. Вот отсюда и надо плясать - написать функцию SelectFolderInExplorer и использовать её тут.

Таким образом решается баг, который тут есть. А хотелка по поводу "открой мне то да сё, если вот этого нет" и стоит ли ей заниматься (по-моему не стоит) это уже другой вопрос. Там ещё нужно и про СУБД вспомнить и тоже что-то ответить пользователю, т.е. нюансов тьма.

- Users who viewed this issue
User List Anonymous (3329x)
Total Views 3329
Last View 24-11-2024 05:12

- Issue History
Date Modified Username Field Change
16-04-2015 10:25 Garl New Issue
16-04-2015 10:30 vdemidov Status new => confirmed
16-04-2015 10:30 vdemidov Product Version => 141212
16-04-2015 10:30 vdemidov Target Version => 150915
16-04-2015 11:04 zed Note Added: 0015592
16-04-2015 11:19 vasketsov Note Added: 0015593
16-04-2015 11:19 Garl Note Added: 0015594
16-04-2015 11:21 vasketsov Note Edited: 0015593 View Revisions
16-04-2015 11:25 zed Note Added: 0015595
16-04-2015 11:49 vdemidov Note Added: 0015596
16-04-2015 11:50 vdemidov Note Added: 0015597
16-04-2015 11:51 vasketsov Note Added: 0015598
16-04-2015 11:52 zed Note Added: 0015599
16-04-2015 11:53 zed Note Edited: 0015599 View Revisions
16-04-2015 11:54 zed Note Added: 0015600
16-04-2015 11:54 Garl Note Added: 0015601
16-04-2015 11:56 zed Note Added: 0015602
16-04-2015 11:58 zed Note Edited: 0015600 View Revisions
16-04-2015 12:01 vasketsov Note Added: 0015603
16-04-2015 12:06 zed Note Added: 0015604
16-04-2015 12:24 vasketsov Note Added: 0015605
16-04-2015 13:04 zed Note Added: 0015606
16-04-2015 13:25 zed Status confirmed => resolved
16-04-2015 13:25 zed Fixed in Version => 150915
16-04-2015 13:25 zed Resolution open => fixed
16-04-2015 13:25 zed Assigned To => zed



Copyright © 2007 - 2024 SAS.Planet Team