[webui] remove trace of old tooltips
[opensuse:build-service.git] / src / webui / app / views / request / show.html.erb
1 <% @pagetitle = "Request ##{@id}" %>
2
3 <%= javascript_include_tag 'jquery.tablesorter.js' %>
4
5 <% content_for :head_javascript do %>
6
7   function insertRow() {
8     var type = document.getElementById('add_review_type').value;
9     var value = document.getElementById('add_review_name').value;
10     var comment = document.getElementById('add_review_comment').value;
11     var id = "id_"+type+"_"+value
12     var path = "/request/addreviewer/<%=@id%>?comment="+encodeURIComponent(comment)+"&"
13     if (type == "User") {
14       path = path + "user="+encodeURIComponent(value)
15     } else {
16       path = path + "group="+encodeURIComponent(value)
17     }
18
19     $('#pTable tr:last').before('<tr>'+
20       '<td>'+type+'</td>'+
21       '<td>'+value+'</td>'+
22       '<td>'+comment+'</td>'+
23       '<td id="'+id+'">adding...</td>'+
24       '</tr>');
25     $.ajax({type: "POST", url: path, success: function(data){$("#pTable td#"+id).text(data)} })
26   }
27
28   function modifyReview(group, new_state, field_id) {
29     var path = "/request/modifyreviewer/<%=@id%>?new_state="+encodeURIComponent(new_state)
30     var comment
31     if (group != "") {
32       path = path + "&group="+encodeURIComponent(group)
33       comment = document.getElementById('review_comment_'+group).value;
34     } else {
35       comment = document.getElementById('review_comment').value;
36     }
37     path = path + "&comment=" + encodeURIComponent(comment);
38
39     $.ajax({type: "POST", url: path, success: function(data){$("#pTable td#"+field_id).text(data)} })
40     $("#pTable td#comment_"+field_id).text(comment)
41   }
42
43 <% end %>
44
45 <%
46 req = @therequest
47 @crumb_list = [
48   link_to( 'Requests', :controller => :home, :action => :list_requests),
49   "Request #{h @id}"
50 ]
51 -%>
52
53 <% if req.state.name == "review" %>
54 <h2>Review of Request #<%=h @id%></h2>
55 <% else %>
56 <h2>Request #<%=h @id%></h2>
57 <% end %>
58
59 <% content_for :content_for_head do %>
60   <%= stylesheet_link_tag "SyntaxHighlighter" %>
61   <%= javascript_include_tag 'syntax/shCore', 'syntax/shBrushDiff' %>
62 <% end %>
63 <% content_for :ready_function do %>
64   dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
65   dp.SyntaxHighlighter.HighlightAll('code');
66 <% end %>
67
68
69 <table class='request_table'>
70   <thead>
71     <tr>
72       <th>ID</th>
73       <th>State</th>
74       <th>Requester</th>
75       <th>Type</th>
76       <th>Source</th>
77       <th>Target</th>
78     </tr>
79   </thead>
80   <tbody>
81       <%  if req.has_element? :action
82           actions = req.each_action
83           length = actions.length
84       else
85           actions = [req.submit]
86           length = 1
87       end
88       if req.has_element? :history
89          creator = req.each_history.last.who
90       else
91          creator = req.state.who
92       end
93       first = true %>
94       <% req.each_action do |action| %>
95         <tr>
96           <% if first %>
97              <td rowspan="<%= length %>"><%= req.value :id %></td>
98              <td rowspan="<%= length %>"><%= req.state.name %></td>
99              <td rowspan="<%= length %>"><%= link_to creator, :controller => :project, :action => "show", :project => "home:"+creator %></td>
100              <% first = nil %>
101           <% end %>
102           <td>
103             <% if req.has_element? :action %>
104               <%= action.data.attributes["type"] %>
105             <% else %>
106               submit
107             <% end -%>
108           </td>
109           <td>
110             <%= if action.has_element? :source
111               package_link(action.source.project, action.source.value(:package))
112             end -%>
113           </td>
114           <td>
115             <%= if action.has_element? :target
116               package = action.target.value(:package)
117               package_link(action.target.project, package) if package
118             end -%>
119           </td>
120         </tr>
121       <% end -%>
122     <tr>
123       <td colspan="6"><%= format_comment(req.value('description')) %></td>
124     </tr>
125   </tbody>
126 </table>
127
128 <% if @newpackage.length > 0 %>
129   <h3>
130     New package will be added:
131     <% @newpackage.each do |p| %>
132       <%=  link_to( p[:package], :controller => :package, :action => :show, :project => p[:project], :package => p[:package]) %>
133     <% end %>
134   </h3>
135 <% end %>
136
137 <% if @diff_text %>
138   <pre id="code" class="patch">
139     <%= h @diff_text %>
140   </pre>
141 <% end %>
142
143 <% if !["accepted", "declined", "revoked", "superseded"].include?(@state) && (@is_reviewer || @is_maintainer || @is_author) %>
144   <p/>
145   <div class="section">
146     <% form_tag :action => "changerequest" do %>
147       <div>
148         <% if !@diff_error && (@is_maintainer || @is_reviewer || @is_author || req.each_review.length > 0) %>
149           <!-- handle existing reviews -->
150           <table id="pTable">
151           <tr><th colspan="4">Reviews</th></tr>
152           <tr><th></th><th valign="top">Owner</th><th>Comment</th><th>State</th></tr>
153           <% req.each_review do |r|%>
154             <%- comment=nil
155                 comment=r.comment if r.has_element? :comment %>
156             <tr>
157             <% if r.has_attribute? :by_user %>
158               <td>User</td> <td><%=r.by_user%></td>
159               <% if @is_reviewer and req.state.name == "review" and r.state.to_s == "new" and r.by_user.to_s == @user.login.to_s %>
160                 <td id="comment_user_<%=r.by_user%>"><%=text_area_tag "review_comment", comment, :size => "50x2" %></td>
161                 <td id="user_<%=r.by_user%>">
162                   <%= button_to_function "Approve", :onclick => "modifyReview(\"\", \"accepted\", \"user_#{r.by_user}\")" %>
163                   <%= button_to_function "Reject", :onclick => "modifyReview(\"\", \"declined\", \"user_#{r.by_user}\")" %>
164               </td>
165               <% else %>
166                 <td><%= comment%></td>
167                 <td><%= r.state %></td>
168               <% end %>
169             <%end%>
170
171             <% if r.has_attribute? :by_group %>
172               <td>Group</td> <td><%=r.by_group%></td>
173               <% if @is_reviewer and req.state.name == "review" and r.state.to_s == "new" and @user.is_in_group? r.by_group %>
174                 <td id="comment_group_<%=r.by_group%>"><%=text_area_tag "review_comment_#{r.by_group}", comment, :size => "50x2" %></td>
175                 <td id="group_<%=r.by_group%>">
176                   <%= button_to_function "Approve", :onclick => "modifyReview(\"#{r.by_group}\", \"accepted\", \"group_#{r.by_group}\")" %>
177                   <%= button_to_function "Reject", :onclick => "modifyReview(\"#{r.by_group}\", \"declined\", \"group_#{r.by_group}\")" %>
178                 </td>
179               <% else %>
180                 <td><%= comment%></td>
181                 <td><%= r.state %></td>
182               <% end %>
183             <%end%>
184             </tr>
185           <%end%>
186
187           <!-- add another review -->
188           <% if !@diff_error && (req.state.name == "review" || req.state.name == "new") %>
189             <% if @is_maintainer || @is_reviewer || @is_author %>
190               <tr class="add_reviewer">
191                 <td><%=select_tag "add_review_type", "<option>User</option> <option>Group</option>" %></td>
192                 <td><%=text_field_tag "add_review_name" %></td>
193                 <td><%=text_area_tag "add_review_comment", nil, :size => "50x2" %></td>
194                 <td><%=button_to_function "Add Reviewer" do |r|
195                          r.call :insertRow
196                        end %></td>
197               </tr>
198             <% end %>
199           <% end %>
200           </table>
201         <% end %>
202
203         <!-- handle the request itself -->
204         <%= hidden_field_tag( "id", @id) %>
205         <% if @is_maintainer %>
206           <p>
207             <strong>Reason:</strong>
208             <%= text_field_tag :reason, '' , :size => 80 %><br/>
209           </p>
210           <% linked = @target_pkg.linked_to if @target_pkg -%>
211           <% if !@diff_error -%>
212             <% if linked and not linked.empty? and @therequest.action.data["type"] == "submit" -%>
213               <%= hidden_field_tag( "forward_project", linked[0]) %>
214               <%= hidden_field_tag( "forward_package", linked[1]) %>
215               <%= submit_tag "Forward to %s" % linked, :name => 'forward' %>
216             <% end -%>
217             <% if req.state.name.to_s == "review" %>
218               <%= submit_tag "Accept", :name => 'accepted', :confirm => "Do you really wan't to approve this request, despite of open review requests ?" %>
219             <% else %>
220               <%= submit_tag "Accept", :name => 'accepted' %>
221             <% end %>
222           <% end %>
223           <%= submit_tag "Decline", :name => 'declined' %>
224         <% elsif @is_author %>
225           <p>
226             <strong>Reason:</strong>
227             <%= text_field_tag :reason, '' , :size => 80 %><br/>
228           </p>
229           <%= submit_tag "Revoke", :name => 'revoked' %>
230         <% end %>
231       </div>
232     <% end %>
233   </div>
234
235 <% end %>
236