Проверка настроек формы (уникальность имени приложения и формы)

#orbeon

#orbeon

Вопрос:

Из документации Orbeon:

Имя приложения.Каждое определение формы имеет имя приложения, которое идентифицирует группу форм, которые принадлежат друг другу. На практике имя приложения может соответствовать проекту, или отделу, или компании. Например, все формы, созданные Orbeon, имеют имя приложения «orbeon». ПРИМЕЧАНИЕ: В зависимости от ваших разрешений имя приложения может быть уже выбрано для вас, или у вас может быть выбор из ограниченного набора имен приложений.

Имя формы.Каждое определение формы также имеет имя формы, которое идентифицирует уникальное имя формы в конкретном приложении.

Поскольку API сохраняемости orbeon извлекает определения форм по их приложению и имени формы, я хотел бы добавить некоторую проверку на страницу настроек формы, которая не позволит пользователю сохранять секунду из определения с тем же именем приложения и формы, что и существующее.

(Мой первый подход заключался бы в том, чтобы поместить некоторый пользовательский ответ на уровень сохраняемости, но orbeon не может сделать разницу между общей ошибкой сохраняемости и ошибкой проверки, другими словами, обратное распространение ошибок уровня сохраняемости / api для пользователя, так сказать, не является зрелым.)

Итак, как мне это сделать?

Ответ №1:

Если я правильно понимаю, вы бы хотели, чтобы пользователям Form Builder было запрещено создавать новую форму с именем приложения / формы, которое уже используется. Пользователю можно либо запретить создавать эту форму, либо, по крайней мере, предложить возможность открытия существующей формы вместо создания новой с тем же именем приложения / формы.

Один из вопросов заключается в том, что в этом контексте означает «уже используется»: мы говорим о формах, редактируемых этим пользователем в конструкторе форм, или опубликованных формах? Возможно, конструктор форм должен проверять оба.

Эта проверка должна выполняться в 3 местах в конструкторе форм:

  1. При первоначальном создании формы (лучше предупредить пользователей как можно скорее).
  2. Когда пользователи открывают диалоговое окно настроек формы, чтобы переименовать форму.
  3. При сохранении (даже если мы уверены, что на момент создания формы не существовало формы с тем же приложением / именем, тем временем могла быть создана другая форма с тем же приложением / именем).

В ситуации номер один, если форма с тем же приложением / именем существует в конструкторе форм, конструктор форм должен предоставить пользователю возможность открыть эту форму вместо создания новой формы.

Таким образом, это функция, которая должна быть реализована на уровне конструктора форм; это не может быть сделано исключительно с помощью пользовательской реализации persistence API. Это покрывается запросом на улучшение # 818.

Комментарии:

1. Привет, спасибо за ваш ответ. Я хотел бы рассмотреть 2-ю ситуацию, поскольку я уже рассмотрел остальные: пользователи не могут импортировать или копировать существующую форму, определяя app и formname уже существующего определения формы. Так что эта часть — последняя, с которой я должен как-то справиться. Заранее спасибо.

2. Это имело бы смысл, но на самом деле это то, что необходимо реализовать в конструкторе форм. Вы используете Orbeon Forms CE или PE? Если Orbeon сформирует CE, у вас будет время и интерес для реализации этого на вашей стороне? -Алекс

3. Привет, Алекс, мы перешли на PE около 2-3 месяцев назад. Но если это не потребует слишком больших усилий, я хотел бы реализовать это, потому что у меня не слишком много времени для этой задачи. AFAIK существует xml-подобная структура, которая определяет эту форму, и, возможно, я мог бы поместить туда какой-нибудь пользовательский javascript, который вызывал бы что-то на моем уровне сохранения, по крайней мере, это был бы мой первый подход. Хм?

4. Реализация, вероятно, будет более сложной, чем вы думаете, особенно если вы еще не знакомы с технологиями, используемыми Orbeon Forms, такими как XForms, что не сулит ничего хорошего из-за «нехватки времени для выполнения задачи» ;). Кроме того, есть ли в вашей организации поддержка разработчиков с помощью Orbeon? Если это так, они могут спонсировать эту реализацию, используя эту поддержку разработчиков.

5. Я расскажу об этом завтра и спрошу об этом нужного парня, спасибо за идею. Хотя я чувствую силу, чтобы выполнить это с некоторыми рекомендациями 😉