Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/61: Рейтинг темы: голосов - 61, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 127

Старый-старый Web

09.05.2012, 18:01. Показов 12004. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Стою на асфальте и лыжи не едут...

Столкнулся с необходимостью дописать старую библиотеку javascript. Но что-то не могу физически найти ее в дизайнере. На форме путь прописан
<script src=/Restr/SearchSprav_IE></script>. На сервере порылся в папках тоже не нашел.

Подскажите, где искать файл SearchSprav_IE? И каким образом скриптовые библиотеки подтягиваются на форму в вэбе?

Если не ошибаюсь, в xpages библиотеки содаются в дизайнере и потом подтягиваются, а это схемка не понятна.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2012, 18:01
Ответы с готовыми решениями:

Новые поля в доке, старый поля в доке ....
Всех с наступающим!!! Привет. Дело такое Есть форма в которой создаются новые поля, хотя в базе даких документов построеной по...

Новый сайт на старый домен или старый перекраивать ?
Пришел опытным путем к выводу, что один из сайтов надо тотально переделывать. Адреса страниц должны быть в другом виде не...

старый ПК
У друга есть старый компьютер intel core 2 duo 1.9 GHz 2gb DDR3 блок питания 800 Ват он купил он купил видеокарту Asus PCI-Ex GeForce GTX...

12
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
09.05.2012, 20:39
<notesdata>/domino/html - базовый путь для веба

Добавлено: а ваще никто не отменял поиск файлов ;):
-никсы locate -i <часть имени>
-винда dir /s *<часть имени>*.*
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
09.05.2012, 23:27
скорее всего это тупо пейдж ;)

Добавлено: хотя вру ;)
учитывая путь /Restr/SearchSprav_IE
значит ищите вид Restr в нём должен светиться документ с ключом SearchSprav_IE
это обычный док

что характерно для сайта-конструктора под лотус
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 127
10.05.2012, 11:46
а если путь /Restr/Restr_IO.nsf/SearchSprav_IE?

Получается что берет из базы и искать все же стоит через дизайнер?
Может кто-то занимался более ранними разработками под вэб и знает как библиотеки javascript подгружаются к форме?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
10.05.2012, 12:37
первый слэш указывает на корень сайта...
и сразу идет имя скрипта , после первого имени
Т.о. - если нет редайректов для сайта - то читаем мой первый пост

Добавлено:


Цитата Сообщение от doka
а если путь /Restr/Restr_IO.nsf/SearchSprav_IE?

Получается что берет из базы и искать все же стоит через дизайнер?
Может кто-то занимался более ранними разработками под вэб и знает как библиотеки javascript подгружаются к форме?
если такой путь - берёт из базы, но опять - могут быть редайректы

Добавлено: в дополнение, могут быть определены:
-форма с таким именем
-вьюшка, а для неё темплэйт форма
-пэдж
... м.б. др. эелементы
при выводе этих элементов - тоже возможны "фокусы" с перенаправлением
возможен и агент (но тут не помню про ограничения, при вызове)
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 127
10.05.2012, 13:36
не, редиректов нет.

А сам принцип разъяните пожалуйста. Вот я в script libraries создал библиотеку с типом javascript, как она подгружается к форме? Просто в дизайнере нет элемента с именем или алиасом SearchSprav_IE, но есть библиотека "Web SearchSprav_IE" с типом javascript. Я понимаю что код берется оттуда, но не догоняю как.
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
10.05.2012, 14:12
посмотри в дизайнере в поле $TITLE алиасы у этой js либы.
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 127
10.05.2012, 16:11
;) гр...ный 8.5.3! ;)

Вопрос снят, всем спасибо за участие
0
0 / 0 / 0
Регистрация: 26.06.2006
Сообщений: 143
13.05.2012, 13:49
При работе с классическими веб приложениями на Лотусе (когда используются формы и агенты WeQueryOpen/WebQuerySave) иногда необходимо выяснить где (в каких формах, сабформах) используется какая-нибудь JavaScriptовая библиотека или функция из этой библиотеки.

Если библиотека вставлена в форму/сабформу как ресурс в onLoad/JS Header (или если в эти элементы вставлен JavaScript код), то стандартный поиск по базе ничего не найдет и помогает толька выгрузка всех элементов дизайна с помощью DXL, раскодирование данных в <rawitemdata> из Base64 и последующий поиск по содержимому файлов.

Вот код агента, экпортирующий элементы дизайна:


Код (C++):
import lotus.domino.*;
import java.io.*;
import sun.misc.BASE64Decoder;

public class JavaAgent extends AgentBase {

private final String exportDir = "c:\\dxl\\";
private final String serverName = "your_server_name";
private final String databaseName = "path_to_your_db";

private final boolean includeAcl = true;
private final boolean includeActions = true;
private final boolean includeAgents = true;
private final boolean includeDbScript = true;
private final boolean includeDocuments = true;
private final boolean includeFolders = true;
private final boolean includeForms = true;
private final boolean includeFramesets = true;
private final boolean includeHelpAbout = true;
private final boolean includeHelpIndex = true;
private final boolean includeHelpUsing = true;
private final boolean includeIcon = true;
private final boolean includeImageResources = true;
private final boolean includeJavaResources = true;
private final boolean includeMiscCode = true;
private final boolean includeMiscFormatElements = true;
private final boolean includeMiscIndexElements = true;
private final boolean includeNavigators = true;
private final boolean includeOutlines = true;
private final boolean includePages = true;
private final boolean includeProfiles = true;
private final boolean includeReplicationFormulas = true;
private final boolean includeSharedFields = true;
private final boolean includeStyleSheetResources = true;
private final boolean includeSubforms = true;
private final boolean includeScriptLibraries = true;
private final boolean includeViews = true;

private final String ELEMENT_TYPE_ACL = "Acl";
private final String ELEMENT_TYPE_ACTION = "Actions";
private final String ELEMENT_TYPE_AGENT = "Agents";
private final String ELEMENT_TYPE_DB_SCRIPT = "DatabaseScript";
private final String ELEMENT_TYPE_DOCUMENT = "Documents";
private final String ELEMENT_TYPE_FOLDER = "Folders";
private final String ELEMENT_TYPE_FORM = "Forms";
private final String ELEMENT_TYPE_FRAMESET = "Framsets";
private final String ELEMENT_TYPE_HELP_ABOUT = "HelpAbout";
private final String ELEMENT_TYPE_HELP_INDEX = "HelpIndex";
private final String ELEMENT_TYPE_HELP_USING = "HelpUsing";
private final String ELEMENT_TYPE_ICON = "Icon";
private final String ELEMENT_TYPE_IMAGE_RESOURCE = "ImageResources";
private final String ELEMENT_TYPE_JAVA_RESOURCE = "JavaResources";
private final String ELEMENT_TYPE_MISC_CODE = "MiscCode";
private final String ELEMENT_TYPE_MISC_FORMAT = "MiscFormat";
private final String ELEMENT_TYPE_MISC_INDEX = "MiscIndex";
private final String ELEMENT_TYPE_NAVIGATOR = "Navigator";
private final String ELEMENT_TYPE_OUTLINE = "Outlines";
private final String ELEMENT_TYPE_PAGE = "Pages";
private final String ELEMENT_TYPE_PROFILE = "Profiles";
private final String ELEMENT_TYPE_REP_FORMULA = "ReplicationFormulas";
private final String ELEMENT_TYPE_SHARED_FIELD = "SharedFields";
private final String ELEMENT_TYPE_STYLESHEET = "StyleSheets";
private final String ELEMENT_TYPE_SUBFORM = "Subforms";
private final String ELEMENT_TYPE_SCRIPT_LIBRARY = "ScriptLibraries";
private final String ELEMENT_TYPE_VIEW = "Views";

private Session session;
private Database db;
private DxlExporter exporter;

public void NotesMain() {

try {
session = getSession();
db = session.getDatabase(serverName, databaseName);
if (db == null) {
System.out.println("Cant open remote database");
return;
}

exporter = session.createDxlExporter();
exporter.setForceNoteFormat(true);

if (includeAcl) exportDesignElements(ELEMENT_TYPE_ACL);
if (includeActions) exportDesignElements(ELEMENT_TYPE_ACTION );
if (includeAgents) exportDesignElements(ELEMENT_TYPE_AGENT) ;
if (includeDbScript) exportDesignElements(ELEMENT_TYPE_DB_SCR IPT);
if (includeDocuments) exportDesignElements(ELEMENT_TYPE_DOCUME NT);
if (includeFolders) exportDesignElements(ELEMENT_TYPE_FOLDER );
if (includeForms) exportDesignElements(ELEMENT_TYPE_FORM);
if (includeFramesets) exportDesignElements(ELEMENT_TYPE_FRAMES ET);
if (includeHelpAbout) exportDesignElements(ELEMENT_TYPE_HELP_A BOUT);
if (includeHelpIndex) exportDesignElements(ELEMENT_TYPE_HELP_I NDEX);
if (includeHelpUsing) exportDesignElements(ELEMENT_TYPE_HELP_U SING);
if (includeIcon) exportDesignElements(ELEMENT_TYPE_ICON);
if (includeImageResources) exportDesignElements(ELEMENT_TYPE_IMAGE_ RESOURCE);
if (includeJavaResources) exportDesignElements(ELEMENT_TYPE_JAVA_R ESOURCE);
if (includeMiscCode) exportDesignElements(ELEMENT_TYPE_MISC_C ODE);
if (includeMiscFormatElements) exportDesignElements(ELEMENT_TYPE_MISC_F ORMAT);
if (includeMiscIndexElements) exportDesignElements(ELEMENT_TYPE_MISC_I NDEX);
if (includeNavigators) exportDesignElements(ELEMENT_TYPE_NAVIGA TOR);
if (includeOutlines) exportDesignElements(ELEMENT_TYPE_OUTLIN E);
if (includePages) exportDesignElements(ELEMENT_TYPE_PAGE);
if (includeProfiles) exportDesignElements(ELEMENT_TYPE_PROFIL E);
if (includeReplicationFormulas) exportDesignElements(ELEMENT_TYPE_REP_FO RMULA);
if (includeSharedFields) exportDesignElements(ELEMENT_TYPE_SHARED _FIELD);
if (includeStyleSheetResources) exportDesignElements(ELEMENT_TYPE_STYLES HEET);
if (includeScriptLibraries) exportDesignElements(ELEMENT_TYPE_SCRIPT _LIBRARY);
if (includeSubforms) exportDesignElements(ELEMENT_TYPE_SUBFOR M);
if (includeViews) exportDesignElements(ELEMENT_TYPE_VIEW);

} catch(Exception e) {
e.printStackTrace();
}
}

// main export stub
public void exportDesignElements(String designElementType)
{
NoteCollection nc = null;

try {
nc = db.createNoteCollection(false);
if (designElementType == ELEMENT_TYPE_ACL) nc.setSelectAcl(true);
if (designElementType == ELEMENT_TYPE_ACTION) nc.setSelectActions(true);
if (designElementType == ELEMENT_TYPE_AGENT) nc.setSelectAgents(true);
if (designElementType == ELEMENT_TYPE_DB_SCRIPT) nc.setSelectDatabaseScript(true);
if (designElementType == ELEMENT_TYPE_DOCUMENT) nc.setSelectDocuments(true);
if (designElementType == ELEMENT_TYPE_FOLDER) nc.setSelectFolders(true);
if (designElementType == ELEMENT_TYPE_FORM) nc.setSelectForms(true);
if (designElementType == ELEMENT_TYPE_FRAMESET) nc.setSelectFramesets(true);
if (designElementType == ELEMENT_TYPE_HELP_ABOUT) nc.setSelectHelpAbout(true);
if (designElementType == ELEMENT_TYPE_HELP_INDEX) nc.setSelectHelpIndex(true);
if (designElementType == ELEMENT_TYPE_HELP_USING) nc.setSelectHelpUsing(true);
if (designElementType == ELEMENT_TYPE_ICON) nc.setSelectIcon(true);
if (designElementType == ELEMENT_TYPE_IMAGE_RESOURCE) nc.setSelectImageResources(true);
if (designElementType == ELEMENT_TYPE_JAVA_RESOURCE) nc.setSelectJavaResources(true);
if (designElementType == ELEMENT_TYPE_MISC_CODE) nc.setSelectMiscCodeElements(true);
if (designElementType == ELEMENT_TYPE_MISC_FORMAT) nc.setSelectMiscFormatElements(true);
if (designElementType == ELEMENT_TYPE_MISC_INDEX) nc.setSelectMiscIndexElements(true);
if (designElementType == ELEMENT_TYPE_NAVIGATOR) nc.setSelectNavigators(true);
if (designElementType == ELEMENT_TYPE_OUTLINE) nc.setSelectOutlines(true);
if (designElementType == ELEMENT_TYPE_PAGE) nc.setSelectPages(true);
if (designElementType == ELEMENT_TYPE_PROFILE) nc.setSelectProfiles(true);
if (designElementType == ELEMENT_TYPE_REP_FORMULA) nc.setSelectReplicationFormulas(true);
if (designElementType == ELEMENT_TYPE_SHARED_FIELD) nc.setSelectSharedFields(true);
if (designElementType == ELEMENT_TYPE_STYLESHEET) nc.setSelectStylesheetResources(true);
if (designElementType == ELEMENT_TYPE_SCRIPT_LIBRARY) nc.setSelectScriptLibraries(true);
if (designElementType == ELEMENT_TYPE_SUBFORM) nc.setSelectSubforms(true);
if (designElementType == ELEMENT_TYPE_VIEW) nc.setSelectViews(true);
nc.buildCollection();

int nDesignElements = nc.getCount();
System.out.println("Exporting " + designElementType + " (" + nDesignElements + " element(s))...");

int nNote = 1;
String noteId = nc.getFirstNoteID();
while (nNote <= nDesignElements)
{
System.out.print("Processing doc " + nNote + " of " + nDesignElements + " (NoteId: " + noteId + ")... ");

Document noteDoc = db.getDocumentByID(noteId);
if (noteDoc != null) {
String designElementName = getDesignElementName(noteDoc);
String originalFile = exportDir + "original\\" + designElementType + "\\" + designElementName + ".xml";
String decodedFile = exportDir + "decoded\\" + designElementType + "\\" + designElementName + ".txt";
String dxlData = exporter.exportDxl(noteDoc);
String decodedDxlData = decodeRawItemData(dxlData);
exportDataToFile(originalFile, dxlData);
exportDataToFile(decodedFile, decodedDxlData);
System.out.println("Done");
} else {
System.out.println("ERROR: Cant get document with NoteID " + noteId);
}
noteDoc.recycle();
nNote++;
noteId = nc.getNextNoteID(noteId);
}
nc.recycle();
} catch(Exception e) {
e.printStackTrace();
}
}

// finds and decodes text between <rawitemdata ...> and </rawitemdata>
public String decodeRawItemData(String fileContents)
{
int startPos = 0;

try {
while (fileContents.indexOf("<rawitemdata", startPos) != -1)
{
int rawItem_Start = fileContents.indexOf("<rawitemdata", startPos);
int encodedData_Start = fileContents.indexOf(">", rawItem_Start) + 1;
int encodedData_End = fileContents.indexOf("</rawitemdata", encodedData_Start);

String rawData = fileContents.substring(encodedData_Start , encodedData_End);

BASE64Decoder decoder = new BASE64Decoder();
byte[] bDecodedData = decoder.decodeBuffer(rawData);
String strDecodedData = new String(bDecodedData);

String strStart = fileContents.substring(0, encodedData_Start);
String strEnd = fileContents.substring(encodedData_End);
fileContents = strStart + strDecodedData + strEnd;

startPos = rawItem_Start + 1;
}
} catch (IOException e) {
e.printStackTrace();
}

return fileContents;
}

// create file name from title or documents UNID
public String getDesignElementName(Document noteDoc)
{
String elementName = "";

try {
if (noteDoc.hasItem("$Title")) {
// if title is available - use it as file name
elementName = noteDoc.getItemValueString("$Title");
// replace characters disallowed in file name
elementName = elementName.replaceAll("[\\\\|\\/:\"*?<>+|\n\r\t\f\0]", "");
} else {
// if title is unavailable - use UNID
elementName = noteDoc.getUniversalID();
}
} catch (NotesException e) {
e.printStackTrace();
}

return elementName;
}

// save data to file
public int exportDataToFile(String pathToFile, String dataToExport)
{
createDirectories(pathToFile);

int nWrittenBytes = 0;
Stream stream;

try {
stream = session.createStream();
if (stream.open(pathToFile)) {
stream.truncate();
nWrittenBytes = stream.writeText(dataToExport);
stream.close();
stream.recycle();
if (nWrittenBytes == 0) {
System.out.println("ERRROR: Zero bytes were written to file");
}
} else {
System.out.println("ERROR: Cant create file " + pathToFile);
}
} catch (NotesException e) {
e.printStackTrace();
}

return nWrittenBytes;
}

public void createDirectories(String pathToDir)
{
// get full path without file name
int lastSlashPos = pathToDir.lastIndexOf("\\");
if (lastSlashPos != -1)
{
String dirPath = pathToDir.substring(0, lastSlashPos);
File file = new File(dirPath);
if (!file.exists()) {
boolean isCreated = new File(dirPath).mkdirs();
if (isCreated == false) {
System.out.println("ERROR: Cant create required directory: " + dirPath);
}
}
}
}
}

В начале агента задается:

1. Директория, куда выгружаются данные (exportDir)
2. Имя сервера (serverName)
3. Имя базы (databaseName)
4. Желаемые для выгрузки элементы дизайна (include... = true/false)
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
13.05.2012, 19:27
а просто ЛС скриптом не проще? ;)
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
14.05.2012, 12:17
Цитата Сообщение от ToxaRat
а просто ЛС скриптом не проще? ;)
неа ;) - не проще
base64 глюкавый, ф-ционал языка часто ограничен...
и путь вендора (в ком это веке) стал просматриваться - аппсервер подняли, код можно писать "один" (а не отдельно для каждого устройства отображения), js фрэймворк...
т.е. - LS терь тока для поддержки старых приложений и тех кто не хочет перестраиваться
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
14.05.2012, 19:18
Цитата Сообщение от lmike
неа - не проще
base64 глюкавый, ф-ционал языка часто ограничен...
и путь вендора (в ком это веке) стал просматриваться - аппсервер подняли, код можно писать "один" (а не отдельно для каждого устройства отображения), js фрэймворк...
т.е. - LS терь тока для поддержки старых приложений и тех кто не хочет перестраиваться
а разве в DXML документ аттачи выплёвывает не в base64?
смысл вообще декодировать?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.05.2012, 14:00
Цитата Сообщение от ToxaRat
а разве в DXML документ аттачи выплёвывает не в base64?
смысл вообще декодировать?
в том и дело что кодированный, а цель - получение сорца (в данном случае - скрипта)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2012, 14:00
Помогаю со студенческими работами здесь

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

Старый домен
Интересует такой вопрос - сегодня зарегил домен, который освобождался сегодняшним числом. В whois естественно стоит created - сегодняшнее...

Старый мост
Ночь... даже Луна не рискует показаться на звездном небе... темно... и только слабый свет единственного фонарика вырывает из темноты с...

Старый биос
Не могу разобраться со старым биосом Pentium III, 2003 год. Как выставить приоритет загрузки с загрузочного диска?

Старый компьютер
На складе нашел старый компьютер. Проверил его подключив к сети, он загружается и работает нормально, но многие свойства disabled by system...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru