seminar/custom_announcement/app/views/custom_announcements/custom_widget_data.html.erb

41 lines
2.0 KiB
Plaintext
Raw Normal View History

<% active_module = @custom_data_field[:bind_module_app] rescue nil %>
<% active_uid = @custom_data_field[:bind_uid] rescue nil %>
2021-07-02 09:34:26 +00:00
<% active_module = @custom_configs.first.module rescue nil if active_module.nil? %>
<% if @custom_configs.length != 0 %>
<div class="control-group input-content">
<label class="control-label muted" for="custom_bind_module_app"><%=t("custom_announcement.use_module")%> :</label>
<div class="controls">
<%= select_tag("#{@field_name}[custom_data_field][bind_module_app]", options_for_select(@custom_configs.map{|c| [t("module_name.#{c.module}"),c.module]},active_module),{:id=>"custom_bind_module_app"})%>
</div>
</div>
<div class="control-group input-content">
<label class="control-label muted" for="custom_bind_uid"><%=t("custom_announcement.use_content")%> :</label>
<div class="controls">
<% @custom_configs.each do |c| %>
<% title_field = c.title_field
uid_field = c.uid_field
bind_model = c.bind_model.constantize rescue nil
%>
<% if bind_model %>
<div class="<%=(c.module == active_module) ? "show bind_modules" : "hide bind_modules" %>" data-module="<%= c.module %>">
<%= select_tag("#{@field_name}[custom_data_field][bind_uid]", options_for_select(bind_model.where(title_field.to_sym.nin=>[nil,""]).map{|target_model| [target_model.send(title_field),target_model.send(uid_field)]},active_uid),{:id=>"custom_bind_uid"})%>
</div>
<% end %>
<% end %>
2021-07-02 09:34:26 +00:00
</div>
</div>
<script type="text/javascript">
if($(".bind_modules.hide").length != 0){
$(".bind_modules.hide").eq(-1).after($(".bind_modules.show"));
}
2021-07-02 09:34:26 +00:00
$("#custom_bind_module_app").change(function(){
var value = $(this).val();
console.log(value)
$(".bind_modules").removeClass("show").addClass("hide");
$("[data-module=\""+value+"\"]").removeClass("hide").addClass("show");
if($(".bind_modules.hide").length != 0){
$(".bind_modules.hide").eq(-1).after($(".bind_modules.show"));
}
})
</script>
<% end %>