meta_reports 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -68
  3. data/app/models/meta_reports/color.rb +16 -0
  4. data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default.html.erb +1 -1
  5. data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_footer.pdf.prawn +0 -0
  6. data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_header.pdf.prawn +0 -0
  7. data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_header.xlsx.axlsx +0 -0
  8. data/{spec/dummy/app/views/meta_reports/reports/templates → app/views/meta_reports}/_default_table.html.erb +3 -3
  9. data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_table.pdf.prawn +0 -0
  10. data/app/views/meta_reports/default.html.erb +1 -0
  11. data/app/views/meta_reports/default.pdf.prawn +37 -0
  12. data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/default.xlsx.axlsx +1 -1
  13. data/lib/generators/meta_reports/install_templates_generator.rb +1 -6
  14. data/lib/meta_reports.rb +7 -1
  15. data/{app/models → lib}/meta_reports/data.rb +9 -0
  16. data/{app/helpers/meta_reports/reports_helper.rb → lib/meta_reports/helper.rb} +7 -6
  17. data/lib/meta_reports/railtie.rb +7 -0
  18. data/{app/models → lib}/meta_reports/table.rb +4 -0
  19. data/lib/meta_reports/version.rb +1 -1
  20. data/lib/tasks/meta_reports_tasks.rake +2 -2
  21. data/spec/ci.sh +1 -1
  22. data/spec/dummy/Rakefile +0 -0
  23. data/spec/dummy/app/assets/javascripts/application.js +0 -0
  24. data/spec/dummy/app/assets/stylesheets/application.css +0 -0
  25. data/spec/dummy/app/controllers/application_controller.rb +0 -0
  26. data/spec/dummy/app/controllers/home_controller.rb +0 -0
  27. data/spec/dummy/app/controllers/reports_controller.rb +87 -0
  28. data/spec/dummy/app/helpers/application_helper.rb +0 -0
  29. data/spec/dummy/app/models/meta_reports/color.rb +16 -0
  30. data/{app/models/meta_reports/base.rb → spec/dummy/app/models/report.rb} +15 -26
  31. data/spec/dummy/app/views/home/index.html.erb +0 -0
  32. data/spec/dummy/app/views/layouts/application.html.erb +0 -0
  33. data/spec/dummy/app/views/meta_reports/{reports/templates/_default.html.erb → _default.html.erb} +2 -2
  34. data/spec/dummy/app/views/meta_reports/{reports/templates/_default_footer.pdf.prawn → _default_footer.pdf.prawn} +0 -0
  35. data/spec/dummy/app/views/meta_reports/{reports/templates/_default_header.pdf.prawn → _default_header.pdf.prawn} +0 -0
  36. data/spec/dummy/app/views/meta_reports/{reports/templates/_default_header.xlsx.axlsx → _default_header.xlsx.axlsx} +0 -0
  37. data/{lib/generators/meta_reports/templates/views/templates → spec/dummy/app/views/meta_reports}/_default_table.html.erb +3 -3
  38. data/spec/dummy/app/views/meta_reports/{reports/templates/_default_table.pdf.prawn → _default_table.pdf.prawn} +0 -0
  39. data/spec/dummy/app/views/meta_reports/default.html.erb +1 -0
  40. data/spec/dummy/app/views/meta_reports/default.pdf.prawn +37 -0
  41. data/spec/dummy/app/views/meta_reports/{reports/templates/default.xlsx.axlsx → default.xlsx.axlsx} +1 -1
  42. data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/_form.html.erb +1 -1
  43. data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/edit.html.erb +1 -1
  44. data/spec/dummy/app/views/{meta_reports/reports → reports}/forms/_form_moo.html.erb +0 -0
  45. data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/forms/form.html.erb +0 -0
  46. data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/index.html.erb +0 -0
  47. data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/new.html.erb +0 -0
  48. data/spec/dummy/config.ru +0 -0
  49. data/spec/dummy/config/application.rb +0 -0
  50. data/spec/dummy/config/boot.rb +0 -0
  51. data/spec/dummy/config/database.yml +0 -0
  52. data/spec/dummy/config/environment.rb +0 -0
  53. data/spec/dummy/config/environments/development.rb +0 -0
  54. data/spec/dummy/config/environments/production.rb +0 -0
  55. data/spec/dummy/config/environments/test.rb +0 -0
  56. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -0
  57. data/spec/dummy/config/initializers/inflections.rb +0 -0
  58. data/spec/dummy/config/initializers/mime_types.rb +0 -0
  59. data/spec/dummy/config/initializers/secret_token.rb +0 -0
  60. data/spec/dummy/config/initializers/session_store.rb +0 -0
  61. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
  62. data/spec/dummy/config/locales/en.yml +0 -0
  63. data/spec/dummy/config/routes.rb +2 -1
  64. data/spec/dummy/config/routes_empty.rb +0 -0
  65. data/spec/dummy/config/routes_original.rb +0 -0
  66. data/spec/dummy/db/development.sqlite3 +0 -0
  67. data/spec/dummy/db/migrate/20130801071213_for_testing_only.rb +1 -2
  68. data/spec/dummy/db/test.sqlite3 +0 -0
  69. data/spec/dummy/log/development.log +5 -24939
  70. data/spec/dummy/log/test.log +3029 -0
  71. data/spec/dummy/public/404.html +0 -0
  72. data/spec/dummy/public/422.html +0 -0
  73. data/spec/dummy/public/500.html +0 -0
  74. data/spec/dummy/public/favicon.ico +0 -0
  75. data/spec/dummy/tmp/cache/assets/C9B/140/sprockets%2F805babf865ce32228222420a522c7b36 +0 -0
  76. data/spec/dummy/tmp/cache/assets/CBD/2B0/sprockets%2F9e22e937dd267c81a146665f15471b8e +0 -0
  77. data/spec/dummy/tmp/cache/assets/CD0/810/sprockets%2Fe858c95fa595e319dac0065d49982967 +0 -0
  78. data/spec/dummy/tmp/cache/assets/CD0/AC0/sprockets%2F1d341d7a2fc1328567d4b23e0809b2e2 +0 -0
  79. data/spec/dummy/tmp/cache/assets/CD1/A80/sprockets%2F25be813f3840b407d514e03973fbac40 +0 -0
  80. data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  81. data/spec/dummy/tmp/cache/assets/CDC/FB0/sprockets%2F16b037c6f739184fc67a82dc140a3b83 +0 -0
  82. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  83. data/spec/dummy/tmp/cache/assets/D3D/EB0/sprockets%2F2d47bd3108d9abbb12c0497e36d9674d +0 -0
  84. data/spec/dummy/tmp/cache/assets/D40/8F0/sprockets%2F290aea2004dfecfc76f42e48970f1484 +0 -0
  85. data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  86. data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  87. data/spec/dummy/tmp/cache/assets/D61/310/sprockets%2Fc168b1c9be3e38ac1c8403a3074b5b8c +0 -0
  88. data/spec/dummy/tmp/cache/assets/D74/AE0/sprockets%2F9ad0425db5cfa16a9426f7b1a7958d7d +0 -0
  89. data/spec/dummy/tmp/cache/assets/D98/270/sprockets%2F0b7ba158ff62bbbb378d6bea80680c63 +0 -0
  90. data/spec/dummy/tmp/cache/assets/DDC/340/sprockets%2F8ad88a197ff3462ea8dd3ad7b1e2b7e9 +0 -0
  91. data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  92. data/spec/dummy/tmp/cache/assets/DF1/CD0/sprockets%2F3b66bd14b91d4fb176ce0a30ab5fd9bf +0 -0
  93. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  94. data/spec/dummy/tmp/cache/assets/E5A/EF0/sprockets%2Fb0d5af721ea37c98fd4bccd8e1e5c6ab +0 -0
  95. data/spec/dummy/tmp/cache/assets/test/sass/cd99a83fa417594c8715ee09005855a11886141c/metareports_color_variables.scssc +0 -0
  96. data/spec/dummy/tmp/cache/assets/test/sass/cd99a83fa417594c8715ee09005855a11886141c/metareports_colors.scssc +0 -0
  97. data/spec/dummy/tmp/cache/assets/test/sprockets/0b7ba158ff62bbbb378d6bea80680c63 +0 -0
  98. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  99. data/spec/dummy/tmp/cache/assets/test/sprockets/16b037c6f739184fc67a82dc140a3b83 +0 -0
  100. data/spec/dummy/tmp/cache/assets/test/sprockets/1d341d7a2fc1328567d4b23e0809b2e2 +0 -0
  101. data/spec/dummy/tmp/cache/assets/test/sprockets/25be813f3840b407d514e03973fbac40 +0 -0
  102. data/spec/dummy/tmp/cache/assets/test/sprockets/290aea2004dfecfc76f42e48970f1484 +0 -0
  103. data/spec/dummy/tmp/cache/assets/test/sprockets/2d47bd3108d9abbb12c0497e36d9674d +0 -0
  104. data/spec/dummy/tmp/cache/assets/test/sprockets/2e7ca7e84b7c22471bbca0e4504a2597 +0 -0
  105. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  106. data/spec/dummy/tmp/cache/assets/test/sprockets/34d1d79bff5dc36e7f78550df20eec85 +0 -0
  107. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  108. data/spec/dummy/tmp/cache/assets/test/sprockets/366f779b10b9268d7594b4833cac1629 +0 -0
  109. data/spec/dummy/tmp/cache/assets/test/sprockets/3b66bd14b91d4fb176ce0a30ab5fd9bf +0 -0
  110. data/spec/dummy/tmp/cache/assets/test/sprockets/3f5939c6c02f0f902d77ac93858eaa55 +0 -0
  111. data/spec/dummy/tmp/cache/assets/test/sprockets/76da4521ccd2724b5e04ce969514f6f7 +0 -0
  112. data/spec/dummy/tmp/cache/assets/test/sprockets/7d10cf1420e7efe789dd0a850b92fe72 +0 -0
  113. data/spec/dummy/tmp/cache/assets/test/sprockets/7f26f47a9eab416ae0e730d60088b9ef +0 -0
  114. data/spec/dummy/tmp/cache/assets/test/sprockets/805babf865ce32228222420a522c7b36 +0 -0
  115. data/spec/dummy/tmp/cache/assets/test/sprockets/89b49044c6f7d85bbb660b73a9a4e181 +0 -0
  116. data/spec/dummy/tmp/cache/assets/test/sprockets/8ad88a197ff3462ea8dd3ad7b1e2b7e9 +0 -0
  117. data/spec/dummy/tmp/cache/assets/test/sprockets/9e22e937dd267c81a146665f15471b8e +0 -0
  118. data/spec/dummy/tmp/cache/assets/test/sprockets/b0d5af721ea37c98fd4bccd8e1e5c6ab +0 -0
  119. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  120. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  121. data/spec/dummy/tmp/cache/assets/test/sprockets/e858c95fa595e319dac0065d49982967 +0 -0
  122. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  123. data/spec/dummy/tmp/capybara/capybara-201310282335386823859116.html +0 -0
  124. data/spec/dummy/tmp/capybara/capybara-201310282336101820292402.html +0 -0
  125. data/spec/dummy/tmp/capybara/capybara-201310282338439674392250.html +0 -0
  126. data/spec/dummy/tmp/capybara/capybara-201310282350595445887206.html +0 -0
  127. data/spec/dummy/tmp/capybara/capybara-201310282351429822980920.html +0 -0
  128. data/spec/dummy/tmp/capybara/capybara-201310282354523302677005.html +0 -0
  129. data/spec/features/dummy_spec.rb +8 -8
  130. data/spec/generators/install_templates_spec.rb +14 -14
  131. data/spec/models/data_spec.rb +0 -0
  132. data/spec/models/table_spec.rb +0 -0
  133. data/spec/spec_helper.rb +0 -0
  134. data/spec/support/utilities.rb +0 -0
  135. data/spec/tasks/meta_reports_rake_spec.rb +0 -1
  136. metadata +82 -76
  137. data/app/assets/images/meta_reports/print.png +0 -0
  138. data/app/assets/images/meta_reports/spreadsheet.png +0 -0
  139. data/app/assets/javascripts/meta_reports/reports.js +0 -2
  140. data/app/controllers/meta_reports/application_controller.rb +0 -4
  141. data/config/routes.rb +0 -11
  142. data/db/migrate/20130801071213_create_meta_reports_reports.rb +0 -17
  143. data/lib/generators/meta_reports/install_engine_generator.rb +0 -44
  144. data/lib/generators/meta_reports/templates/controllers/reports_controller.rb +0 -91
  145. data/lib/generators/meta_reports/templates/models/report.rb +0 -35
  146. data/lib/generators/meta_reports/templates/models/report_non_activerecord.rb +0 -35
  147. data/lib/generators/meta_reports/templates/views/forms/_form_example.html.erb +0 -1
  148. data/lib/generators/meta_reports/templates/views/templates/default.html.erb +0 -1
  149. data/lib/generators/meta_reports/templates/views/templates/default.pdf.prawn +0 -28
  150. data/lib/meta_reports/engine.rb +0 -15
  151. data/spec/dummy/app/controllers/meta_reports/reports_controller.rb +0 -91
  152. data/spec/dummy/app/models/meta_reports/report.rb +0 -34
  153. data/spec/dummy/app/views/meta_reports/reports/_form.html.erb +0 -61
  154. data/spec/dummy/app/views/meta_reports/reports/edit.html.erb +0 -6
  155. data/spec/dummy/app/views/meta_reports/reports/forms/form.html.erb +0 -17
  156. data/spec/dummy/app/views/meta_reports/reports/index.html.erb +0 -36
  157. data/spec/dummy/app/views/meta_reports/reports/new.html.erb +0 -5
  158. data/spec/dummy/app/views/meta_reports/reports/templates/default.html.erb +0 -1
  159. data/spec/dummy/app/views/meta_reports/reports/templates/default.pdf.prawn +0 -26
  160. data/spec/generators/install_engine_spec.rb +0 -61
@@ -1,2 +0,0 @@
1
- // Place all the behaviors and hooks related to the matching controller here.
2
- // All this logic will automatically be available in application.js.
@@ -1,4 +0,0 @@
1
- module MetaReports
2
- class ApplicationController < ::ApplicationController
3
- end
4
- end
@@ -1,11 +0,0 @@
1
- MetaReports::Engine.routes.draw do
2
- root to: "reports#index"
3
-
4
- get 'reports/file/:dir' => 'reports#file', as: 'file'
5
- get 'new' => 'reports#new', as: 'short_new'
6
- post 'reports' => 'reports#create', as: 'normal_create'
7
- match ':id(.:format)' => 'reports#show', as: 'short_show', via: [:get, :post]
8
- get ':id/edit' => 'reports#edit', as: 'short_edit'
9
- get ':id/form' => 'reports#form', as: 'short_form'
10
- resources :reports
11
- end
@@ -1,17 +0,0 @@
1
- class CreateMetaReportsReports < ActiveRecord::Migration
2
- def change
3
- create_table :meta_reports_reports do |t|
4
- t.string :name
5
- t.text :description
6
- t.string :title
7
- t.string :group
8
- t.boolean :direct
9
- t.integer :views
10
- t.string :target
11
- t.integer :formats_mask
12
-
13
- t.timestamps
14
- end
15
- add_index :meta_reports_reports, :name
16
- end
17
- end
@@ -1,44 +0,0 @@
1
- require 'rails/generators'
2
-
3
- module MetaReports
4
- module Generators
5
- class InstallEngineGenerator < Rails::Generators::Base
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- desc 'Copy meta_reports migration, models, controllers, and views.'
9
-
10
- def create_migration_file
11
- Dir.chdir(Rails.root) do
12
- `rake meta_reports:install:migrations`
13
- end
14
- end
15
-
16
- def install_controller
17
- copy_file "controllers/reports_controller.rb", "app/controllers/meta_reports/reports_controller.rb"
18
- end
19
-
20
- def install_model
21
- copy_file "models/report.rb", "app/models/meta_reports/report.rb"
22
- end
23
-
24
- def install_views
25
- directory "views", "app/views/meta_reports/reports"
26
- end
27
-
28
- def mount_engine
29
- routes_file = "#{Rails.root}/config/routes.rb"
30
- unless open(routes_file).grep(/MetaReports::Engine/)
31
- insert_into_file(routes_file, :after => /routes.draw.do\n/) do
32
- %Q{
33
- # This line mounts MetaReports's routes at /reports by default.
34
- # This means, any requests to the /reports URL of your application will go to MetaReports::ReportsController#index.
35
- # If you would like to change where this extension is mounted, simply change '/reports' to something different.
36
- mount MetaReports::Engine => '/reports'
37
-
38
- }
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,91 +0,0 @@
1
- require_dependency "meta_reports/application_controller"
2
-
3
- module MetaReports
4
- class ReportsController < ApplicationController
5
- # remember to add authentication/authorization. E.g:
6
- # before_filter :require_user
7
- # load_and_authorize_resource
8
-
9
- def index
10
- @reports = Report.order("meta_reports_reports.title") || []
11
- end
12
-
13
- def show
14
- if params[:id].to_s =~ /^\d+$/
15
- _report = Report.find(params[:id])
16
- elsif Report.respond_to?(params[:id])
17
- _report = Report.find_by_name(params[:id])
18
- else
19
- redirect_to root_url, notice: 'That report does not exist'
20
- return
21
- end
22
- @report = _report.run(params)
23
- template = {template: "meta_reports/reports/templates/" + (@report[:template] || "default") }
24
-
25
- respond_to do |format|
26
- format.html { render template }
27
- format.pdf { render template }
28
- format.xlsx { render template }
29
- end
30
- _report.view
31
- end
32
-
33
- def new
34
- @report = Report.new
35
- end
36
-
37
- def edit
38
- @report = Report.find params[:id]
39
- end
40
-
41
- def create
42
- @report = Report.new(params[:report])
43
- if @report.save
44
- flash[:notice] = 'Report was successfully created.'
45
- redirect_to(edit_report_path(@report))
46
- else
47
- render action: "new"
48
- end
49
- end
50
-
51
- def update
52
- @report = Report.find params[:id]
53
- if @report.update_attributes(params[:meta_report])
54
- flash[:notice] = 'Report was successfully updated.'
55
- redirect_to(edit_report_path(@report))
56
- else
57
- format.html { render action: "edit" }
58
- end
59
- end
60
-
61
- def destroy
62
- @report = Report.find params[:id]
63
- @report.destroy
64
- flash[:notice] = 'Report was successfully deleted.'
65
-
66
- redirect_to root_url
67
- end
68
-
69
- def file
70
- dir = params[:dir].to_sym
71
- path = Report::FILE_DIRS[dir] + params[:file].gsub(/\/../,'')
72
- if File.exists?(path)
73
- send_file path, type: "application/pdf", x_sendfile: true, disposition: 'inline'
74
- else
75
- puts "file doesn't exist: #{path}"
76
- end
77
- end
78
-
79
- def form
80
- if params[:id].to_s =~ /^\d+$/
81
- @report = Report.find(params[:id])
82
- elsif Report.respond_to?(params[:id])
83
- @report = Report.find_by_name(params[:id])
84
- else
85
- redirect_to reports_url, notice: 'That report does not exist'
86
- return
87
- end
88
- render "meta_reports/reports/forms/form"
89
- end
90
- end
91
- end
@@ -1,35 +0,0 @@
1
- class MetaReports::Report < MetaReports::Base
2
-
3
- #
4
- # Shared colors. The key is the class name, value is RGB in hex format
5
- #
6
- # Example: "highlight: 'ffcccc'" is 'tr.highlight {background: #ffcccc}' in CSS, and "$highlight: #ffcccc;"" as a SASS variable.
7
- #
8
-
9
- COLORS = {
10
- even: 'efefef',
11
- odd: 'ffffff',
12
- yellow: ['ffffaa', 'ffffcc', 'f9f9a4', 'f9f9c6'],
13
- highlight: '$yellow_1 !important',
14
- }
15
-
16
-
17
- #
18
- # Reports
19
- #
20
-
21
- def self.example_report(params)
22
- {title: 'Example Report', subtitle: 'this is a test report', tables: {'Table 1' => [['One','Two','Three'],[1,2,3]]}}
23
- MetaReports::Data.new do |d|
24
- d.title = 'Example Report'
25
- d.subtitle = 'Of the Testing Kind'
26
- d.description = 'This is a test report.'
27
- d.tables["Table 1"] = MetaReports::Table.new do |t|
28
- t << ['One', 'Two', 'Three']
29
- t << [1, 2, 3]
30
- t << [4, "#{params[:disco]} Moo", 'No Way!']
31
- end
32
- end
33
- end
34
-
35
- end
@@ -1,35 +0,0 @@
1
- class MetaReports::Report
2
-
3
- #
4
- # Shared colors. The key is the class name, value is RGB in hex format
5
- #
6
- # Example: "highlight: 'ffcccc'" is 'tr.highlight {background: #ffcccc}' in CSS, and "$highlight: #ffcccc;"" as a SASS variable.
7
- #
8
-
9
- COLORS = {
10
- even: 'efefef',
11
- odd: 'ffffff',
12
- yellow: ['ffffaa', 'ffffcc', 'f9f9a4', 'f9f9c6'],
13
- highlight: '$yellow_1 !important',
14
- }
15
-
16
-
17
- #
18
- # Reports
19
- #
20
-
21
- def self.example_report(params)
22
- {title: 'Example Report', subtitle: 'this is a test report', tables: {'Table 1' => [['One','Two','Three'],[1,2,3]]}}
23
- MetaReports::Data.new do |d|
24
- d.title = 'Example Report'
25
- d.subtitle = 'Of the Testing Kind'
26
- d.description = 'This is a test report.'
27
- d.tables["Table 1"] = MetaReports::Table.new do |t|
28
- t << ['One', 'Two', 'Three']
29
- t << [1, 2, 3]
30
- t << [4, "#{params[:disco]} Moo", 'No Way!']
31
- end
32
- end
33
- end
34
-
35
- end
@@ -1 +0,0 @@
1
- <%= select_tag :type, options_for_select(['One','Two']), include_blank: true %>
@@ -1 +0,0 @@
1
- <%= render 'meta_reports/reports/templates/default', report: (defined?(report).nil? ? @report : report) %>
@@ -1,28 +0,0 @@
1
- margin = @report[:page_margin] && [*@report[:page_margin]][0,4] || nil
2
- prawn_document(page_layout: @report[:page_orientation] || :portrait, page_size: @report[:page_size] || 'LETTER', margin: margin) do |pdf|
3
-
4
- render :partial => "meta_reports/reports/templates/default_header", :locals => { :pdf => pdf, :title => @report[:title], :subtitle => @report[:subtitle] }
5
- pdf.font_size = @report[:font_size] || 8
6
- if @report[:description]
7
- pdf.move_up 5
8
- pdf.text strip_tags(@report[:description]), align: :center
9
- pdf.move_down 15
10
- end
11
-
12
- table_names = @report[:table_order] || @report[:tables].keys.sort_by {|k| k.to_s}
13
- table_names.each do |table_name|
14
- table = @report[:tables][table_name]
15
- pdf.pad_bottom(25) do
16
- if table[:group]
17
- pdf.group do #if the table is larger than a page this will throw an error
18
- render :partial => 'meta_reports/reports/templates/default_table', :locals => {:pdf => pdf, :title => table_name, :table => table}
19
- end
20
- else
21
- render :partial => 'meta_reports/reports/templates/default_table', :locals => {:pdf => pdf, :title => table_name, :table => table}
22
- end
23
- end
24
- end
25
-
26
- render partial: "meta_reports/reports/templates/default_footer", locals: { pdf: pdf }
27
-
28
- end #prawn document
@@ -1,15 +0,0 @@
1
- module MetaReports
2
- class Engine < ::Rails::Engine
3
- engine_name "meta_reports"
4
- isolate_namespace MetaReports
5
-
6
- require 'axlsx_rails'
7
- require 'prawn_rails'
8
-
9
- # config.to_prepare do
10
- # Dir.glob(Rails.root + "app/decorators/**/*_decorator*.rb").each do |c|
11
- # require_dependency(c)
12
- # end
13
- # end
14
- end
15
- end
@@ -1,91 +0,0 @@
1
- require_dependency "meta_reports/application_controller"
2
-
3
- module MetaReports
4
- class ReportsController < ApplicationController
5
- # remember to add authentication/authorization. E.g:
6
- # before_filter :require_user
7
- # load_and_authorize_resource
8
-
9
- def index
10
- @reports = Report.order("meta_reports_reports.title") || []
11
- end
12
-
13
- def show
14
- if params[:id].to_s =~ /^\d+$/
15
- _report = Report.find(params[:id])
16
- elsif Report.respond_to?(params[:id])
17
- _report = Report.find_by_name(params[:id])
18
- else
19
- redirect_to root_url, notice: 'That report does not exist'
20
- return
21
- end
22
- @report = _report.run(params)
23
- template = {template: "meta_reports/reports/templates/" + (@report[:template] || "default") }
24
-
25
- respond_to do |format|
26
- format.html { render template }
27
- format.pdf { render template }
28
- format.xlsx { render template }
29
- end
30
- _report.view
31
- end
32
-
33
- def new
34
- @report = Report.new
35
- end
36
-
37
- def edit
38
- @report = Report.find params[:id]
39
- end
40
-
41
- def create
42
- @report = Report.new(params[:report])
43
- if @report.save
44
- flash[:notice] = 'Report was successfully created.'
45
- redirect_to(edit_report_path(@report))
46
- else
47
- render action: "new"
48
- end
49
- end
50
-
51
- def update
52
- @report = Report.find params[:id]
53
- if @report.update_attributes(params[:meta_report])
54
- flash[:notice] = 'Report was successfully updated.'
55
- redirect_to(edit_report_path(@report))
56
- else
57
- format.html { render action: "edit" }
58
- end
59
- end
60
-
61
- def destroy
62
- @report = Report.find params[:id]
63
- @report.destroy
64
- flash[:notice] = 'Report was successfully deleted.'
65
-
66
- redirect_to root_url
67
- end
68
-
69
- def file
70
- dir = params[:dir].to_sym
71
- path = Report::FILE_DIRS[dir] + params[:file].gsub(/\/../,'')
72
- if File.exists?(path)
73
- send_file path, type: "application/pdf", x_sendfile: true, disposition: 'inline'
74
- else
75
- puts "file doesn't exist: #{path}"
76
- end
77
- end
78
-
79
- def form
80
- if params[:id].to_s =~ /^\d+$/
81
- @report = Report.find(params[:id])
82
- elsif Report.respond_to?(params[:id])
83
- @report = Report.find_by_name(params[:id])
84
- else
85
- redirect_to reports_url, notice: 'That report does not exist'
86
- return
87
- end
88
- render "meta_reports/reports/forms/form"
89
- end
90
- end
91
- end
@@ -1,34 +0,0 @@
1
- class MetaReports::Report < MetaReports::Base
2
-
3
- #
4
- # Shared colors. The key is the class name, value is RGB in hex format
5
- #
6
- # Example: "highlight: 'ffcccc'" is 'tr.highlight {background: #ffcccc}' in CSS, and "$highlight: #ffcccc;"" as a SASS variable.
7
- #
8
-
9
- COLORS = {
10
- even: 'efefef',
11
- odd: 'ffffff',
12
- yellow: ['ffffaa', 'ffffcc', 'f9f9a4', 'f9f9c6'],
13
- highlight: '$yellow_1 !important',
14
- }
15
-
16
-
17
- #
18
- # Reports
19
- #
20
-
21
- def self.moo(params)
22
- MetaReports::Data.new do |d|
23
- d.title = 'Le Moo'
24
- d.subtitle = 'Ahem'
25
- d.tables["The Big Moo"] = MetaReports::Table.new do |t|
26
- t << ['Number', 'Title', 'Hey']
27
- t << [1, 'Ode to Moo', 'Ow']
28
- t << [2, 'Odious Moo', 'Eww']
29
- t << [3, "#{params[:moo_type]} Moo", 'No Way!']
30
- end
31
- end
32
- end
33
-
34
- end
@@ -1,61 +0,0 @@
1
- <%= form_for(@report) do |f| %>
2
- <% if @report.errors.any? %>
3
- <div id="error_explanation">
4
- <h2><%= pluralize(@report.errors.count, "error") %> prohibited this report from being saved:</h2>
5
-
6
- <ul>
7
- <% @report.errors.full_messages.each do |msg| %>
8
- <li><%= msg %></li>
9
- <% end %>
10
- </ul>
11
- </div>
12
- <% end %>
13
-
14
- <div class="field">
15
- <%= f.label :name %><br />
16
- <%= f.text_field :name %>
17
- </div>
18
- <div class="field">
19
- <%= f.label :description %><br />
20
- <%= f.text_area :description %>
21
- </div>
22
- <div class="field">
23
- <%= f.label :title %><br />
24
- <%= f.text_field :title %>
25
- </div>
26
- <div class="field">
27
- <%= f.label :group %><br />
28
- <%= f.text_field :group %>
29
- </div>
30
- <div class="field">
31
- <%= f.label :direct %><br />
32
- <%= f.check_box :direct %>
33
- </div>
34
- <div class="field">
35
- <%= f.label :views %><br />
36
- <%= f.number_field :views, disabled: true %>
37
- </div>
38
- <div class="field">
39
- <%= f.label :target %><br />
40
- <%= f.text_field :target %>
41
- </div>
42
- <div class="field">
43
- <% formats = @report.formats %>
44
- <% if current_user.has_any_role?(:admin, :manager) %>
45
- <% for format in MetaReports::Base::FORMATS.sort %>
46
- <%= check_box_tag "report[formats][]", format, formats.include?(format) %>
47
- <span class='bold'><%= format.humanize %></span>
48
- <br />
49
- <% end %>
50
- <% else %>
51
- <% for format in formats %>
52
- * <span class='bold'><%= role.humanize %></span>
53
- <br />
54
- <% end %>
55
- <% end %>
56
- <%= hidden_field_tag "report[formats][]", "" %>
57
- </div>
58
- <div class="actions">
59
- <%= f.submit %>
60
- </div>
61
- <% end %>