Aucune description http://j1x-huginn.herokuapp.com

_form.html.erb 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <% load_ace_editor! %>
  2. <% if @agent.errors.any? %>
  3. <div class="row well model-errors">
  4. <h2><%= pluralize(@agent.errors.count, "error") %> prohibited this Agent from being saved:</h2>
  5. <% @agent.errors.full_messages.each do |msg| %>
  6. <p class='text-warning'><%= msg %></p>
  7. <% end %>
  8. </div>
  9. <% end %>
  10. <%= form_for(@agent,
  11. as: :agent,
  12. url: @agent.new_record? ? agents_path : agent_path(@agent),
  13. method: @agent.new_record? ? "POST" : "PUT",
  14. html: { class: 'agent-form' }) do |f| %>
  15. <%= hidden_field_tag :return, params[:return] %>
  16. <div class="row">
  17. <div class="col-md-6">
  18. <div class="row">
  19. <div class="col-md-12">
  20. <% if @agent.new_record? %>
  21. <div class="form-group type-select">
  22. <%= f.label :type %>
  23. <%= f.select :type, options_for_select([['Select an Agent Type', 'Agent', {title: ''}]] + Agent.types.map {|type| [type.name.gsub(/^.*::/, '').underscore.humanize.titleize, type, {title: h(Agent.build_for_type(type.name,current_user,{}).html_description.lines.first.strip)}] }, @agent.type), {}, :class => 'form-control' %>
  24. </div>
  25. <% end %>
  26. </div>
  27. <div class="agent-settings">
  28. <div class="col-md-12">
  29. <div class="form-group">
  30. <%= f.label :name %>
  31. <%= f.text_field :name, :class => 'form-control' %>
  32. </div>
  33. <div class='oauthable-form'>
  34. <%= render partial: 'oauth_dropdown', locals: { agent: @agent } %>
  35. </div>
  36. <div class="form-group">
  37. <%= f.label :schedule, :class => 'control-label' %>
  38. <div class="schedule-region" data-can-be-scheduled="<%= @agent.can_be_scheduled? %>">
  39. <div class="can-be-scheduled">
  40. <%= f.select :schedule, options_for_select(Agent::SCHEDULES.map {|s| [s.humanize.titleize, s] }, @agent.schedule), {}, :class => 'form-control' %>
  41. </div>
  42. <span class='cannot-be-scheduled text-info'>This type of Agent cannot be scheduled.</span>
  43. </div>
  44. </div>
  45. <div class="controller-region" data-has-controllers="<%= !@agent.controllers.empty? %>">
  46. <div class="form-group">
  47. <%= f.label :controllers %>
  48. <span class="glyphicon glyphicon-question-sign hover-help" data-content="Other than the system-defined schedule above, this agent may be run or controlled by these user-defined Agents."></span>
  49. <div class="controller-list">
  50. <%= agent_controllers(@agent) || 'None' %>
  51. </div>
  52. </div>
  53. </div>
  54. <div class="control-link-region" data-can-control-other-agents="<%= @agent.can_control_other_agents? %>">
  55. <div class="can-control-other-agents">
  56. <div class="form-group">
  57. <%= f.label :control_targets %>
  58. <% eventControlTargets = current_user.agents.select(&:can_be_scheduled?) %>
  59. <%= f.select(:control_target_ids,
  60. options_for_select(eventControlTargets.map {|s| [s.name, s.id] },
  61. @agent.control_target_ids),
  62. {}, { multiple: true, size: 5, class: 'select2 form-control' }) %>
  63. </div>
  64. </div>
  65. </div>
  66. <div class='event-related-region' data-can-create-events="<%= @agent.can_create_events? %>">
  67. <div class="form-group">
  68. <%= f.label :keep_events_for, "Keep events" %>
  69. <span class="glyphicon glyphicon-question-sign hover-help" data-content="In order to conserve disk space, you can choose to have events created by this Agent expire after a certain period of time. Make sure you keep them long enough to allow any subsequent Agents to make use of them."></span>
  70. <%= f.select :keep_events_for, options_for_select(Agent::EVENT_RETENTION_SCHEDULES, @agent.keep_events_for), {}, :class => 'form-control' %>
  71. </div>
  72. </div>
  73. <div class="form-group">
  74. <%= f.label :sources %>
  75. <div class="link-region" data-can-receive-events="<%= @agent.can_receive_events? %>">
  76. <% eventSources = (current_user.agents - [@agent]).find_all { |a| a.can_create_events? } %>
  77. <%= f.select(:source_ids,
  78. options_for_select(eventSources.map {|s| [s.name, s.id] },
  79. @agent.source_ids),
  80. {}, { :multiple => true, :size => 5, :class => 'select2 form-control' }) %>
  81. <span class='cannot-receive-events text-info'>This type of Agent cannot receive events.</span>
  82. <%= f.label :propagate_immediately, :class => 'propagate-immediately' do %>Propagate immediately
  83. <%= f.check_box :propagate_immediately %>
  84. <% end %>
  85. </div>
  86. </div>
  87. <% if current_user.scenario_count > 0 %>
  88. <div class="form-group">
  89. <%= f.label :scenarios %>
  90. <span class="glyphicon glyphicon-question-sign hover-help" data-content="Use Scenarios to group sets of Agents, both for organization, and to make them easy to export and share."></span>
  91. <%= f.select(:scenario_ids,
  92. options_for_select(current_user.scenarios.pluck(:name, :id), @agent.scenario_ids),
  93. {}, { :multiple => true, :size => 5, :class => 'select2 form-control' }) %>
  94. </div>
  95. <% end %>
  96. </div>
  97. <div class="col-md-12 agent-options">
  98. <%= render partial: 'options', locals: { agent: @agent } %>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="col-md-6">
  104. <div class="row">
  105. <div class="col-md-12">
  106. <div class='well description'>
  107. <%= @agent.html_description unless @agent.new_record? %>
  108. </div>
  109. </div>
  110. </div>
  111. <div class="row">
  112. <div class="col-md-12">
  113. <div class='well event-descriptions' style='display: none'></div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <% end %>