openstax_utilities 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/app/helpers/openstax/utilities/osu_helper.rb +1 -0
- data/app/views/osu/shared/_action_list.html.erb +37 -0
- data/lib/openstax/utilities/action_list.rb +40 -0
- data/lib/openstax/utilities/helpers/action_list.rb +13 -0
- data/lib/openstax/utilities/network.rb +9 -0
- data/lib/openstax/utilities/version.rb +1 -1
- data/lib/openstax_utilities.rb +3 -0
- metadata +8 -4
@@ -0,0 +1,37 @@
|
|
1
|
+
<%# Copyright 2011-2012 Rice University. Licensed under the Affero General Public
|
2
|
+
License version 3 or later. See the COPYRIGHT file for details. %>
|
3
|
+
|
4
|
+
<%
|
5
|
+
records ||= []
|
6
|
+
list = OpenStax::Utilities::ActionList.new(list)
|
7
|
+
%>
|
8
|
+
|
9
|
+
<% if list.num_columns > 0 %>
|
10
|
+
<table class="action-list" width="100%">
|
11
|
+
<% if list.has_headings? %>
|
12
|
+
<tr class="action-list-header-row">
|
13
|
+
<% for ii in 0..list.num_columns - 1 %>
|
14
|
+
<th class="action-list-col-<%= ii %>"><%= list.get_heading(ii) %></th>
|
15
|
+
<% end %>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% if records.empty? %>
|
20
|
+
<tr>
|
21
|
+
<td colspan="<%= list.num_columns %>">No results</td>
|
22
|
+
</tr>
|
23
|
+
<% else %>
|
24
|
+
<% records.all.each_with_index do |user, rr| %>
|
25
|
+
<tr class="action-list-data-row <%= cycle('even', 'odd') %>">
|
26
|
+
<% for cc in 0..list.num_columns - 1 %>
|
27
|
+
<% width = rr == 0 ? list.get_width(cc) : nil %>
|
28
|
+
<td class="action-list-col-<%= ii %>"
|
29
|
+
<%= "width=#{width}" if width %>>
|
30
|
+
<%= list.get_data(cc, user) %>
|
31
|
+
</td>
|
32
|
+
<% end %>
|
33
|
+
</tr>
|
34
|
+
<% end %>
|
35
|
+
<% end %>
|
36
|
+
</table>
|
37
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module OpenStax::Utilities
|
2
|
+
class ActionList
|
3
|
+
|
4
|
+
def initialize(options={})
|
5
|
+
@options = options
|
6
|
+
|
7
|
+
raise IllegalArgument, "must supply data procs" if options[:data_procs].nil?
|
8
|
+
|
9
|
+
if options[:headings].present? && options[:data_procs].size != options[:headings].size
|
10
|
+
raise IllegalArgument, "if you supply headings, you must supply one for each column"
|
11
|
+
end
|
12
|
+
|
13
|
+
if options[:widths].present? && options[:data_procs].size != options[:widths].size
|
14
|
+
raise IllegalArgument, "if you supply widths, you must supply one for each column"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def num_columns
|
20
|
+
@options[:data_procs].size
|
21
|
+
end
|
22
|
+
|
23
|
+
def has_headings?
|
24
|
+
@options[:headings].present?
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_heading(column)
|
28
|
+
@options[:headings].nil? ? nil : @options[:headings][column]
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_width(column)
|
32
|
+
@options[:widths].nil? ? nil : @options[:widths][column]
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_data(column, *args)
|
36
|
+
@options[:data_procs][column].call(*args)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Copyright 2011-2013 Rice University. Licensed under the Affero General Public
|
2
|
+
# License version 3 or later. See the COPYRIGHT file for details.
|
3
|
+
|
4
|
+
module OpenStax::Utilities::Helpers
|
5
|
+
module ActionList
|
6
|
+
|
7
|
+
def action_list(options={})
|
8
|
+
raise IllegalArgument if options[:records].nil? || options[:list].nil?
|
9
|
+
render(:partial => 'osu/shared/action_list', locals: options)
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
data/lib/openstax_utilities.rb
CHANGED
@@ -13,10 +13,13 @@ require "openstax/utilities/access"
|
|
13
13
|
require "openstax/utilities/enum"
|
14
14
|
require "openstax/utilities/ruby"
|
15
15
|
require "openstax/utilities/text"
|
16
|
+
require "openstax/utilities/network"
|
17
|
+
require "openstax/utilities/action_list"
|
16
18
|
|
17
19
|
require "openstax/utilities/classy_helper"
|
18
20
|
require "openstax/utilities/helpers/blocks"
|
19
21
|
require "openstax/utilities/helpers/partials"
|
22
|
+
require "openstax/utilities/helpers/action_list"
|
20
23
|
|
21
24
|
require 'openstax/utilities/blocks/block_base'
|
22
25
|
require 'openstax/utilities/blocks/section_block'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstax_utilities
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -53,11 +53,13 @@ files:
|
|
53
53
|
- app/assets/javascripts/openstax_utilities.js
|
54
54
|
- app/assets/stylesheets/openstax_utilities.css
|
55
55
|
- app/helpers/openstax/utilities/osu_helper.rb
|
56
|
+
- app/views/osu/shared/_action_list.html.erb
|
56
57
|
- app/views/osu/shared/_section.html.erb
|
57
58
|
- app/views/osu/shared/_table.html.erb
|
58
59
|
- app/views/osu/shared/_table_cell.html.erb
|
59
60
|
- app/views/osu/shared/_table_row.html.erb
|
60
61
|
- lib/openstax/utilities/access.rb
|
62
|
+
- lib/openstax/utilities/action_list.rb
|
61
63
|
- lib/openstax/utilities/blocks/block_base.rb
|
62
64
|
- lib/openstax/utilities/blocks/section_block.rb
|
63
65
|
- lib/openstax/utilities/blocks/table_block.rb
|
@@ -68,8 +70,10 @@ files:
|
|
68
70
|
- lib/openstax/utilities/engine.rb
|
69
71
|
- lib/openstax/utilities/enum.rb
|
70
72
|
- lib/openstax/utilities/exceptions.rb
|
73
|
+
- lib/openstax/utilities/helpers/action_list.rb
|
71
74
|
- lib/openstax/utilities/helpers/blocks.rb
|
72
75
|
- lib/openstax/utilities/helpers/partials.rb
|
76
|
+
- lib/openstax/utilities/network.rb
|
73
77
|
- lib/openstax/utilities/ruby.rb
|
74
78
|
- lib/openstax/utilities/settings.rb
|
75
79
|
- lib/openstax/utilities/text.rb
|
@@ -122,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
126
|
version: '0'
|
123
127
|
segments:
|
124
128
|
- 0
|
125
|
-
hash: -
|
129
|
+
hash: -237788097343637860
|
126
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
131
|
none: false
|
128
132
|
requirements:
|
@@ -131,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
135
|
version: '0'
|
132
136
|
segments:
|
133
137
|
- 0
|
134
|
-
hash: -
|
138
|
+
hash: -237788097343637860
|
135
139
|
requirements: []
|
136
140
|
rubyforge_project:
|
137
141
|
rubygems_version: 1.8.24
|