Волшебные папки DIRECTUM

16 6

Два дня дождя привели в состояние острой ностальгии. Книги не радовали, фильмы были пересмотрены. Оставался DIRECTUM.

Пришла идея, чтобы посмотреть, что изменилось за прошедшее время в DIRECTUM, решить сложную (как мне казалось) задачу – отобразить навигацию работников средствами одной только обложки.

Задача решена не была – пришлось делать два сценария. Но в остальном – все получилось.

Спешу поделиться и самой обложкой и опытом.

Итак, вот результат:

Начнем с возникших проблем:

  1. Не смотря на то, что у меня IE10, контрол, отображающий обложку, похоже, работает в режиме IE7. На этом этапе отвалилось все интересное – HTML5, CSS3 и JQuery 2. Ну да ладно.
  2. Отладка неудобная и при исключениях в коде контрол валит весь SBRte. Эта проблема решилась контролем и перезапуском процесса из VS 2012.
  3. Не решена проблема с работой в веб-доступе.

Теперь к реализации:

  1. Страница должна, разумеется, работать локально. Главная задача – получать данные и получать их быстро, в том числе получать ссылки на картинки.
  2. Сценарий GetEmployeeCacheFolder просто возвращает локальный путь к темп-папке обложки. Он нужен чтобы передать этот путь странице, для формирования ссылок на фотографии.
  3. Сценарий GetEmployeeCache формирует JSON массив, с нужными данными по работникам. JSON проще формировать в ISBL, он компактнее XML и легче парсится в JQuery. Эти данные он и отдает на страницу. Иначе нельзя – страница не может обращаться к локальным файлам из среды JavaScript.
  4. Кэшем он называется неспроста – в самом начале объявлена константа, которая хранит кол-во часов жизни кэша. Т.е. мы обновляем кэш не каждый раз, а раз в день, например. Причина – производительность. Фотографии могут весить не мало, а они тоже обновляются. Массив JSON хранится в темп-папке обложки и если время жизни не истекло, то он просто считывается из файла и отдается на страницу. Даже при тысячах записей – это доли секунды.
  5. На странице есть «живой поиск». Записи группируются в подразделения.

 

Важно! Обратите внимание, что у меня есть нестандартные реквизиты: Город, Категория и Должность. Поэтому если вы просто импортируете обложку – у вас ничего не заработает. Надо для себя настраивать.

Не судите строго – код не оформлен, тестирование никакое, да и Balvenie влияет расслабляюще ).

На клабе уже поднимался вопрос о публикации разработок и решений. Я не большой оптимист на этот счет. Но вот может сообщество хоть такую обложку до ума доведет…

Вообще, конечно, ценность обложки невелика – она не заменит адресные книги почты и Lync, но приятным дополнением к справочнику работников вполне может быть.

 

Update: исправили две ошибки приводящие к нестабильной работе.

EmployeeExplorer.zip (40,83 Кб)

 

 
Отредактировал Виктор Золотов, 22.07.2013 в 12:37
Отредактировал Елена Питомцева, 22.07.2013 в 18:45
16
Авторизуйтесь, чтобы оценить материал.
2
Mikhail Kislitsyn

/*Не решена проблема с работой в веб-доступе

Я что-то подобное уже делал, решалось так:
Создается два JS файла, реализующих, так сказать один интерфейс прокси-провайдера (набор функций которые вызываются со страницы).
Один для работы с SBRTE, другой с сервисами ВД.
На страницу обложки добавляется код проверки контекста работы и подгрузка одного из двух JS.
И все работает вне зависимости от контекста.

П.С. И еще раз повторю, что веб-доступе лучше не вызывать сценарии билдера (если пользоваться будут очень часто), а постараться обойтись набором имеющихся сервисов (ну или свои написать).

 

Mikhail Kislitsyn

А приведенный скриншот не попадает под распространение персональных данных? smiley

Виктор Золотов
А приведенный скриншот не попадает под распространение персональных данных? 

Что-то эта очевидная мысль не пришла мне в голову... Впрочем, жалоб не поступало, и на FB все телефоны публикуют. Но, конечно, я не прав.

 

 

Артем Мелихов

Добрый день, а какие справочники должны лежать в этой папке? 

Артем Мелихов

Убрал вывод и обработку полей, которых у нас нет. Но при попытке открыть данную папку получаю ошибку "Ошибка!JS Invalid JSON: undefined" 

Mikhail Kislitsyn
Иначе нельзя – страница не может обращаться к локальным файлам из среды JavaScript.

Запоздалый коммент: можно же сформировать файл и подключить его через