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

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

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

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

Проблема Получить значения полей из dijit.Dialog

Ficoos

Lotus Team
15.03.2016
136
2
BIT
114
Всем доброго дня. Недавно стал заниматься xPage и наткнулся на задачу начальства.
В общем застрял на изъятии значений полей из диалогового окна. Где я ошибся или не тем путем пошел? Код мини-странички прилагается без первых строк исходника:
Код:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoTheme="true">
    <xp:this.resources>

        <xp:dojoModule name="dijit.Dialog"></xp:dojoModule>
    </xp:this.resources>
    <xp:panel id="dialog1" dojoType="dijit.Dialog">
        <xp:this.dojoAttributes>
            <xp:dojoAttribute name="Title" value="Запрос новых данных"></xp:dojoAttribute>
        </xp:this.dojoAttributes>
        <xp:table>
            <xp:tr>
                <xp:td>

                    Придумайте &#160;&#160;Login
                </xp:td>
                <xp:td>
                    <xp:inputText id="inputNewlogin" value="#{viewScope.T_Login}"></xp:inputText>
                </xp:td>
            </xp:tr>
            <xp:tr>
                <xp:td>Придумайте пароль&#160;</xp:td>
                <xp:td>
                    <xp:inputText id="inputNewpass" value="#{viewScope.T_Pass}"></xp:inputText>
                </xp:td>
            </xp:tr>
        </xp:table>
        <xp:button id="button1" value="Ок">
            <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
                <xp:this.action><![CDATA[#{javascript:var inputFamilienmitglied:com.ibm.xsp.component.xp.XspComputedText = getComponent("computedLogin");
var inputTerst:com.ibm.xsp.component.xp.XspComputedText = getComponent("computedPass");


inputFamilienmitglied.setValue(viewScope.get("T_Login"));
inputTerst.setValue(viewScope.get("T_Pass"));}]]></xp:this.action>
            </xp:eventHandler></xp:button>
        <xp:br></xp:br>
        <xp:br></xp:br>
    </xp:panel>
    <xp:br></xp:br>
    <xp:button value="Запрос новых Логина и пароля" id="button2">
        <xp:eventHandler event="onclick" submit="false">
            <xp:this.script><![CDATA[dijit.byId("#{id:dialog1}").show()]]></xp:this.script>
        </xp:eventHandler>
    </xp:button>
    <xp:table>
        <xp:tr>
            <xp:td>Ваш новый Логин&#160;</xp:td>
            <xp:td>
                <xp:text escape="true" id="computedLogin"></xp:text>
            </xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td>Ваш новый пароль</xp:td>
            <xp:td>
                <xp:text escape="true" id="computedPass"></xp:text>
            </xp:td>
        </xp:tr>
    </xp:table>
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
@Ficoos непонятно аккаунт ведь создается на сервере...
отправляем запрос аяксом, получаем ответ от сервиса (custom JSON), отображаем клиенту
запроса аякса и
авторизации
 
Последнее редактирование:

Ficoos

Lotus Team
15.03.2016
136
2
BIT
114
@Ficoos непонятно аккаунт ведь создается на сервере...
отправляем запрос аяксом, получаем ответ от сервиса (custom JSON), отображаем клиенту
запроса аякса
авторизации

Это не для системного акаунта, а для работы в СЭД. Аккаунт в Лотусе еще не значит, что пользователю можно работать в СЭД.
И пользователь сам должен себе задать логин и секретный пароль и это все должно храниться в базе Лицензий пользователей.
Просто так надо.
А вот как выудить из диалога значения полей тут - никак не получается. Уже думаю открывать новую страницу с передачей значений полей и получение их в документ через "param.get(name)"
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
А вот как выудить из диалога значения полей тут - никак не получается
я изначально и пытаюсь понять - зачем их оттуда выуживать, ведь код работает на сервере - пусть сервер и выдаст ответ в аякс
и по ссылке есть получение значений из хэпаги (до отправки на сервер)
 

Ficoos

Lotus Team
15.03.2016
136
2
BIT
114
я изначально и пытаюсь понять - зачем их оттуда выуживать, ведь код работает на сервере - пусть сервер и выдаст ответ в аякс
и по ссылке есть получение значений из хэпаги (до отправки на сервер)
Повесил на кнопку обработчик:
Код:
var doc:NotesDocument = document1.getDocument(true)
var txt:string = getComponent("inputNewlogin").value
if (doc != null){
    doc.replaceItemValue("computedLogin", txt)
    doc.save(true, true)
}
выдает....txt = null
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
Повесил на кнопку обработчик:
яж говорю - не нужно получать компоненты в SSJS , достаточно повесить на кнопу CSJS с аяксом и парсить ответ от сервера
в вашем варианте гоняется java объект и синхронится, а это слишком дорогое "удовольствие"
 

Ficoos

Lotus Team
15.03.2016
136
2
BIT
114
яж говорю - не нужно получать компоненты в SSJS , достаточно повесить на кнопу CSJS с аяксом и парсить ответ от сервера
в вашем варианте гоняется java объект и синхронится, а это слишком дорогое "удовольствие"
Может я чего-то не понимаю...
Есть примерчик сего?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
216
Есть примерчик сего?
пример получения в CSJS - по ссылке выше
а дальше нужно описание задачи
костяк алгоритма:
- получаем поля в клиенте
- отправляем запрос на сервер (GET/POST) , это м.б. и агент выдающий принтами результат
- парсим ответ на предмет данных
- заполняем данные в клиенте через dojo
 
Мы в соцсетях:

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