2013-03-04 1 views
3

Привет, я использую Rails Admin, и мне нужно открыть произвольные модальные формы на определенных моделях. Чтобы сделать его простым, я хотел бы иметь ссылку, которая когда-то щелкнула, открывает модальную форму. Хотя это был вопрос того, какой класс и атрибут «data- *» установлен на ссылку, которая запускает модальную форму, но выглядит более сложной. Как это достичь? Я просматривал частичные представления и javascript в gem, чтобы попытаться понять, как эта функция достигается, например, от одного до многих отношений, но код немного выше моих знаний, и я не могу этого сделать. Thanksrails_admin произвольные открытые модальные формы

ответ

0

Я не думаю, что вы можете выполнить эту конфигурацию. Вам нужно будет продлить существующее действие.

+0

Это нормально, чтобы создать новое настраиваемое действие. Дело в том, как я могу связать это действие с открытием с помощью модального ui, доступного в rails_admin? – user1170896

0

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

https://github.com/sferik/rails_admin/blob/master/app/assets/javascripts/rails_admin/ra.remote-form.js

создать класс переплетены к действию открытия модели, но это не сработало. Поэтому я взял _bindModalOpening, _bindFormEvents и _getModal функционирует в моей базе кода.

1

Хотя виджет Rails Администратор remoteForm был построен для работы в форме, вы можете использовать его в другом месте, как это:

На ваш взгляд, внутри DIV, вставьте кнопку с внутренней связи РА в атрибуте data-link , например:

<div id="new-payment"> 
    <a href="#" data-link="<%= new_path(:payment, associations: {client: client.id}, modal: true) %>" class="create btn btn-info"> 
    New Payment 
    </a> 
</div> 

Обратите внимание, что ссылка имеет атрибут modal = true. Внешний новый div # новый платеж - это объект DOM, к которому будет применяться виджет.

Еще один важный совет состоит в том, что при обновлении существующего регистра кнопка должна иметь класс create, или update.

Теперь вы можете вызвать remoteForm виджет в вашем JavaScript (т.е. /app/assets/javascripts/rails_admin/custom/ui.js):

$(document).on('rails_admin.dom_ready', function() { 
    $('#new-payment').remoteForm({ 
    success: function(data, status, xhr) { 
     $.pjax.reload({container:"[data-pjax-container]"}); 
    } 
    }); 
}); 

В этом случае я везу преимущество pjax, и установление «успешного» обратного вызова, вызываемого после создания платежа, для перезагрузки содержимого страницы.