1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Решено Подтверждение удаления документов в dataview

Тема в разделе "Lotus - Xpages", создана пользователем victorhalf, 18 сен 2015.

  1. victorhalf

    victorhalf Well-Known Member

    Регистрация:
    29 май 2007
    Сообщения:
    64
    Симпатии:
    0
    День добрый
    Помогите реализовать сабж.
    Я использую датавью, кнопки на placeBarActions(из Applicationlayout), тип- basicLeafNode
    на onClick кнопки вешаю return Confirm("Delete?"), а в submitValue пишу deleteDocs,

    по идее должно спросить. и если нажал "ОК", то выполнить ssjs в моём кастом контроле с введенным submitValue.

    На деле получаю свой вопрос и что бы я не ответил мой ssjs даже не запускается(слушал дебагером).
    Если же очищаю onClick, то получаю молчаливое правильное выполнение ssjs.
    Очень хочется их совместить, а где проблема не пойму.
     
  2. lmike

    lmike нет, пердело совершенство
    Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    submit идет на сервер (если он вызван), а запрос на клиенте
    и где вызывается сам сабмит (где код?)
    короче, пример с сохранением:http://www.heapoverflow.me/question-how-to-disable-xpage-placebar-button-32402006
     
    #2 lmike, 18 сен 2015
    Последнее редактирование модератором: 18 сен 2015
  3. victorhalf

    victorhalf Well-Known Member

    Регистрация:
    29 май 2007
    Сообщения:
    64
    Симпатии:
    0
    Ух ты, еще и как то сабмит нужно вызывать рвучную? А как?
    Смотри, вот такая конструкция работает, без каких то доп. телодвижений. Но молча.
    Код (Javascript):
    <xe:basicLeafNode label="Видалити заявку"
    submitValue="viewDeleteSelected"></xe:basicLeafNode>
     
    плюс
     
    <xp:eventHandler event="onItemClick" submit="true" refreshMode="complete">
    <xp:this.action><![CDATA[#{javascript:
        var vSubmitValue = context.getSubmittedValue();
        if (vSubmitValue=="viewDeleteSelected"){код по удалению}
    </xp:this.action></xp:eventHandler>
     
    а если изменить так
    Код (Javascript):
    <xe:basicLeafNode label="Видалити заявку"
    submitValue="viewDeleteSelected">
    <xe:this.onClick><![CDATA[return confirm("Точно удалить?")]]></xe:this.onClick>
    </xe:basicLeafNode>
    то отработает конфирм, а эвент хендлер - нет
    или его как то можно дернуть принудительно из csjs?
     
  4. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    @victorhalf, в твоей логике на клике сначала отработает CSJS, а потом SSJS.
    Соответственно в CSJS надо получить confirm и сделать его доступным в SSJS: напр. через SubmittedValue.
    Записать чото в SubmittedValue на CSJS - это записать в поле с ID = "$$xspsubmitvalue" (на страничке оно есть всегда - это <input type="hidden" name="$$xspsubmitvalue">)
    Это один из десятка вариантов.
     
  5. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    стесняюсь спросить, а что мешает вызвать SSJS прямо из события OnClick там где confirm? SubmittedValue тут не нужен.
     
  6. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    :)А ничО не мешает - это будет 11 вариант. @victorhalf - у надо прояснить для себя, как ващще триггерят CSJS из SSJS. И наоборот. Человек учится.
     
  7. victorhalf

    victorhalf Well-Known Member

    Регистрация:
    29 май 2007
    Сообщения:
    64
    Симпатии:
    0
    Спасибо за советы
    Знал бы как - обязательно бы вызвал. А из того что я читал через сабмиттед валуэ чуть ли не единственный пОнятый мной способ дергать ssjs.

    пойду читать про "$$xspsubmitvalue",
    хотя всё равно не пойму, во втором моем варианте submitValue остается заполненным, а обработки эвент хендлера нет, значит его как то нужно принудительно вызывать?
    ну да ладно, почитаю авось проясниться :)
     
  8. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Как по мне - Remote Service легко и удобно
     
    #8 NickProstoNick, 21 сен 2015
    Последнее редактирование модератором: 21 сен 2015
  9. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    Когда на странице куча серверных скриптов, RPC рулит - удобно все методы собрать в одном месте. Если один сабмит - нафига оно надо. ИМХО.
     
  10. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    где один - там и второй.. и третий :)
     
  11. victorhalf

    victorhalf Well-Known Member

    Регистрация:
    29 май 2007
    Сообщения:
    64
    Симпатии:
    0
    нее, в эти тапки я пока не влажу:) мельком посмотрел - штука вроде удобная. может со временем...
    но пока подглядел что делает сам лотус
    Код (Javascript):
    <xe:basicLeafNode label="Видалити заявку">
    <xe:this.onClick><![CDATA[
    if (XSP.confirm("Точно удалить?")){
    XSP.setSubmitValue("viewDeleteSelected");
    XSP.fireEvent(arguments[0],"view:_id1:ccApp:_id5", "view:_id1:ccApp:applicationLayout1", null, true, 2, null)
    }]]></xe:this.onClick>
    </xe:basicLeafNode>
    Всем спасибо за советы
     
Загрузка...
Похожие Темы - Подтверждение удаления документов
  1. imendan
    Ответов:
    4
    Просмотров:
    1.402
  2. afest
    Ответов:
    4
    Просмотров:
    1.643

Поделиться этой страницей