[webui] store repository for getting binary list
[opensuse:build-service.git] / src / webui / app / views / driver_update / create.html.erb
1 <% @pagetitle = "Driver Update Disk Wizard" %>
2
3 <% package_bread_crumb 'Edit Package Information' -%>
4 <%= render :partial => "package/tabs" %>
5
6 <% content_for :content_for_head do %>
7   <%= javascript_include_tag 'jquery.autocomplete.pack' %>
8   <%= stylesheet_link_tag 'jquery.autocomplete' %>
9 <% end %>
10
11 <% content_for :ready_function do %> 
12   $("#target_project").autocomplete('<%= url_for :controller => :project, :action => :autocomplete_projects %>',
13   { minChars: 2, matchCase: true, max: 50 } );
14
15   $('#target_project').result(function(event, data, formatted) {
16   if (data) {
17   $('#target_repo').html('');
18   $.ajax({ url: '<%= url_for :controller => :project, :action => :autocomplete_repositories %>',
19   data: {project: $("#target_project").attr('value')},
20   success: function(data){
21   $('#target_repo').removeAttr('disabled');
22   $.each(data.split('\n'), function(idx, val) {
23   $('#target_repo').append( new Option( val ) );
24   });
25   }});
26   }
27   });
28
29   $("#target_package").autocomplete('<%= url_for :controller => :project, :action => :autocomplete_packages %>', {
30   matchCase: true, max: 50, minChars: 0,
31   extraParams: {
32   project: function(){ return get_package_project(); }
33   }
34   });
35
36   $("#add_repo_toggle").click(function () {
37   $("#add_repository").show();
38   $("#add_repo_toggle").hide();
39   return false;
40   });
41
42
43   get_package_project = function() {
44   return $("#target_package_repo").val().split('/')[0].replace(/\s*/g, "");
45   }
46
47   get_package_repo = function() {
48   return $("#target_package_repo").val().split('/')[1].replace(/\s*/g, "");
49   }
50
51
52   remove_element = function(key) {
53   $("#" + key).remove();
54   return false;
55   }
56
57   create_repo_line = function() {
58   var project = $("#target_project").attr('value');
59   var repo = $("#target_repo").attr('value');
60   var key = (project + '_' + repo).replace(/[:\.]/g,'_');
61   var html = '<div id="' + key +'"><p><%= image_tag("project.png", :title => "Project") %> ' + project + ' / ' + repo;
62       var html = html + '<input type="hidden" name="projects[]" value="' + project + '/' + repo + '" />';
63       var html = html + ' <a href="#" onclick="remove_element(\'' + key + '\'); return false;"><%= image_tag("icons/drive_delete.png", :title => "Remove Repository") %></a></p></div>';
64   return html;
65   }
66
67   $("#add_repo").click(function () {
68   $("#no_inst_repos").hide();
69   $("#inst_repos").append( create_repo_line() );
70   $('#target_package_repo').append( new Option( $("#target_project").attr('value') + ' / ' + $("#target_repo").attr('value') ) );
71   $("#add_repository").hide();
72   $("#add_repo_toggle").show();
73   return false;
74   });
75
76   create_package_line = function() {
77   var package = $("#target_package").val();
78   var key = ('pack_' + package).replace(/[:\.]/g,'_');
79   var html = '<div id="' + key +'"><p><%= image_tag("package.png", :title => "Package") %> ' + package;
80       var html = html + '<input type="hidden" name="packages[]" value="' + package + '" />';
81       var html = html + ' <a href="#" onclick="remove_element(\'' + key + '\'); return false;"><%= image_tag("icons/package_delete.png", :title => "Remove Package") %></a></p></div>';
82   return html;
83   }
84
85   create_binary_packages_line = function() {
86   var package = $("#target_package").val();
87   var project = get_package_project();
88   var repo = get_package_repo();
89
90   $.ajax({ url: '<%= url_for :controller => :package, :action => :binaries %>?package=' + package + '&project=' + project + '&repository=' + repo,
91     data: {},
92     success: function(data){
93       //alert(data);
94     }
95   });
96
97   var key = ('pack_' + package).replace(/[:\.]/g,'_');
98   var html = '';
99   return html;
100   }
101
102   $("#add_package").click(function () {
103   if ($("#target_package").val() != '') {
104   $("#no_inst_packs").hide();
105   $("#inst_packs").append( create_package_line() );
106   $("#inst_packs").append( create_binary_packages_line() );
107   }
108   return false;
109   });
110
111
112 <% end -%>
113
114 <h2>Driver update disk wizard</h2>
115
116 <p>This editor helps to create the configuration for a <a href="http://en.opensuse.org/Libzypp/Products/DuD/Installation">driver update disk</a>.
117   It will store it's settings in the _service file which generates the full kiwi config on the build server or
118   your workstation when using osc.</p>
119
120
121 <% form_tag :controller => "driver_update", :action => "save" do %>
122
123
124   <h2>General Configuration:</h2>
125
126   <table>
127   <tr>
128     <td><strong>Name: </strong></td>
129    <td><%= text_field_tag 'name', @name, :size => 50 %></td>
130   </tr>
131
132   <tr>
133     <td><strong>Distname: </strong></td>
134     <td><%= text_field_tag 'distname', @distname, :size => 50 %></td>
135   </tr>
136
137   <tr>
138     <td><strong>Flavour: </strong></td>
139     <td><%= text_field_tag 'flavour', @flavour, :size => 50 %></td>
140   </tr>
141
142   <tr>
143     <td><strong>Architectures: </strong></td>
144     <td><% VISIBLE_ARCHITECTURES.each do |arch| %>
145       <%= check_box_tag "arch[#{arch}]", "", (DEFAULT_ENABLED_ARCHITECTURES.include? arch) %><%=arch%>
146     <% end %></td>
147   </tr>
148   </table>
149
150   <h2>Installation repositories:</h2>
151
152   <div id="inst_repos">
153     <% @repositories.each do |repo| %>
154       <% key = "#{repo[:project]}_#{repo[:repo]}".gsub(/[:\.]/, '_')  %>
155       <div id="<%= key %>"><p><%= image_tag("project.png", :title => "Project") %> <%= repo[:project] %> / <%= repo[:repo] %>
156           <input type="hidden" name="projects[]" value="<%= "#{repo[:project]}/#{repo[:repo]}" %>" />
157           <a href="#" onclick="remove_element('<%= key %>'); return false;"><%= image_tag("icons/drive_delete.png", :title => "Remove Repository") %></a></p></div>
158     <% end %>
159     <% if @repositories.blank? %>
160       <div id="no_inst_repos"><p><i>No installation repositories configured yet.</i></p></div>
161     <% end %>
162   </div>
163
164
165   <div id="add_repo_toggle"><p>
166       <%= image_tag("icons/drive_add.png", :title => "Add Repository") %>
167       <%= link_to 'Add repository', '#' %>
168     </p></div>
169
170   <div id="add_repository" class="show_left box show_right" style="display: none">
171     <p><strong>Project: </strong><%= text_field_tag 'target_project', '', :size => 60, :id => 'target_project' %> <i>(gets auto-completed)</i> </p>
172     <p><strong>Repository: </strong>
173       <%= select_tag "target_repo", "<option value=''>Select Repository</option>", :id => 'target_repo', :disabled => true %>
174     </p>
175     <div id="add_repo"><p>
176         <%= image_tag("icons/drive_add.png", :title => "Add Repository") %>
177         <%= link_to 'Add this repository', '#' %>
178       </p>
179     </div>
180   </div>
181
182
183   <h2>Packages: </h2>
184
185
186   <div id="inst_packs">
187     <% @packages.each do |pack| %>
188       <div id="pack_<%= pack[:name] %>"><p><%= image_tag("package.png", :title => "Package") %> <%= pack[:name] %> <i>(<%= pack[:type] %>)</i>
189           <input type="hidden" name="packages[]" value="<%= "#{pack[:name]}" %>" />
190           <a href="#" onclick="remove_element('pack_<%= pack[:name] %>'); return false;"><%= image_tag("icons/package_delete.png", :title => "Remove Package") %></a></p></div>
191     <% end %>
192     <% if @packages.blank? %>
193       <div id="no_inst_packs"><p><i>No packages selected for installation yet.</i></p></div>
194     <% end %>
195   </div>
196
197   <p><strong>Add package: </strong><br/>
198     <% default_projects = @repositories.map{|repo| "<option value='#{repo[:project]} / #{repo[:repo]}'>#{repo[:project]} / #{repo[:repo]}</option>"}.uniq %>
199     <%= select_tag "target_package_repo", "<option value=''>Select Project</option>" + default_projects.join(''), :id => 'target_package_repo' %>
200     Name:
201     <%= text_field_tag 'target_package', '', :size => 50, :id => 'target_package' %> <i>(gets auto-completed)</i> </p>
202   <div id="add_package"><p>
203       <%= image_tag("icons/package_add.png", :title => "Add Package") %>
204       <%= link_to 'Add this package', '#' %>
205     </p>
206   </div>
207
208
209   <p>
210     <%= submit_tag "Generate kiwi file" %>
211     <%= hidden_field_tag 'project', @project.name %>
212     <%= hidden_field_tag 'package', @package.name %>
213   </p>
214 <% end %>
215
216
217