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.
- checksums.yaml +4 -4
- data/README.md +26 -68
- data/app/models/meta_reports/color.rb +16 -0
- data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default.html.erb +1 -1
- data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_footer.pdf.prawn +0 -0
- data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_header.pdf.prawn +0 -0
- data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_header.xlsx.axlsx +0 -0
- data/{spec/dummy/app/views/meta_reports/reports/templates → app/views/meta_reports}/_default_table.html.erb +3 -3
- data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/_default_table.pdf.prawn +0 -0
- data/app/views/meta_reports/default.html.erb +1 -0
- data/app/views/meta_reports/default.pdf.prawn +37 -0
- data/{lib/generators/meta_reports/templates/views/templates → app/views/meta_reports}/default.xlsx.axlsx +1 -1
- data/lib/generators/meta_reports/install_templates_generator.rb +1 -6
- data/lib/meta_reports.rb +7 -1
- data/{app/models → lib}/meta_reports/data.rb +9 -0
- data/{app/helpers/meta_reports/reports_helper.rb → lib/meta_reports/helper.rb} +7 -6
- data/lib/meta_reports/railtie.rb +7 -0
- data/{app/models → lib}/meta_reports/table.rb +4 -0
- data/lib/meta_reports/version.rb +1 -1
- data/lib/tasks/meta_reports_tasks.rake +2 -2
- data/spec/ci.sh +1 -1
- data/spec/dummy/Rakefile +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +0 -0
- data/spec/dummy/app/assets/stylesheets/application.css +0 -0
- data/spec/dummy/app/controllers/application_controller.rb +0 -0
- data/spec/dummy/app/controllers/home_controller.rb +0 -0
- data/spec/dummy/app/controllers/reports_controller.rb +87 -0
- data/spec/dummy/app/helpers/application_helper.rb +0 -0
- data/spec/dummy/app/models/meta_reports/color.rb +16 -0
- data/{app/models/meta_reports/base.rb → spec/dummy/app/models/report.rb} +15 -26
- data/spec/dummy/app/views/home/index.html.erb +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +0 -0
- data/spec/dummy/app/views/meta_reports/{reports/templates/_default.html.erb → _default.html.erb} +2 -2
- data/spec/dummy/app/views/meta_reports/{reports/templates/_default_footer.pdf.prawn → _default_footer.pdf.prawn} +0 -0
- data/spec/dummy/app/views/meta_reports/{reports/templates/_default_header.pdf.prawn → _default_header.pdf.prawn} +0 -0
- data/spec/dummy/app/views/meta_reports/{reports/templates/_default_header.xlsx.axlsx → _default_header.xlsx.axlsx} +0 -0
- data/{lib/generators/meta_reports/templates/views/templates → spec/dummy/app/views/meta_reports}/_default_table.html.erb +3 -3
- data/spec/dummy/app/views/meta_reports/{reports/templates/_default_table.pdf.prawn → _default_table.pdf.prawn} +0 -0
- data/spec/dummy/app/views/meta_reports/default.html.erb +1 -0
- data/spec/dummy/app/views/meta_reports/default.pdf.prawn +37 -0
- data/spec/dummy/app/views/meta_reports/{reports/templates/default.xlsx.axlsx → default.xlsx.axlsx} +1 -1
- data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/_form.html.erb +1 -1
- data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/edit.html.erb +1 -1
- data/spec/dummy/app/views/{meta_reports/reports → reports}/forms/_form_moo.html.erb +0 -0
- data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/forms/form.html.erb +0 -0
- data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/index.html.erb +0 -0
- data/{lib/generators/meta_reports/templates/views → spec/dummy/app/views/reports}/new.html.erb +0 -0
- data/spec/dummy/config.ru +0 -0
- data/spec/dummy/config/application.rb +0 -0
- data/spec/dummy/config/boot.rb +0 -0
- data/spec/dummy/config/database.yml +0 -0
- data/spec/dummy/config/environment.rb +0 -0
- data/spec/dummy/config/environments/development.rb +0 -0
- data/spec/dummy/config/environments/production.rb +0 -0
- data/spec/dummy/config/environments/test.rb +0 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/dummy/config/initializers/inflections.rb +0 -0
- data/spec/dummy/config/initializers/mime_types.rb +0 -0
- data/spec/dummy/config/initializers/secret_token.rb +0 -0
- data/spec/dummy/config/initializers/session_store.rb +0 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
- data/spec/dummy/config/locales/en.yml +0 -0
- data/spec/dummy/config/routes.rb +2 -1
- data/spec/dummy/config/routes_empty.rb +0 -0
- data/spec/dummy/config/routes_original.rb +0 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20130801071213_for_testing_only.rb +1 -2
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +5 -24939
- data/spec/dummy/log/test.log +3029 -0
- data/spec/dummy/public/404.html +0 -0
- data/spec/dummy/public/422.html +0 -0
- data/spec/dummy/public/500.html +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/cache/assets/C9B/140/sprockets%2F805babf865ce32228222420a522c7b36 +0 -0
- data/spec/dummy/tmp/cache/assets/CBD/2B0/sprockets%2F9e22e937dd267c81a146665f15471b8e +0 -0
- data/spec/dummy/tmp/cache/assets/CD0/810/sprockets%2Fe858c95fa595e319dac0065d49982967 +0 -0
- data/spec/dummy/tmp/cache/assets/CD0/AC0/sprockets%2F1d341d7a2fc1328567d4b23e0809b2e2 +0 -0
- data/spec/dummy/tmp/cache/assets/CD1/A80/sprockets%2F25be813f3840b407d514e03973fbac40 +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/CDC/FB0/sprockets%2F16b037c6f739184fc67a82dc140a3b83 +0 -0
- data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/D3D/EB0/sprockets%2F2d47bd3108d9abbb12c0497e36d9674d +0 -0
- data/spec/dummy/tmp/cache/assets/D40/8F0/sprockets%2F290aea2004dfecfc76f42e48970f1484 +0 -0
- data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/D61/310/sprockets%2Fc168b1c9be3e38ac1c8403a3074b5b8c +0 -0
- data/spec/dummy/tmp/cache/assets/D74/AE0/sprockets%2F9ad0425db5cfa16a9426f7b1a7958d7d +0 -0
- data/spec/dummy/tmp/cache/assets/D98/270/sprockets%2F0b7ba158ff62bbbb378d6bea80680c63 +0 -0
- data/spec/dummy/tmp/cache/assets/DDC/340/sprockets%2F8ad88a197ff3462ea8dd3ad7b1e2b7e9 +0 -0
- data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/DF1/CD0/sprockets%2F3b66bd14b91d4fb176ce0a30ab5fd9bf +0 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/E5A/EF0/sprockets%2Fb0d5af721ea37c98fd4bccd8e1e5c6ab +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/cd99a83fa417594c8715ee09005855a11886141c/metareports_color_variables.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/cd99a83fa417594c8715ee09005855a11886141c/metareports_colors.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/0b7ba158ff62bbbb378d6bea80680c63 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/16b037c6f739184fc67a82dc140a3b83 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/1d341d7a2fc1328567d4b23e0809b2e2 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/25be813f3840b407d514e03973fbac40 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/290aea2004dfecfc76f42e48970f1484 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2d47bd3108d9abbb12c0497e36d9674d +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2e7ca7e84b7c22471bbca0e4504a2597 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/34d1d79bff5dc36e7f78550df20eec85 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/366f779b10b9268d7594b4833cac1629 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3b66bd14b91d4fb176ce0a30ab5fd9bf +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3f5939c6c02f0f902d77ac93858eaa55 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/76da4521ccd2724b5e04ce969514f6f7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7d10cf1420e7efe789dd0a850b92fe72 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7f26f47a9eab416ae0e730d60088b9ef +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/805babf865ce32228222420a522c7b36 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/89b49044c6f7d85bbb660b73a9a4e181 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/8ad88a197ff3462ea8dd3ad7b1e2b7e9 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/9e22e937dd267c81a146665f15471b8e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b0d5af721ea37c98fd4bccd8e1e5c6ab +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e858c95fa595e319dac0065d49982967 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/capybara/capybara-201310282335386823859116.html +0 -0
- data/spec/dummy/tmp/capybara/capybara-201310282336101820292402.html +0 -0
- data/spec/dummy/tmp/capybara/capybara-201310282338439674392250.html +0 -0
- data/spec/dummy/tmp/capybara/capybara-201310282350595445887206.html +0 -0
- data/spec/dummy/tmp/capybara/capybara-201310282351429822980920.html +0 -0
- data/spec/dummy/tmp/capybara/capybara-201310282354523302677005.html +0 -0
- data/spec/features/dummy_spec.rb +8 -8
- data/spec/generators/install_templates_spec.rb +14 -14
- data/spec/models/data_spec.rb +0 -0
- data/spec/models/table_spec.rb +0 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/support/utilities.rb +0 -0
- data/spec/tasks/meta_reports_rake_spec.rb +0 -1
- metadata +82 -76
- data/app/assets/images/meta_reports/print.png +0 -0
- data/app/assets/images/meta_reports/spreadsheet.png +0 -0
- data/app/assets/javascripts/meta_reports/reports.js +0 -2
- data/app/controllers/meta_reports/application_controller.rb +0 -4
- data/config/routes.rb +0 -11
- data/db/migrate/20130801071213_create_meta_reports_reports.rb +0 -17
- data/lib/generators/meta_reports/install_engine_generator.rb +0 -44
- data/lib/generators/meta_reports/templates/controllers/reports_controller.rb +0 -91
- data/lib/generators/meta_reports/templates/models/report.rb +0 -35
- data/lib/generators/meta_reports/templates/models/report_non_activerecord.rb +0 -35
- data/lib/generators/meta_reports/templates/views/forms/_form_example.html.erb +0 -1
- data/lib/generators/meta_reports/templates/views/templates/default.html.erb +0 -1
- data/lib/generators/meta_reports/templates/views/templates/default.pdf.prawn +0 -28
- data/lib/meta_reports/engine.rb +0 -15
- data/spec/dummy/app/controllers/meta_reports/reports_controller.rb +0 -91
- data/spec/dummy/app/models/meta_reports/report.rb +0 -34
- data/spec/dummy/app/views/meta_reports/reports/_form.html.erb +0 -61
- data/spec/dummy/app/views/meta_reports/reports/edit.html.erb +0 -6
- data/spec/dummy/app/views/meta_reports/reports/forms/form.html.erb +0 -17
- data/spec/dummy/app/views/meta_reports/reports/index.html.erb +0 -36
- data/spec/dummy/app/views/meta_reports/reports/new.html.erb +0 -5
- data/spec/dummy/app/views/meta_reports/reports/templates/default.html.erb +0 -1
- data/spec/dummy/app/views/meta_reports/reports/templates/default.pdf.prawn +0 -26
- data/spec/generators/install_engine_spec.rb +0 -61
|
Binary file
|
|
Binary file
|
data/config/routes.rb
DELETED
|
@@ -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
|
data/lib/meta_reports/engine.rb
DELETED
|
@@ -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 %>
|