Rally App SDK 2.0: Создайте средство поиска, но не редактируемое средство rallytagpicker

Я считаю, что rallytagpicker, безусловно, полезный компонент. Однако я не вижу ни одного поля конфигурации, которое позволило бы мне запретить пользователям создавать новые теги, сохраняя при этом функцию поиска. Есть такой конфиг? Или это необходимый компромисс между функциональностью?


person user1417835    schedule 12.06.2012    source источник


Ответы (3)


Лучшее решение, чем мой предыдущий взлом:

Ext.create('Ext.Container', {
     items: [{
         xtype: 'rallymultiobjectpicker',
         modelType: 'tag'
     }],
     renderTo: Ext.getBody().dom
 });

or

Ext.create('Rally.ui.picker.MultiObjectPicker', {
    modelType: 'tag'
});

Это даст вам средство выбора тегов с возможностью поиска без возможности добавления.

person ben.rally    schedule 14.06.2012
comment
Здорово! Конечно, разумнее использовать компонент, созданный специально для тегов. Я могу использовать это вместо rallytagpicker + hack, так как для этого конкретного компонента есть уведомление / подсказка, в которой говорится: «Введите, чтобы добавить тег». Есть ли способ скрыть это? - person user1417835; 15.06.2012
comment
Я нашел ответ на свой вопрос выше. ^ Вам нужно будет указать listCfg следующим образом --- listCfg: {emptyText: ''} Я не уверен, что идея о том, что он позволяет вам напрямую вводить HTML, как это было сделано для представить, что уведомление div, может вызвать какие-либо проблемы ... Однако, чтобы было ясно, это, вероятно, лучший путь, чем попытка взломать rallytagpicker, поскольку этот компонент фактически расширяет rallymultiobjectpicker. Я также обнаружил, что rallymultiobjectpicker загружается быстрее. - person user1417835; 15.06.2012

Я не думаю, что в настоящее время система разрешений различает назначение тегов и создание тегов.

person limscoder    schedule 12.06.2012
comment
Я не совсем уверен, что вы подразумеваете под назначением и созданием. Я хочу, чтобы это поле было доступным для поиска, но не было приглашения для прямого создания тега, когда поисковый запрос еще не существует в виде тега. - person user1417835; 13.06.2012
comment
Я понимаю. Тогда нет никакого способа обойти это. Будет ли предложена такая опция в будущем? Или, может быть, вы можете помочь мне в поиске реализации этого самостоятельно? - person user1417835; 14.06.2012

Вот обходной путь, который работал в коде TagPicker. редактора в API, переопределив приватный метод _showAddNew как пустую функцию.

Ext.create('Ext.Container', {
     items: [{
         xtype: 'rallytagpicker',
         autoExpand: true,
         toolTipConfig: null,
         _showAddNew: Ext.emptyFn
     }],
     renderTo: Ext.getBody().dom
 });

Он также удаляет всплывающую подсказку, которая отображается, когда пользователь нажимает на поле поиска.

person ben.rally    schedule 14.06.2012
comment
Спасибо за совет! Если бы это было выставлено для модификации, это было бы здорово! Однако это работает только в редакторе кода и недоступно для перезаписи во внешнем коде. Это кажется противоречащим утверждению Чарльза о том, что было бы трудно подавить эту особенность. Просто должно быть поле конфигурации, которое позволяет установить логическое значение относительно того, должен ли обработчик событий вызывать эту функцию. - person user1417835; 14.06.2012
comment
Он будет работать и вне редактора кода, либо создавая экземпляр таким же образом (используя имя xtype), либо выполняя Ext.create('Rally.ui.picker.TagPicker, { _showAddNew: Ext.emptyFn, toolTipConfig: null } . - person ben.rally; 14.06.2012
comment
нуб комментирует. Вот полный комментарий: он будет работать и вне редактора кода, либо создавая экземпляр таким же образом (используя имя xtype), либо выполняя Ext.create('Rally.ui.picker.TagPicker, { _showAddNew: Ext.emptyFn , toolTipConfig: null }); Я тот, кто сказал Чарльзу, что это будет сложно, но потом я посмотрел еще раз. И я согласен, мы могли бы добавить еще одно логическое значение в конфиг, которое мы могли бы проверить перед вызовом _showAddNew. - person ben.rally; 14.06.2012
comment
В мою защиту Бен сказал мне, что это будет трудно подавить. :) Теперь я буду удалять любые доказательства моей ошибки. - person Charles Ferentchak; 14.06.2012
comment
Я беру на себя полную ответственность за то, что не изучила это достаточно глубоко, прежде чем поговорить с Чарльзом... но я не могу гарантировать, что это не повторится. - person ben.rally; 14.06.2012
comment
Ух ты. Обсуждение взорвалось с тех пор, как я в последний раз заглядывал сюда, а. Спасибо за разъяснения. я рад, что есть больше внутренних разработчиков, помогающих ответить на вопрос. Что касается кода, который вы представили, я клянусь, что этот небольшой хак не работал раньше, когда я его пробовал. Если вы не изменили SDK только для того, чтобы открыть его, довольно странно, что теперь он работает. Я должен буду проверить это немного больше. - person user1417835; 15.06.2012