XPages: один шаблон, две модели памяти? - PullRequest
0 голосов
/ 18 марта 2019

Я бы хотел сохранить один основной шаблон для нашего приложения XPages, хотя и с двумя различными моделями памяти и свойствами.Модель шаблона разработки (master) должна быть на диске, без JS-оптимизации и без dojo-сжатия.Модель в производном шаблоне, которая будет использоваться в клиентских приложениях, мы настраиваем как в памяти, так и в оптимизированном JS и в сжатом dojo.

Когда параметры конфигурации устанавливаются по-разному в каждом шаблоне, а затем обновляется дизайн производного шаблона, оба шаблона оказываются идентичными (что может показаться логичным).Что я имею в виду: невозможно запретить обновление настроек XSP, как это можно сделать для других элементов.

Но даже если бы была такая возможность, это не сработало бы, потому что все должнобыть перекомпилированным ("чистым"), иначе сжатые JS и css не будут сгенерированы должным образом.Я не нашел способа запустить компиляцию по производному шаблону автоматически.

Или есть способ?

Спасибо!

1 Ответ

0 голосов
/ 18 марта 2019

Контроль источника и ветвление должны быть правильным способом обработки: https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.0/com.ibm.designer.domino.ui.doc/wpd_srcecontrol_top.html

Старомодным способом было бы "разветвлять" ваши шаблоны. Главный шаблон для вашей разработки XSP, а второй шаблон наследуется от первого. Во втором шаблоне установите свойство "Запретить обновление дизайна или ..." для элемента дизайна XSP.properties. Затем измените его содержимое в соответствии с вашими потребностями.

Вот история

Когда-то давно команда разработчиков работала над несколькими базами данных, некоторые из них были помечены как шаблоны для дальнейшего развертывания в производство. Один разработчик хотел повторно использовать некоторые элементы из другой базы данных - шаблона. Скопировал и вставил их в другую базу данных. Дизайнер запросил: «Хотите унаследовать дизайн от шаблона ...?». Эм нет. Поэтому дизайнер не пометил элемент дизайна именем шаблона, что нормально. Кроме того, дизайнер устанавливает флаг «Запретить обновление дизайна ...». Никто не заметил, до дня релиза! Новое приложение ведет себя странно, некоторые части обновлены, некоторые нет. Было довольно легко обнаружить установленный флаг «Запретить ...» и исправить его. Но странность продолжается. И угадай что? Этот флаг был установлен для элементов, не имеющих такого флажка в графическом интерфейсе дизайнера (в данном случае исходники Java).

Что сработало

Создание специального представления с отображением элементов дизайна http://www -10.lotus.com / ldd / ddwiki.nsf / dx / view-of-design-elements.htm .

Создать еще один столбец, показывающий, какие элементы запрещено обновлять. Установите «Отображать значения в виде значка».

"Prohibit design refresh or replace to modify";
@If( @Contains( $Flags; "P" ); 80; 0 ) : @If( @Contains( $Flags; "r" ); 204; 0 )

Создайте действие просмотра, работающее с выбранными документами (ss.CurrentDatabase.UnprocessedDocuments для отмеченных, uiv.CaretNoteID и GetDocumentByID только для выделенных), и вызовите этот код для сброса флага.

Sub Prohibit(note As NotesDocument)
    On Error Goto errHandler

    Dim flags As String
    Dim flagsNew As String
    flags = note.GetItemValue( "$Flags" )(0)
    flagsNew = Replace( flags, "P", "" )
    If flags <> flagsNew Then
        note.ReplaceItemValue "$Flags", flagsNew
        note.Save True, False
    End If

    Exit Sub

errHandler:
    Print "Error on " & note.UniversalID & " (" & note.GetItemValue( "$Title" )(0) & ")"
    Exit Sub

End Sub

Отказ от ответственности: в некоторых случаях это нарушает подпись элемента - исправляет принудительный знак всей базы данных.

Примечание : этот запрос о наследовании - он устанавливает флаг "Запретить ...", если вы отвечаете Нет при копировании из шаблона TO в шаблон - даже если это та же база данных !

Заключение

Итак, в вашем случае сделайте обратное - просто установите флаг, добавив "P" к $Flags полю XSP.properties файла. Кстати, его поле $TITLE равно "WEB-INF/xsp.properties".

Наслаждайтесь!

...