@@ -0,0 +1,55 | |||||
|
1 | var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5); | |||
|
2 | ||||
|
3 | function addOption(theSel, theText, theValue) | |||
|
4 | { | |||
|
5 | var newOpt = new Option(theText, theValue); | |||
|
6 | var selLength = theSel.length; | |||
|
7 | theSel.options[selLength] = newOpt; | |||
|
8 | } | |||
|
9 | ||||
|
10 | function deleteOption(theSel, theIndex) | |||
|
11 | { | |||
|
12 | var selLength = theSel.length; | |||
|
13 | if(selLength>0) | |||
|
14 | { | |||
|
15 | theSel.options[theIndex] = null; | |||
|
16 | } | |||
|
17 | } | |||
|
18 | ||||
|
19 | function moveOptions(theSelFrom, theSelTo) | |||
|
20 | { | |||
|
21 | ||||
|
22 | var selLength = theSelFrom.length; | |||
|
23 | var selectedText = new Array(); | |||
|
24 | var selectedValues = new Array(); | |||
|
25 | var selectedCount = 0; | |||
|
26 | ||||
|
27 | var i; | |||
|
28 | ||||
|
29 | for(i=selLength-1; i>=0; i--) | |||
|
30 | { | |||
|
31 | if(theSelFrom.options[i].selected) | |||
|
32 | { | |||
|
33 | selectedText[selectedCount] = theSelFrom.options[i].text; | |||
|
34 | selectedValues[selectedCount] = theSelFrom.options[i].value; | |||
|
35 | deleteOption(theSelFrom, i); | |||
|
36 | selectedCount++; | |||
|
37 | } | |||
|
38 | } | |||
|
39 | ||||
|
40 | for(i=selectedCount-1; i>=0; i--) | |||
|
41 | { | |||
|
42 | addOption(theSelTo, selectedText[i], selectedValues[i]); | |||
|
43 | } | |||
|
44 | ||||
|
45 | if(NS4) history.go(0); | |||
|
46 | } | |||
|
47 | ||||
|
48 | function selectAllOptions(id) | |||
|
49 | { | |||
|
50 | var select = $(id); | |||
|
51 | for (var i=0; i<select.options.length; i++) { | |||
|
52 | select.options[i].selected = true; | |||
|
53 | } | |||
|
54 | } | |||
|
55 |
@@ -46,7 +46,7 class IssuesController < ApplicationController | |||||
46 | @issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement) |
|
46 | @issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement) | |
47 | @issue_pages = Paginator.new self, @issue_count, 25, params['page'] |
|
47 | @issue_pages = Paginator.new self, @issue_count, 25, params['page'] | |
48 | @issues = Issue.find :all, :order => sort_clause, |
|
48 | @issues = Issue.find :all, :order => sort_clause, | |
49 | :include => [ :assigned_to, :status, :tracker, :project, :priority ], |
|
49 | :include => [ :assigned_to, :status, :tracker, :project, :priority, :category ], | |
50 | :conditions => @query.statement, |
|
50 | :conditions => @query.statement, | |
51 | :limit => @issue_pages.items_per_page, |
|
51 | :limit => @issue_pages.items_per_page, | |
52 | :offset => @issue_pages.current.offset |
|
52 | :offset => @issue_pages.current.offset |
@@ -250,7 +250,7 class ProjectsController < ApplicationController | |||||
250 | @issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement) |
|
250 | @issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement) | |
251 | @issue_pages = Paginator.new self, @issue_count, @results_per_page, params['page'] |
|
251 | @issue_pages = Paginator.new self, @issue_count, @results_per_page, params['page'] | |
252 | @issues = Issue.find :all, :order => sort_clause, |
|
252 | @issues = Issue.find :all, :order => sort_clause, | |
253 | :include => [ :assigned_to, :status, :tracker, :project, :priority ], |
|
253 | :include => [ :assigned_to, :status, :tracker, :project, :priority, :category ], | |
254 | :conditions => @query.statement, |
|
254 | :conditions => @query.statement, | |
255 | :limit => @issue_pages.items_per_page, |
|
255 | :limit => @issue_pages.items_per_page, | |
256 | :offset => @issue_pages.current.offset |
|
256 | :offset => @issue_pages.current.offset |
@@ -211,7 +211,8 class Query < ActiveRecord::Base | |||||
211 | if has_default_columns? |
|
211 | if has_default_columns? | |
212 | available_columns.select {|c| c.default? } |
|
212 | available_columns.select {|c| c.default? } | |
213 | else |
|
213 | else | |
214 | available_columns.select {|c| column_names.include?(c.name) } |
|
214 | # preserve the column_names order | |
|
215 | column_names.collect {|name| available_columns.find {|col| col.name == name}}.compact | |||
215 | end |
|
216 | end | |
216 | end |
|
217 | end | |
217 |
|
218 |
@@ -1,7 +1,27 | |||||
1 | <% content_tag 'fieldset', :id => 'columns', :style => (query.has_default_columns? ? 'display:none;' : nil) do %> |
|
1 | <% content_tag 'fieldset', :id => 'columns', :style => (query.has_default_columns? ? 'display:none;' : nil) do %> | |
2 | <legend><%= l(:field_column_names) %></legend> |
|
2 | <legend><%= l(:field_column_names) %></legend> | |
3 | <% query.available_columns.each do |column| %> |
|
3 | ||
4 | <label><%= check_box_tag 'query[column_names][]', column.name, query.has_column?(column) %> <%= l("field_#{column.name}") %></label><br /> |
|
|||
5 | <% end %> |
|
|||
6 | <%= hidden_field_tag 'query[column_names][]', '' %> |
|
4 | <%= hidden_field_tag 'query[column_names][]', '' %> | |
|
5 | <table margin=0> | |||
|
6 | <tr> | |||
|
7 | <td><%= select_tag 'available_columns', | |||
|
8 | options_for_select((query.available_columns - query.columns).collect {|column| [l("field_#{column.name}"), column.name]}), | |||
|
9 | :multiple => true, :size => 10, :style => "width:150px" %> | |||
|
10 | </td> | |||
|
11 | <td align="center" valign="middle"> | |||
|
12 | <input type="button" value="-->" | |||
|
13 | onclick="moveOptions(this.form.available_columns, this.form.selected_columns);" /><br /> | |||
|
14 | <input type="button" value="<--" | |||
|
15 | onclick="moveOptions(this.form.selected_columns, this.form.available_columns);" /> | |||
|
16 | </td> | |||
|
17 | <td><%= select_tag 'query[column_names][]', | |||
|
18 | options_for_select(@query.columns.collect {|column| [l("field_#{column.name}"), column.name]}), | |||
|
19 | :id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px" %> | |||
|
20 | </td> | |||
|
21 | </tr> | |||
|
22 | </table> | |||
|
23 | <% end %> | |||
|
24 | ||||
|
25 | <% content_for :header_tags do %> | |||
|
26 | <%= javascript_include_tag 'select_list_move' %> | |||
7 | <% end %> |
|
27 | <% end %> |
@@ -12,9 +12,9 | |||||
12 |
|
12 | |||
13 | <p><label for="query_default_columns"><%=l(:label_default_columns)%></label> |
|
13 | <p><label for="query_default_columns"><%=l(:label_default_columns)%></label> | |
14 | <%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns', |
|
14 | <%= check_box_tag 'default_columns', 1, @query.has_default_columns?, :id => 'query_default_columns', | |
15 |
:onc |
|
15 | :onclick => 'if (this.checked) {Element.hide("columns")} else {Element.show("columns")}' %></p> | |
16 | </div> |
|
16 | </div> | |
17 |
|
17 | |||
18 | <%= render :partial => 'queries/columns', :locals => {:query => query}%> |
|
|||
19 | <%= render :partial => 'queries/filters', :locals => {:query => query}%> |
|
18 | <%= render :partial => 'queries/filters', :locals => {:query => query}%> | |
|
19 | <%= render :partial => 'queries/columns', :locals => {:query => query}%> | |||
20 | </div> |
|
20 | </div> |
@@ -1,6 +1,6 | |||||
1 | <h2><%= l(:label_query) %></h2> |
|
1 | <h2><%= l(:label_query) %></h2> | |
2 |
|
2 | |||
3 | <% form_tag({:action => 'edit', :id => @query}) do %> |
|
3 | <% form_tag({:action => 'edit', :id => @query}, :onsubmit => 'selectAllOptions("selected_columns");') do %> | |
4 | <%= render :partial => 'form', :locals => {:query => @query} %> |
|
4 | <%= render :partial => 'form', :locals => {:query => @query} %> | |
5 | <%= submit_tag l(:button_save) %> |
|
5 | <%= submit_tag l(:button_save) %> | |
6 | <% end %> |
|
6 | <% end %> |
@@ -1,6 +1,6 | |||||
1 | <h2><%= l(:label_query_new) %></h2> |
|
1 | <h2><%= l(:label_query_new) %></h2> | |
2 |
|
2 | |||
3 | <% form_tag({:action => 'new', :project_id => @query.project}) do %> |
|
3 | <% form_tag({:action => 'new', :project_id => @query.project}, :onsubmit => 'selectAllOptions("selected_columns");') do %> | |
4 | <%= render :partial => 'form', :locals => {:query => @query} %> |
|
4 | <%= render :partial => 'form', :locals => {:query => @query} %> | |
5 | <%= submit_tag l(:button_save) %> |
|
5 | <%= submit_tag l(:button_save) %> | |
6 | <% end %> |
|
6 | <% end %> |
General Comments 0
You need to be logged in to leave comments.
Login now