/
_service_parameters.html.erb
116 lines (103 loc) · 5.08 KB
/
_service_parameters.html.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<div id="dialog_wrapper">
<%= javascript_tag do %>
$('#add_new_row').click(insertRow);
<% end %>
<div class="dialog" id="disable_mask"></div>
<div class="dialog darkgrey_box" id="service_paramaters">
<div class="box box-shadow">
<h2 class="box-header">Service Parameters <%= image_tag('ajax-loader.gif', :id => 'spinner_parameter_editor', :class => 'hidden') %></h2>
Source Service: <%= @servicename %><br>
<i><%= @servicedescription %></i>
<p><div class="aligncenter buttons">
<% if @package.can_edit?( session[:login] ) %>
<%= form_tag({:controller => "package", :action => "update_parameters"}, :method => "post") %>
<%= hidden_field_tag(:project, @project) %>
<%= hidden_field_tag(:package, @package) %>
<%= hidden_field_tag(:serviceid, @serviceid) %>
<%= hidden_field_tag(:servicename, @servicename) %>
<!-- FIXME: send source revision, so in-between changes can be detected -->
<% end %>
<table id="pTable">
<tr><td valign="top">Parameter</td><td>Value</td>
<% if @package.can_edit?( session[:login] ) %>
<td>Remove</td>
<% end %>
</tr>
<% number = 0 %>
<% used_parameter = {} %>
<% @parameters.each do |p|%>
<% number = number + 1 %>
<% used_parameter[p[:name]] = 1 %>
<% if @package.can_edit?( session[:login] ) %>
<tr class="row_<%=number%>">
<td
<%= if desc = Service.parameterDescription(@servicename, p[:name])
' title="' + CGI::escapeHTML(desc) + '"'
end %>
><%=p[:name]%>
</td>
<% @values=Service.findAvailableParameterValues(@servicename, p[:name]) %>
<td><%= render(:partial => 'service_parameter_value_selector', :locals => { :servicename => @servicename, :parameter => p[:name], :number => number, :value => p[:value] }) %></td>
<% unless definition = Service.findAvailableParameters(@servicename) and definition[p[:name]][:required] %>
<td><%= link_to_function 'X', "$('tr.row_#{number}').remove()"%></td>
<% end %>
</tr>
<% else %>
<tr><td><%=p[:name]%></td> <td><%=p[:value]%></td></tr>
<% end %>
<% end %>
<% if @package.can_edit?( session[:login] ) %>
<% Service.findAvailableParameters(@servicename).each do |parameter|%>
<% name=parameter[0] %>
<% p=parameter[1] %>
<% if p[:required] and not used_parameter[name] %>
<% number = number + 1 %>
<tr class="row_<%=number%>">
<td
<%= if desc = Service.parameterDescription(@servicename, name)
'title="' + CGI::escapeHTML(desc) + '"'
end %>
><%=name%>
<% @values=Service.findAvailableParameterValues(@servicename, name) %>
<td><%= render(:partial => 'service_parameter_value_selector', :locals => { :servicename => @servicename, :parameter => name, :number => number, :value => ""}) %></td>
<!-- not removable -->
</tr>
<% end %>
<% used_parameter[name] = 1 %>
<% end %>
<% end %>
<%= hidden_field_tag(:count_parameters, number) %>
<% if @package.can_edit?( session[:login] ) %>
<% list=[]
Service.findAvailableParameters(@servicename).keys.each do |p|
unless used_parameter[p[:name]] and not ( d = Service.findAvailableParameters(@servicename) and d[p[:name]][:allowmultiple] )
list += [p]
end
end %>
<% unless list.empty? %>
<tr class="addrow"><td>
<select name="add_parameter_name" id="add_new_parameter">
<% list.each do |str| %>
<option value="<%= str %>"><%= str %></option>
<% end %>
</select></td>
<td id="value_input_field"><input type="text" id="add_new_value" name="add_new_value"></td>
<td><a href="#" id="add_new_row">+</a></td>
</tr>
<% end %>
<% end %>
</table>
<% if @package.can_edit?( session[:login] ) %>
<input type="submit" />
</form>
<% end %>
</div></p>
<p><div class="aligncenter buttons">
<%= link_to_function 'Close', 'remove_dialog()'%>
</div></p>
</div>
</div></div>
<%= observe_field( :add_new_parameter, :frequency => 0.5, :update => :value_input_field,
:url => { :controller => 'package', :action => 'service_parameter_value', :project => @project, :package => @package, :servicename => @servicename},
:loading => "$('#spinner_parameter_editor').show();", :complete => "$('#spinner_parameter_editor').hide();",
:with => "'parameter=' + encodeURIComponent($('#add_new_parameter').attr('value')) + '&setid=add_new_value'") %>