toolbox 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. data/Rakefile +57 -0
  2. data/lib/dirs.rb +9 -0
  3. data/lib/toolbox/config.rb +211 -0
  4. data/lib/toolbox/default_controller.rb +393 -0
  5. data/lib/toolbox/helpers.rb +11 -0
  6. data/lib/toolbox/rendering.rb +413 -0
  7. data/lib/toolbox/searching.rb +85 -0
  8. data/lib/toolbox/session_params.rb +63 -0
  9. data/lib/toolbox/sorting.rb +74 -0
  10. data/lib/toolbox/version.rb +4 -0
  11. data/lib/toolbox.rb +29 -0
  12. data/locale/de/LC_MESSAGES/toolbox.mo +0 -0
  13. data/public/images/add.png +0 -0
  14. data/public/images/arrow_down.gif +0 -0
  15. data/public/images/arrow_up.gif +0 -0
  16. data/public/images/close.png +0 -0
  17. data/public/images/edit.gif +0 -0
  18. data/public/images/email.png +0 -0
  19. data/public/images/page.png +0 -0
  20. data/public/images/page_acrobat.png +0 -0
  21. data/public/images/page_add.png +0 -0
  22. data/public/images/page_copy.png +0 -0
  23. data/public/images/page_delete.png +0 -0
  24. data/public/images/page_edit.png +0 -0
  25. data/public/images/page_excel.png +0 -0
  26. data/public/images/page_list.png +0 -0
  27. data/public/images/page_save.png +0 -0
  28. data/public/images/page_word.png +0 -0
  29. data/public/images/remove.png +0 -0
  30. data/public/images/show.gif +0 -0
  31. data/public/images/spinner.gif +0 -0
  32. data/public/javascripts/popup.js +498 -0
  33. data/public/javascripts/toolbox.js +18 -0
  34. data/public/stylesheets/context_menu.css +168 -0
  35. data/public/stylesheets/popup.css +30 -0
  36. data/public/stylesheets/toolbox.css +107 -0
  37. data/view/toolbox/_collection.html.erb +24 -0
  38. data/view/toolbox/_collection_header.html.erb +7 -0
  39. data/view/toolbox/_context_menu.html.erb +17 -0
  40. data/view/toolbox/_dialogs.html.erb +6 -0
  41. data/view/toolbox/_form.html.erb +30 -0
  42. data/view/toolbox/_form_collection_row.html.erb +18 -0
  43. data/view/toolbox/_form_fieldset.html.erb +30 -0
  44. data/view/toolbox/_form_fieldset_row.html.erb +19 -0
  45. data/view/toolbox/_list.html.erb +25 -0
  46. data/view/toolbox/_list_row.html.erb +10 -0
  47. data/view/toolbox/_menu.html.erb +7 -0
  48. data/view/toolbox/_search_field.html.erb +8 -0
  49. data/view/toolbox/_show.html.erb +12 -0
  50. data/view/toolbox/_show_collection_row.html.erb +6 -0
  51. data/view/toolbox/_show_fieldset.html.erb +21 -0
  52. data/view/toolbox/edit.html.erb +5 -0
  53. data/view/toolbox/index.html.erb +3 -0
  54. data/view/toolbox/new.html.erb +9 -0
  55. data/view/toolbox/show.html.erb +39 -0
  56. metadata +178 -0
@@ -0,0 +1,30 @@
1
+ /*
2
+ popup.js
3
+ */
4
+ div.popup {
5
+ max-width: 600px;
6
+ border: 1px solid red;
7
+ padding: 5px;
8
+ background-color: white;
9
+ /* The following properties should not be changed */
10
+ position: absolute;
11
+ }
12
+
13
+ #popup_overlay {
14
+ background-color: black;
15
+ /* The following properties should not be changed */
16
+ position: absolute;
17
+ top: 0;
18
+ left: 0;
19
+ width: 100%;
20
+ height: 500px;
21
+ }
22
+
23
+ span.popup_link, a.popup_link {
24
+ cursor: pointer;
25
+ border-bottom: 1px dotted;
26
+ }
27
+
28
+ .popup_draghandle {
29
+ cursor: move;
30
+ }
@@ -0,0 +1,107 @@
1
+
2
+ td.record, td.record-title {
3
+ padding: 3px 4px;
4
+ background-color: #fff;
5
+ /*border-bottom: solid 1px #cc341f;
6
+ border-left: solid 1px #cc341f;*/
7
+ }
8
+
9
+ tr:hover td.hover {
10
+ background-color: lightblue; /*#cc341f;*/
11
+ color: black;
12
+ cursor: pointer;
13
+ /*border-left: solid 1px white;*/
14
+ }
15
+
16
+ td.even-record {
17
+ background-color: #ccc;
18
+ }
19
+
20
+ td.record-title {
21
+ background-color: #fff;
22
+ border-bottom: solid 2px #cc341f;
23
+ }
24
+
25
+ a.sort-asc:after {
26
+ content: url(/images/toolbox/arrow_up.gif);
27
+ }
28
+
29
+ a.sort-desc:after {
30
+ content: url(/images/toolbox/arrow_down.gif);
31
+ }
32
+
33
+ a.sort-none:after {
34
+ content: url(/images/clear.gif);
35
+ width: 16px;
36
+ height: 7px;
37
+ }
38
+
39
+ fieldset {
40
+ float: left;
41
+ }
42
+
43
+ .error {
44
+ background-color: red;
45
+ }
46
+
47
+ div.show_value {
48
+ float: left;
49
+ }
50
+
51
+ div.show_value ul {
52
+ margin:0;
53
+ padding:0;
54
+ width:100%;
55
+ list-style-type:none;
56
+ }
57
+
58
+ div.show_value ul li {
59
+ margin: 0;
60
+ }
61
+
62
+ div.toolbar
63
+ {
64
+ clear: left;
65
+ padding-top: 5px;
66
+ }
67
+
68
+ div.searchfield {
69
+ float: right;
70
+ }
71
+
72
+ form {
73
+ display: inline;
74
+ }
75
+
76
+ form.inplaceeditor-form input {
77
+ margin-right: 10px;
78
+ }
79
+
80
+ div.auto_complete {
81
+ width: 350px;
82
+ background: #fff;
83
+ }
84
+
85
+ div.auto_complete ul {
86
+ border:1px solid #888;
87
+ margin:0;
88
+ padding:0;
89
+ width:100%;
90
+ list-style-type:none;
91
+ }
92
+
93
+ div.auto_complete ul li {
94
+ margin:0;
95
+ padding:3px;
96
+ }
97
+
98
+ div.auto_complete ul li.selected {
99
+ background-color: #ffb;
100
+ }
101
+
102
+ div.auto_complete ul strong.highlight {
103
+ color: #800;
104
+ margin:0;
105
+ padding:0;
106
+ }
107
+
@@ -0,0 +1,24 @@
1
+ <%
2
+ no_form = local_assigns[:form].nil?
3
+ rec = collection # just for more readable code
4
+ collection = rec.send(widgetset.collection_config.model_method) if widgetset.collection_config.model_method.is_a?(Symbol)
5
+ collection = widgetset.collection_config.model_method.call(rec) if widgetset.collection_config.model_method.is_a?(Proc)
6
+ locals = {:parent => rec, :widgetset => widgetset, :renderers => renderers}
7
+ id = widgetset.collection_config.object_id.to_s + '_' + dom_id(rec)
8
+ unless no_form and collection.empty? and widgetset.collection_config.hide_empty
9
+ field_set_tag widgetset.label do %>
10
+ <table id="<%= id %>">
11
+ <%= render :partial => 'toolbox/collection_header', :locals => locals %>
12
+ <%= render :partial => no_form ? 'toolbox/show_collection_row' : 'toolbox/form_collection_row', :collection => collection, :locals => locals %>
13
+ </table>
14
+ <% unless no_form %>
15
+ <%=
16
+
17
+ link_to_function image_tag('toolbox/add.png', :border => 0) do |page|
18
+ page.insert_html :bottom, id, :partial => 'toolbox/form_collection_row', :object => widgetset.collection_config.type.new, :locals => locals.merge({:auto_id => true})
19
+ end
20
+ %>
21
+ <% end %>
22
+ <% end %>
23
+ <% end %>
24
+
@@ -0,0 +1,7 @@
1
+ <% unless widgetset.collection_config.suppress_table_header %>
2
+ <tr>
3
+ <% renderers.each do |renderer| %>
4
+ <th class="record-title"><%= renderer.label %></th>
5
+ <% end %>
6
+ </tr>
7
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <%
2
+ rec = context_menu
3
+ renderer = widget_list.widgets.map { |a| Toolbox::ActionRenderer.new self, a }
4
+ %>
5
+ <ul>
6
+ <li style="color: darkgray; text-align:center;"><%= s_(rec.class.name.underscore.humanize.downcase) %></li>
7
+ <li class="separator"></li>
8
+ <% renderer.each do |r|
9
+ a = r.render_action rec, context
10
+ if a.is_a? String
11
+ %>
12
+ <li><%= a %></li>
13
+ <% else %>
14
+ <li class="<%= a.to_s %>"></li>
15
+ <% end %>
16
+ <% end %>
17
+ </ul>
@@ -0,0 +1,6 @@
1
+ <div id="dialog_id" class="popup" style="display:none"></div>
2
+ <%= javascript_tag "new Popup('dialog_id', null, {modal:true, disable_auto_hide: true, duration: 0.2});" %>
3
+
4
+ <div id="context_menu_id" class="menu desktop" style="display:none">
5
+ </div>
6
+ <%= javascript_tag "new Popup('context_menu_id', null, {menu:true, position:'auto', duration: 0.2});" %>
@@ -0,0 +1,30 @@
1
+ <% # Aufruf: render :partial => "toolbox/form", :object => @article, :locals => { :fsets => ..., :options => ... } %>
2
+ <%
3
+ rec = form # just for more readable code
4
+ dialog = false unless dialog
5
+ form_method = dialog ? :remote_form_for : :form_for
6
+
7
+ %>
8
+ <% send(form_method, rec, {:html => { :multipart => true}}) do |frm| %>
9
+ <%= frm.error_messages %>
10
+ <% widgetsets.each do |widgetset|
11
+ renderers = widgetset.widget_list.widgets.map { |w| Toolbox::ControlRenderer.new(self, w, dialog) }
12
+ if widgetset.condition == nil || widgetset.condition.call(rec)
13
+ partial = widgetset.partial || (widgetset.collection_config ? 'toolbox/collection': 'toolbox/form_fieldset')
14
+ %>
15
+ <%= render :partial => partial,
16
+ :object => rec,
17
+ :locals => {:form => frm, :widgetset => widgetset, :renderers => renderers} %>
18
+ <% end %>
19
+ <% end %>
20
+ <div class="toolbar">
21
+ <%= frm.submit(rec.new_record?() ? Toolbox::Messages.create : Toolbox::Messages.save, :name => :save) %>
22
+ <% if dialog %>
23
+ <%= button_to_function Toolbox::Messages.cancel, "$('dialog_id').popup.hide()" %>
24
+ <% else %>
25
+ <%= frm.submit Toolbox::Messages.cancel, :name => :cancel %>
26
+ <% end %>
27
+ </div>
28
+ <% end %>
29
+
30
+
@@ -0,0 +1,18 @@
1
+ <%
2
+ rec = form_collection_row # just for more readable code
3
+ parent_object_name = ActionController::RecordIdentifier.singular_class_name(parent)
4
+ collection_attribute_name = Toolbox::Helpers.collection_attribute_name(widgetset.collection_config, rec)
5
+ prefix = "#{parent_object_name}[#{collection_attribute_name}][]"
6
+ has_error = parent.errors.on(widgetset.collection_config.model_method)
7
+ %>
8
+ <% fields_for prefix, rec do |frm| %>
9
+ <tr>
10
+ <% renderers.each do |control_renderer| %>
11
+ <td><%= control_renderer.render_control(frm, rec, has_error) %></td>
12
+ <% end %>
13
+ <td>
14
+ <%= link_to_function image_tag('toolbox/remove.png', :border => 0), "$(this).up('tr').remove()" %>
15
+ </td>
16
+ </tr>
17
+ <% end %>
18
+
@@ -0,0 +1,30 @@
1
+ <% # renders a fieldset with a normal label: value structure %>
2
+ <%
3
+ locals = {:renderers => renderers }
4
+ if widgetset.aggregation_config
5
+ parent = form_fieldset
6
+ rec = parent.send(widgetset.aggregation_config.model_method) if widgetset.aggregation_config.model_method.is_a?(Symbol)
7
+ rec = widgetset.aggregation_config.model_method.call(rec) if widgetset.aggregation_config.model_method.is_a?(Proc)
8
+ rec = widgetset.aggregation_config.type.new unless rec
9
+ parent_object_name = ActionController::RecordIdentifier.singular_class_name(parent)
10
+ prefix = "#{parent_object_name}[#{widgetset.aggregation_config.model_method.to_s}_attributes]"
11
+ has_error = parent.errors.on(widgetset.aggregation_config.model_method)
12
+ locals[:has_error] = has_error
13
+ else
14
+ rec = form_fieldset # just for more readable code
15
+ end
16
+
17
+ field_set_tag widgetset.label do
18
+ %>
19
+ <table border="0">
20
+ <% if widgetset.aggregation_config %>
21
+ <% fields_for prefix, rec do |frm| %>
22
+ <%= render :partial => 'toolbox/form_fieldset_row', :object => rec, :locals => locals.merge(:frm => frm) %>
23
+ <% end %>
24
+ <% else %>
25
+ <%= render :partial => 'toolbox/form_fieldset_row', :object => rec, :locals => locals.merge(:frm => form) %>
26
+ <% end %>
27
+ </table>
28
+ <%= footer if defined? footer %>
29
+ <% end %>
30
+
@@ -0,0 +1,19 @@
1
+ <%
2
+ rec =form_fieldset_row
3
+ renderers.each do |renderer|
4
+ has_error = rec.errors.on(renderer.widget_config.name) unless defined? has_error
5
+ if renderer.widget_config.type == :hidden
6
+ %>
7
+ <%= renderer.render_control(frm, rec, has_error) %>
8
+ <% else %>
9
+ <tr>
10
+ <td>
11
+ <% unless renderer.widget_config.suppress_label%>
12
+ <%= renderer.widget_config.label if renderer.widget_config.label %>
13
+ <%= frm.label renderer.widget_config.name unless renderer.widget_config.label %>
14
+ <% end %>
15
+ </td>
16
+ <td ><%= renderer.render_control(frm, rec, has_error) %></td>
17
+ </tr>
18
+ <% end %>
19
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <%
2
+ # render(:partial => "toolbox/list", :object => @recs,
3
+ # :locals => { :field_list => ..., # column configuration
4
+ # :prefix => ... # optional
5
+ # })
6
+
7
+ %>
8
+ <%
9
+ recs = list # just for more readable code
10
+ prefix = nil unless prefix
11
+ field_renderers = widget_list.widgets.map { |f| Toolbox::FieldRenderer.new self, f }
12
+ %>
13
+ <p><%= will_paginate recs, :param_name => (prefix ? "#{prefix}-page".to_sym : :page) %></p>
14
+ <table>
15
+ <tr>
16
+ <% field_renderers.each do |field_renderer| %>
17
+ <th class="record-title"><%= field_renderer.sort_link(params, prefix) %></th>
18
+ <% end %>
19
+ <th></th>
20
+ </tr>
21
+ <%= render :partial => 'toolbox/list_row', :collection => recs, :locals => {:field_renderers => field_renderers} %>
22
+ </table>
23
+ <%= Toolbox::Messages.nothing_found if recs.length == 0 %>
24
+ <p><%= will_paginate recs, :param_name => (prefix ? "#{prefix}-page".to_sym : :page) %></p>
25
+
@@ -0,0 +1,10 @@
1
+ <% classAttr = cycle("", "even-record") -%>
2
+ <% rec = list_row %>
3
+ <tr id="<%= dom_id(rec) %>">
4
+ <% field_renderers.each do |field_renderer| %>
5
+ <td class="record <%= classAttr %>" onclick="window.location.href='<%= polymorphic_url(rec) %>';">
6
+ <%= field_renderer.render_value(rec) %>
7
+ </td>
8
+ <% end %>
9
+ <td><%= context_menu_link rec %></td>
10
+ </tr>
@@ -0,0 +1,7 @@
1
+ <%
2
+ rec = get_record
3
+ actions = controller.menu_config rec, nil
4
+ renderer = actions.widgets.map { |a| Toolbox::ActionRenderer.new self, a }
5
+ links = renderer.map {|r| r.render_action rec, nil, params[:action] }.select {|l| l }
6
+ %>
7
+ <div class="submenu"><%= links.join ' | ' %></div>
@@ -0,0 +1,8 @@
1
+ <% obj_class = controller.controller_name.singularize %>
2
+ <div class="searchfield">
3
+ <% form_tag({:action => 'index'},{:method => 'get'}) do %>
4
+ Suche hier: <input type="text" size="30" name="query" value="<%= h params[:query]%>">
5
+ <%= submit_tag _('Search'), :title => search_field_hint(controller.search_fields) %>
6
+ <% end %>
7
+ </div>
8
+
@@ -0,0 +1,12 @@
1
+ <% rec = show %>
2
+ <% widgetsets.each do |widgetset|
3
+ renderers = widgetset.widget_list.widgets.map { |w| Toolbox::FieldRenderer.new(self, w) }
4
+ if widgetset.condition == nil || widgetset.condition.call(rec)
5
+ partial = widgetset.partial || (widgetset.collection_config ? 'toolbox/collection': 'toolbox/show_fieldset')
6
+ %>
7
+ <%= render :partial => partial,
8
+ :object => rec,
9
+ :locals => { :widgetset => widgetset, :renderers => renderers} %>
10
+ <% end %>
11
+ <% end %>
12
+
@@ -0,0 +1,6 @@
1
+ <% rec = show_collection_row %>
2
+ <tr id="<%= dom_id(rec) %>">
3
+ <% renderers.each do |field_renderer| %>
4
+ <td class="show_value"><%= field_renderer.render_value(rec) %></td>
5
+ <% end %>
6
+ </tr>
@@ -0,0 +1,21 @@
1
+ <%
2
+ rec = show_fieldset
3
+ field_set_tag widgetset.label do %>
4
+ <table border="0">
5
+ <%
6
+ renderers.each do |renderer|
7
+ value = renderer.render_value(rec)
8
+ label = renderer.label
9
+ # value is nil if the hide empty option is set. '&nbsp' would be returned else
10
+ if value
11
+ %>
12
+ <tr>
13
+ <td><%= content_tag(:label, label + ':', :class => 'show_label') if label %></td>
14
+ <td><%= content_tag(:div, value, :class => 'show_value') %></td>
15
+ </tr>
16
+ <%
17
+ end
18
+ end
19
+ %>
20
+ </table>
21
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% model_name = controller.model_name %>
2
+ <% rec = get_record %>
3
+ <%= render :partial => "toolbox/form",
4
+ :object => rec,
5
+ :locals => {:widgetsets => controller.edit_config(rec).controlsets } %>
@@ -0,0 +1,3 @@
1
+ <%= render :partial => "toolbox/list",
2
+ :object => @recs,
3
+ :locals => { :widget_list => controller.index_config(@recs) } %>
@@ -0,0 +1,9 @@
1
+ <%
2
+ model_name = controller.model_name
3
+ rec = get_record
4
+ %>
5
+ <h1><%= _('Create new %{object}') % { :object => s_(model_name.humanize.downcase)} %></h1>
6
+
7
+ <%= render :partial => "toolbox/form",
8
+ :object => rec,
9
+ :locals => {:widgetsets => controller.edit_config(rec).controlsets } %>
@@ -0,0 +1,39 @@
1
+ <%
2
+ rec = get_record
3
+ %>
4
+ <%=
5
+ begin
6
+ render :partial =>"#{controller.controller_name}/show_header", :object => rec
7
+ rescue ActionView::MissingTemplate
8
+ end
9
+ %>
10
+ <%= render :partial => 'toolbox/show', :object => rec, :locals => { :widgetsets => @show_config.fieldsets} %>
11
+
12
+ <% if @embedded_list
13
+ sub_menu = []
14
+ @show_config.embedded_lists.each do |embedded_list|
15
+ sub_menu << link_to_if(embedded_list.prefix != @embedded_list.prefix,
16
+ "#{embedded_list.label} (#{rec.send(embedded_list.collection_config.model_method).count})",
17
+ params.merge(:list => embedded_list.prefix))
18
+ end
19
+
20
+ pag_options = {}
21
+ pag_options[:page] = params["#{@embedded_list.prefix}-page".to_sym]
22
+ pag_options[:order] = Toolbox::Sorting.order_by params, @embedded_list.widget_list.widgets, @embedded_list.prefix
23
+ pag_options[:include] = @embedded_list.include_assoc if @embedded_list.include_assoc
24
+ data = rec.send(@embedded_list.collection_config.model_method).paginate(pag_options)
25
+ %>
26
+ <div style="clear: left; padding-top: 10px"><%= sub_menu.join ' | ' %>
27
+ <%= render :partial => "toolbox/list", :object => data, :locals => {:widget_list => @embedded_list.widget_list, :prefix => @embedded_list.prefix} %>
28
+ </div>
29
+ <% end %>
30
+
31
+ <%=
32
+ begin
33
+ render :partial =>"#{controller.controller_name}/show_footer", :object => rec
34
+ rescue ActionView::MissingTemplate
35
+ end
36
+ %>
37
+
38
+ <div style="clear: left"><%= "#{s_("#{rec.class.name}|Created at")} #{rec.created_at.to_s(:local_datetime)} (#{rec.creator}), #{s_("#{rec.class.name}|Updated at")} #{rec.updated_at.to_s(:local_datetime)} (#{rec.updater})" %></div>
39
+
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: toolbox
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David Nyffenegger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-01-29 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.1.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: actionpack
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.1.1
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: actionpack
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.1.1
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: gettext
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.0
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: mislav-will_paginate
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 2.3.3
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: calendar_date_select
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.15.0
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: fastercsv
77
+ type: :runtime
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.4.0
84
+ version:
85
+ description: This toolbox goes in the direction of the django admin interface.
86
+ email: vidl@sunrise.ch
87
+ executables: []
88
+
89
+ extensions: []
90
+
91
+ extra_rdoc_files: []
92
+
93
+ files:
94
+ - Rakefile
95
+ - lib/dirs.rb
96
+ - lib/toolbox/config.rb
97
+ - lib/toolbox/default_controller.rb
98
+ - lib/toolbox/helpers.rb
99
+ - lib/toolbox/rendering.rb
100
+ - lib/toolbox/searching.rb
101
+ - lib/toolbox/session_params.rb
102
+ - lib/toolbox/sorting.rb
103
+ - lib/toolbox/version.rb
104
+ - lib/toolbox.rb
105
+ - locale/de/LC_MESSAGES/toolbox.mo
106
+ - view/toolbox/_collection.html.erb
107
+ - view/toolbox/_collection_header.html.erb
108
+ - view/toolbox/_context_menu.html.erb
109
+ - view/toolbox/_dialogs.html.erb
110
+ - view/toolbox/_form.html.erb
111
+ - view/toolbox/_form_collection_row.html.erb
112
+ - view/toolbox/_form_fieldset.html.erb
113
+ - view/toolbox/_form_fieldset_row.html.erb
114
+ - view/toolbox/_list.html.erb
115
+ - view/toolbox/_list_row.html.erb
116
+ - view/toolbox/_menu.html.erb
117
+ - view/toolbox/_search_field.html.erb
118
+ - view/toolbox/_show.html.erb
119
+ - view/toolbox/_show_collection_row.html.erb
120
+ - view/toolbox/_show_fieldset.html.erb
121
+ - view/toolbox/edit.html.erb
122
+ - view/toolbox/index.html.erb
123
+ - view/toolbox/new.html.erb
124
+ - view/toolbox/show.html.erb
125
+ - public/images/add.png
126
+ - public/images/arrow_down.gif
127
+ - public/images/arrow_up.gif
128
+ - public/images/close.png
129
+ - public/images/edit.gif
130
+ - public/images/email.png
131
+ - public/images/page.png
132
+ - public/images/page_acrobat.png
133
+ - public/images/page_add.png
134
+ - public/images/page_copy.png
135
+ - public/images/page_delete.png
136
+ - public/images/page_edit.png
137
+ - public/images/page_excel.png
138
+ - public/images/page_list.png
139
+ - public/images/page_save.png
140
+ - public/images/page_word.png
141
+ - public/images/remove.png
142
+ - public/images/show.gif
143
+ - public/images/spinner.gif
144
+ - public/javascripts/popup.js
145
+ - public/javascripts/toolbox.js
146
+ - public/stylesheets/context_menu.css
147
+ - public/stylesheets/popup.css
148
+ - public/stylesheets/toolbox.css
149
+ has_rdoc: true
150
+ homepage: http://github.com/vidl/toolbox
151
+ licenses: []
152
+
153
+ post_install_message:
154
+ rdoc_options: []
155
+
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: "0"
163
+ version:
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: "0"
169
+ version:
170
+ requirements: []
171
+
172
+ rubyforge_project: toolbox
173
+ rubygems_version: 1.3.5
174
+ signing_key:
175
+ specification_version: 3
176
+ summary: Davids toolbox to speedup development with rails (mainly view).
177
+ test_files: []
178
+