• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Confirm Action

  • Автор темы Bob84
  • Дата начала
B

Bob84

Здравствуйте.
Не очень много работаю с Xpage, могу ошибатся в терминологии.

Есть приложение следующего вида: слева панель с меню навигации (список представлений), справа панель с представлениями и в ней же открываются документы для просмотра\редактирования. Задача такая - если открыли документ на создание\редактирование, то при клике на ссылку в меню навигации нужно выдать предупреждение "Хотите ли закрыть без сохранения?".
Сделано так: на событии клика каждой ссылки в Custom control nav (меню навигации) действие Confirm action с таким кодом

C++:
list = ["linkPage1.xsp", "linkPage2.xsp", ...];

pageName = @RightBack(context.getUrl(), "/");

if (@IsNotMember( pageName, list )){
try{		
if (document1.isNewNote() || document1.isEditable()) {
return "Хотите ли закрыть без сохранения?"
}
}catch(e){
}
}

Для одного пункта меню все работает.
Но для другого не работает вариант, когда документ открываем из представления на просмотр, потом переходим в режим редактирования и после этого переходим на любую из ссылок. Сравнение Xpage на котором все работает с проблемной ничего не дало.

Заранее спасибо.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
не работает в смысле выдает ошибку или не проходит проверку?
И еще вопрос - в ссылках меню точно есть контекст документа?
 
B

Bob84

Не проходит проверку. В ссылках контекста документа может и нет.

Пока решили проблему через сохранение в переменной viewScope.editMode влючен ли режим редактирования и в ConfirmAction производим соответствующую проверку. Если документ открывается в режиме просмотра, то переменную viewScope.editMode меняем при нажатии кнопки "Редактировать".
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!