From 38de860670ec06f23a57bc0e91497fdbc382acb1 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Thu, 4 Sep 2014 13:55:49 +0900 Subject: [PATCH] Make the "Controllers" field read-only. --- .../stylesheets/application.css.scss.erb | 4 ++++ app/helpers/agent_helper.rb | 22 ++++++++++++++----- app/views/agents/_form.html.erb | 16 +++++--------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/app/assets/stylesheets/application.css.scss.erb b/app/assets/stylesheets/application.css.scss.erb index 0e28bf53..4daa1c15 100644 --- a/app/assets/stylesheets/application.css.scss.erb +++ b/app/assets/stylesheets/application.css.scss.erb @@ -60,6 +60,10 @@ img.odin { display: none; } +.controller-region[data-has-controllers=false] { + display: none; +} + img.spinner { display: none; vertical-align: bottom; diff --git a/app/helpers/agent_helper.rb b/app/helpers/agent_helper.rb index 80f9c3af..b994922d 100644 --- a/app/helpers/agent_helper.rb +++ b/app/helpers/agent_helper.rb @@ -19,10 +19,22 @@ module AgentHelper def agent_schedule(agent, delimiter = ', ') return 'n/a' unless agent.can_be_scheduled? - controllers = agent.controllers - [ - *(CGI.escape_html(agent.schedule.humanize.titleize) unless agent.schedule == 'never' && agent.controllers.length > 0), - *controllers.map { |agent| link_to(agent.name, agent_path(agent)) }, - ].join(delimiter).html_safe + case agent.schedule + when nil, 'never' + agent_controllers(agent, delimiter) || 'Never' + else + [ + agent.schedule.humanize.titleize, + *(agent_controllers(agent, delimiter)) + ].join(delimiter).html_safe + end + end + + def agent_controllers(agent, delimiter = ', ') + unless agent.controllers.empty? + agent.controllers.map { |agent| + link_to(agent.name, agent_path(agent)) + }.join(delimiter).html_safe + end end end diff --git a/app/views/agents/_form.html.erb b/app/views/agents/_form.html.erb index 93ab4a40..5e5a548e 100644 --- a/app/views/agents/_form.html.erb +++ b/app/views/agents/_form.html.erb @@ -44,16 +44,12 @@ -
-
-
- <%= f.label :controllers %> - - <% eventControllers = current_user.agents.select(&:can_control_other_agents?) %> - <%= f.select(:controller_ids, - options_for_select(eventControllers.map {|s| [s.name, s.id] }, - @agent.controller_ids), - {}, { multiple: true, size: 5, class: 'select2 form-control' }) %> +
+
+ <%= f.label :controllers %> + +
+ <%= agent_controllers(@agent) || 'None' %>