Два дня дождя привели в состояние острой ностальгии. Книги не радовали, фильмы были пересмотрены. Оставался DIRECTUM.
Пришла идея, чтобы посмотреть, что изменилось за прошедшее время в DIRECTUM, решить сложную (как мне казалось) задачу – отобразить навигацию работников средствами одной только обложки.
Задача решена не была – пришлось делать два сценария. Но в остальном – все получилось.
Спешу поделиться и самой обложкой и опытом.
Итак, вот результат:
Начнем с возникших проблем:
Не смотря на то, что у меня IE10, контрол, отображающий обложку, похоже, работает в режиме IE7. На этом этапе отвалилось все интересное – HTML5, CSS3 и JQuery 2. Ну да ладно.
Отладка неудобная и при исключениях в коде контрол валит весь SBRte. Эта проблема решилась контролем и перезапуском процесса из VS 2012.
Не решена проблема с работой в веб-доступе.
Теперь к реализации:
Страница должна, разумеется, работать локально. Главная задача – получать данные и получать их быстро, в том числе получать ссылки на картинки.
Сценарий GetEmployeeCacheFolder просто возвращает локальный путь к темп-папке обложки. Он нужен чтобы передать этот путь странице, для формирования ссылок на фотографии.
Сценарий GetEmployeeCache формирует JSON массив, с нужными данными по работникам. JSON проще формировать в ISBL, он компактнее XML и легче парсится в JQuery. Эти данные он и отдает на страницу. Иначе нельзя – страница не может обращаться к локальным файлам
из среды JavaScript.
Кэшем он называется неспроста – в самом начале объявлена константа, которая хранит кол-во часов жизни кэша. Т.е. мы обновляем кэш не каждый раз, а раз в день, например. Причина – производительность. Фотографии могут весить не мало, а они тоже обновляются.
Массив JSON хранится в темп-папке обложки и если время жизни не истекло, то он просто считывается из файла и отдается на страницу. Даже при тысячах записей – это доли секунды.
На странице есть «живой поиск». Записи группируются в подразделения.
Важно! Обратите внимание, что у меня есть нестандартные реквизиты: Город, Категория и Должность. Поэтому если вы просто импортируете обложку – у вас ничего не заработает. Надо для себя настраивать.
Не судите строго – код не оформлен, тестирование никакое, да и Balvenie влияет расслабляюще ).
На клабе уже поднимался вопрос о публикации разработок и решений. Я не большой оптимист на этот счет. Но вот может сообщество хоть такую обложку до ума доведет…
Вообще, конечно, ценность обложки невелика – она не заменит адресные книги почты и Lync, но приятным дополнением к справочнику работников вполне может быть.
Update: исправили две ошибки приводящие к нестабильной работе.
Я что-то подобное уже делал, решалось так:
Создается два JS файла, реализующих, так сказать один интерфейс прокси-провайдера (набор функций которые вызываются со страницы).
Один для работы с SBRTE, другой с сервисами ВД.
На страницу обложки добавляется код проверки контекста работы и подгрузка одного из двух JS.
И все работает вне зависимости от контекста.
П.С. И еще раз повторю, что веб-доступе лучше не вызывать сценарии билдера (если пользоваться будут очень часто), а постараться обойтись набором имеющихся сервисов (ну или свои написать).
/*Не решена проблема с работой в веб-доступе
Я что-то подобное уже делал, решалось так:
Создается два JS файла, реализующих, так сказать один интерфейс прокси-провайдера (набор функций которые вызываются со страницы).
Один для работы с SBRTE, другой с сервисами ВД.
На страницу обложки добавляется код проверки контекста работы и подгрузка одного из двух JS.
И все работает вне зависимости от контекста.
П.С. И еще раз повторю, что веб-доступе лучше не вызывать сценарии билдера (если пользоваться будут очень часто), а постараться обойтись набором имеющихся сервисов (ну или свои написать).
А приведенный скриншот не попадает под распространение персональных данных?
Что-то эта очевидная мысль не пришла мне в голову... Впрочем, жалоб не поступало, и на FB все телефоны публикуют. Но, конечно, я не прав.
Добрый день, а какие справочники должны лежать в этой папке?
Убрал вывод и обработку полей, которых у нас нет. Но при попытке открыть данную папку получаю ошибку "Ошибка!JS Invalid JSON: undefined"
Запоздалый коммент: можно же сформировать файл и подключить его через
Авторизуйтесь, чтобы написать комментарий