meta_reports 0.0.5 → 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 (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 %>