prosperity 0.0.5 → 0.0.6
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/app/assets/javascripts/prosperity/application.js.coffee +2 -1
- data/app/assets/javascripts/prosperity/graph.js.coffee +74 -59
- data/app/assets/stylesheets/prosperity/application.css.scss +2 -1
- data/app/assets/stylesheets/prosperity/{graph.css → graph.css.scss} +8 -0
- data/app/controllers/prosperity/dashboards_controller.rb +14 -3
- data/app/controllers/prosperity/metrics_controller.rb +6 -1
- data/app/helpers/prosperity/application_helper.rb +12 -0
- data/app/views/layouts/prosperity/application.html.erb +2 -6
- data/app/views/prosperity/dashboards/edit.html.erb +5 -0
- data/app/views/prosperity/dashboards/index.html.erb +23 -9
- data/app/views/prosperity/dashboards/show.html.erb +6 -2
- data/lib/prosperity/extractors/base.rb +5 -1
- data/lib/prosperity/metric.rb +4 -0
- data/lib/prosperity/metrics/option.rb +4 -0
- data/lib/prosperity/version.rb +1 -1
- data/spec/controllers/prosperity/dashboards_controller_spec.rb +12 -1
- data/spec/controllers/prosperity/metrics_controller_spec.rb +6 -0
- data/spec/dummy/log/development.log +26773 -0
- data/spec/dummy/log/test.log +173 -0
- data/spec/dummy/tmp/cache/assets/development/sass/34a577735054231563e7022ea73e1468db9203ba/application.css.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/34a577735054231563e7022ea73e1468db9203ba/graph.css.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/141de7c3ad5525ad5025adc93847a47a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/197492ed379339e17a0f5d01d3b01b8c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1c55cf24465f311353197ce336df0178 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/204a30f61e29169229793bc31dd34207 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/210050da208fb75a75b701bfa4e8470f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/27a59e08207d3ae723f2b2b3d22264c3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/362e15a54951b12cfa5c6ad2c3dda49c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3be1fec30b381948e1e84408642a618f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3e6afb4834057e5b5c7e593d0894a8bb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/526534cd50ee53edadd65c1df71398fc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5f7660fd92b228b2de09f92d54ca6b49 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6882b260ae69f1594eff540d803e5ac3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7eb9384654be8c4fc859b9736c0da9d0 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/828a046f0e7dc2dad0eecfe49d31e14d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/872d17fb6fb4675e5c24b21bdd90bc86 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8ac3ddd03a0ca38df655faf85c8a054d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8c8bcb1384dcbb664e642754f197c899 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a2b14d5c46db32da9183354fb3fcd0bf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a6d6196cfd275dea0718553a95f997a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/aacfd4457155e8607cbe66d5fdaf11b3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d94883bc533251c5e4b4821c716ae300 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e0d03169ae2f0680d574ca2e19129450 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e76f5e84c165c22920d69c5dafce2fe1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f4648036e284d9aa3468f4f7b9bbb967 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/34a577735054231563e7022ea73e1468db9203ba/application.css.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/34a577735054231563e7022ea73e1468db9203ba/graph.css.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/141de7c3ad5525ad5025adc93847a47a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/197492ed379339e17a0f5d01d3b01b8c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/1c55cf24465f311353197ce336df0178 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/210050da208fb75a75b701bfa4e8470f +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/27a59e08207d3ae723f2b2b3d22264c3 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/362e15a54951b12cfa5c6ad2c3dda49c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3be1fec30b381948e1e84408642a618f +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3e6afb4834057e5b5c7e593d0894a8bb +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6882b260ae69f1594eff540d803e5ac3 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7eb9384654be8c4fc859b9736c0da9d0 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a2b14d5c46db32da9183354fb3fcd0bf +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a6d6196cfd275dea0718553a95f997a5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/aacfd4457155e8607cbe66d5fdaf11b3 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d94883bc533251c5e4b4821c716ae300 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e76f5e84c165c22920d69c5dafce2fe1 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f4648036e284d9aa3468f4f7b9bbb967 +0 -0
- data/vendor/assets/javascripts/morris.min-0.5.js +7 -0
- data/vendor/assets/javascripts/raphael-min-2.1.2.js +11 -0
- data/vendor/assets/stylesheets/morris.css +2 -0
- metadata +56 -4
- data/vendor/assets/javascripts/highcharts.js +0 -285
data/spec/dummy/log/test.log
CHANGED
|
@@ -120109,3 +120109,176 @@ Completed 200 OK in 3ms (Views: 2.8ms | ActiveRecord: 0.0ms)
|
|
|
120109
120109
|
[1m[35m (3.6ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120110
120110
|
[1m[36m (6.2ms)[0m [1mDROP TABLE "users"[0m
|
|
120111
120111
|
[1m[35m (5.1ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120112
|
+
[1m[36m (18.8ms)[0m [1mDROP TABLE "users"[0m
|
|
120113
|
+
[1m[35m (40.0ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120114
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120115
|
+
Parameters: {"id"=>"blah"}
|
|
120116
|
+
Filter chain halted as :get_metric rendered or redirected
|
|
120117
|
+
Completed 404 Not Found in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120118
|
+
[1m[36m (6.0ms)[0m [1mDROP TABLE "users"[0m
|
|
120119
|
+
[1m[35m (3.6ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120120
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120121
|
+
Parameters: {"id"=>"blah"}
|
|
120122
|
+
Filter chain halted as :get_metric rendered or redirected
|
|
120123
|
+
Completed 404 Not Found in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120124
|
+
[1m[36m (2.3ms)[0m [1mDROP TABLE "users"[0m
|
|
120125
|
+
[1m[35m (5.1ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120126
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120127
|
+
Parameters: {"id"=>"blah"}
|
|
120128
|
+
Filter chain halted as :get_metric rendered or redirected
|
|
120129
|
+
Completed 404 Not Found in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120130
|
+
[1m[36m (6.2ms)[0m [1mDROP TABLE "users"[0m
|
|
120131
|
+
[1m[35m (4.5ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120132
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120133
|
+
Parameters: {"extractor"=>"does-not-exist", "id"=>"UsersMetric"}
|
|
120134
|
+
Completed 500 Internal Server Error in 6ms
|
|
120135
|
+
[1m[36m (2.5ms)[0m [1mDROP TABLE "users"[0m
|
|
120136
|
+
[1m[35m (4.2ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120137
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120138
|
+
Parameters: {"extractor"=>"does-not-exist", "id"=>"UsersMetric"}
|
|
120139
|
+
Completed 500 Internal Server Error in 4ms
|
|
120140
|
+
[1m[36m (2.2ms)[0m [1mDROP TABLE "users"[0m
|
|
120141
|
+
[1m[35m (5.6ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120142
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120143
|
+
Parameters: {"extractor"=>"does-not-exist", "id"=>"UsersMetric"}
|
|
120144
|
+
Completed 500 Internal Server Error in 7ms
|
|
120145
|
+
[1m[36m (2.0ms)[0m [1mDROP TABLE "users"[0m
|
|
120146
|
+
[1m[35m (3.4ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120147
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120148
|
+
Parameters: {"extractor"=>"does-not-exist", "id"=>"UsersMetric"}
|
|
120149
|
+
Completed 404 Not Found in 3ms (Views: 0.3ms | ActiveRecord: 0.0ms)
|
|
120150
|
+
[1m[36m (2.4ms)[0m [1mDROP TABLE "users"[0m
|
|
120151
|
+
[1m[35m (12.8ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120152
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120153
|
+
Parameters: {"period"=>"week", "start_time"=>2014-05-16 00:00:00 -0700, "end_time"=>2014-05-16 23:59:59 -0700, "id"=>"UsersMetric"}
|
|
120154
|
+
[1m[36m (1.8ms)[0m [1mSELECT COUNT(*) AS count_all, to_char(created_at, 'YYYY-WW') AS to_char_created_at_yyyy_ww FROM "users" WHERE (created_at BETWEEN '2014-05-12 07:00:00.000000' AND '2014-05-19 06:59:59.999999') GROUP BY to_char(created_at, 'YYYY-WW')[0m
|
|
120155
|
+
Completed 200 OK in 69ms (Views: 0.3ms | ActiveRecord: 56.6ms)
|
|
120156
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120157
|
+
Parameters: {"extractor"=>"does-not-exist", "id"=>"UsersMetric"}
|
|
120158
|
+
Completed 404 Not Found in 0ms (Views: 0.1ms | ActiveRecord: 0.0ms)
|
|
120159
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120160
|
+
Parameters: {"extractor"=>"total", "id"=>"UsersMetric"}
|
|
120161
|
+
Completed 200 OK in 1ms (Views: 0.1ms | ActiveRecord: 0.0ms)
|
|
120162
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120163
|
+
Parameters: {"option"=>"with_1", "id"=>"UsersMetric"}
|
|
120164
|
+
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120165
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120166
|
+
Parameters: {"id"=>"UsersMetric"}
|
|
120167
|
+
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120168
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120169
|
+
Parameters: {"id"=>"blah"}
|
|
120170
|
+
Filter chain halted as :get_metric rendered or redirected
|
|
120171
|
+
Completed 404 Not Found in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120172
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120173
|
+
Parameters: {"id"=>"UsersMetric"}
|
|
120174
|
+
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
|
|
120175
|
+
Processing by Prosperity::MetricsController#data as JSON
|
|
120176
|
+
Parameters: {"period"=>"week", "id"=>"UsersMetric"}
|
|
120177
|
+
[1m[35m (0.2ms)[0m SELECT COUNT(*) AS count_all, to_char(created_at, 'YYYY-WW') AS to_char_created_at_yyyy_ww FROM "users" WHERE (created_at BETWEEN '2014-02-10 08:00:00.000000' AND '2014-05-19 06:59:59.999999') GROUP BY to_char(created_at, 'YYYY-WW')
|
|
120178
|
+
Completed 200 OK in 2ms (Views: 0.2ms | ActiveRecord: 0.2ms)
|
|
120179
|
+
Processing by Prosperity::MetricsController#show as HTML
|
|
120180
|
+
Parameters: {"id"=>"UsersMetric"}
|
|
120181
|
+
Rendered /Users/simon/Documents/rainforest/prosperity/app/views/prosperity/shared/_date_range.html.erb (0.7ms)
|
|
120182
|
+
Completed 200 OK in 1552ms (Views: 1551.4ms | ActiveRecord: 0.0ms)
|
|
120183
|
+
Processing by Prosperity::MetricsController#show as JSON
|
|
120184
|
+
Parameters: {"id"=>"UsersMetric"}
|
|
120185
|
+
Completed 200 OK in 2ms (Views: 0.4ms | ActiveRecord: 0.0ms)
|
|
120186
|
+
Processing by Prosperity::MetricsController#index as HTML
|
|
120187
|
+
Completed 200 OK in 10ms (Views: 5.0ms | ActiveRecord: 0.0ms)
|
|
120188
|
+
[1m[36m (41.0ms)[0m [1mDROP TABLE "users"[0m
|
|
120189
|
+
[1m[35m (41.0ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120190
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120191
|
+
[1m[35mSQL (24.6ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:49:35.534270"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:49:35.534270"]]
|
|
120192
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120193
|
+
[1m[36m (6.3ms)[0m [1mDROP TABLE "users"[0m
|
|
120194
|
+
[1m[35m (4.3ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120195
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120196
|
+
[1m[35mSQL (0.3ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:49:49.673334"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:49:49.673334"]]
|
|
120197
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120198
|
+
Processing by Prosperity::DashboardsController#destroy as HTML
|
|
120199
|
+
Parameters: {"id"=>"259"}
|
|
120200
|
+
Completed 500 Internal Server Error in 7ms
|
|
120201
|
+
[1m[36m (2.2ms)[0m [1mDROP TABLE "users"[0m
|
|
120202
|
+
[1m[35m (3.7ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120203
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
|
120204
|
+
[1m[35mSQL (0.5ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:50:04.588863"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:50:04.588863"]]
|
|
120205
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120206
|
+
Processing by Prosperity::DashboardsController#destroy as HTML
|
|
120207
|
+
Parameters: {"id"=>"260"}
|
|
120208
|
+
Redirected to http://test.host/prosperity/dashboards
|
|
120209
|
+
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
|
|
120210
|
+
[1m[36m (2.0ms)[0m [1mDROP TABLE "users"[0m
|
|
120211
|
+
[1m[35m (4.8ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120212
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
|
120213
|
+
[1m[35mSQL (0.4ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:50:14.046680"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:50:14.046680"]]
|
|
120214
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120215
|
+
Processing by Prosperity::DashboardsController#destroy as HTML
|
|
120216
|
+
Parameters: {"id"=>"261"}
|
|
120217
|
+
Redirected to http://test.host/prosperity/dashboards
|
|
120218
|
+
Completed 302 Found in 0ms (ActiveRecord: 0.0ms)
|
|
120219
|
+
[1m[36m (6.3ms)[0m [1mDROP TABLE "users"[0m
|
|
120220
|
+
[1m[35m (3.9ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120221
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120222
|
+
[1m[35mSQL (0.5ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:50:37.653884"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:50:37.653884"]]
|
|
120223
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120224
|
+
Processing by Prosperity::DashboardsController#destroy as HTML
|
|
120225
|
+
Parameters: {"id"=>"262"}
|
|
120226
|
+
Redirected to http://test.host/prosperity/dashboards
|
|
120227
|
+
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
|
|
120228
|
+
[1m[35mProsperity::Dashboard Load (19.4ms)[0m SELECT "prosperity_dashboards".* FROM "prosperity_dashboards" WHERE "prosperity_dashboards"."id" = 262 LIMIT 1
|
|
120229
|
+
[1m[36m (2.2ms)[0m [1mDROP TABLE "users"[0m
|
|
120230
|
+
[1m[35m (3.7ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120231
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120232
|
+
[1m[35mSQL (0.3ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:51:36.452498"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:51:36.452498"]]
|
|
120233
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120234
|
+
Processing by Prosperity::DashboardsController#destroy as HTML
|
|
120235
|
+
Parameters: {"id"=>"263"}
|
|
120236
|
+
[1m[35mProsperity::Dashboard Load (0.3ms)[0m SELECT "prosperity_dashboards".* FROM "prosperity_dashboards" WHERE "prosperity_dashboards"."id" = $1 LIMIT 1 [["id", 263]]
|
|
120237
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120238
|
+
[1m[35mSQL (0.2ms)[0m DELETE FROM "prosperity_dashboards" WHERE "prosperity_dashboards"."id" = $1 [["id", 263]]
|
|
120239
|
+
[1m[36m (0.2ms)[0m [1mCOMMIT[0m
|
|
120240
|
+
Redirected to http://test.host/prosperity/dashboards
|
|
120241
|
+
Completed 302 Found in 4ms (ActiveRecord: 0.8ms)
|
|
120242
|
+
[1m[35mProsperity::Dashboard Load (0.6ms)[0m SELECT "prosperity_dashboards".* FROM "prosperity_dashboards" WHERE "prosperity_dashboards"."id" = 263 LIMIT 1
|
|
120243
|
+
[1m[36m (2.5ms)[0m [1mDROP TABLE "users"[0m
|
|
120244
|
+
[1m[35m (5.2ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120245
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
|
120246
|
+
[1m[35mSQL (0.3ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:59:38.717593"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:59:38.717593"]]
|
|
120247
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120248
|
+
[1m[35m (0.3ms)[0m SELECT COUNT(*) FROM "prosperity_dashboards"
|
|
120249
|
+
Processing by Prosperity::DashboardsController#create as HTML
|
|
120250
|
+
Parameters: {"dashboard"=>{"title"=>"test"}}
|
|
120251
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120252
|
+
[1m[35mSQL (0.2ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:59:38.727412"], ["default", "f"], ["title", "test"], ["updated_at", "2014-05-16 20:59:38.727412"]]
|
|
120253
|
+
[1m[36m (6.0ms)[0m [1mCOMMIT[0m
|
|
120254
|
+
Redirected to http://test.host/prosperity/dashboards
|
|
120255
|
+
Completed 302 Found in 8ms (ActiveRecord: 6.3ms)
|
|
120256
|
+
[1m[35m (0.2ms)[0m SELECT COUNT(*) FROM "prosperity_dashboards"
|
|
120257
|
+
[1m[36m (6.2ms)[0m [1mDROP TABLE "users"[0m
|
|
120258
|
+
[1m[35m (3.7ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120259
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120260
|
+
[1m[35mSQL (0.4ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:59:52.316146"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 20:59:52.316146"]]
|
|
120261
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120262
|
+
[1m[35m (0.3ms)[0m SELECT COUNT(*) FROM "prosperity_dashboards"
|
|
120263
|
+
Processing by Prosperity::DashboardsController#create as HTML
|
|
120264
|
+
Parameters: {"dashboard"=>{"title"=>"test"}}
|
|
120265
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120266
|
+
[1m[35mSQL (0.2ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 20:59:52.326375"], ["default", "f"], ["title", "test"], ["updated_at", "2014-05-16 20:59:52.326375"]]
|
|
120267
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120268
|
+
Redirected to http://test.host/prosperity/dashboards
|
|
120269
|
+
Completed 302 Found in 2ms (ActiveRecord: 0.6ms)
|
|
120270
|
+
[1m[35m (0.2ms)[0m SELECT COUNT(*) FROM "prosperity_dashboards"
|
|
120271
|
+
[1m[36m (6.3ms)[0m [1mDROP TABLE "users"[0m
|
|
120272
|
+
[1m[35m (21.4ms)[0m CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "name" character varying(255), "value" integer, "created_at" timestamp, "updated_at" timestamp)
|
|
120273
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120274
|
+
[1m[35mSQL (0.4ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 21:00:05.669834"], ["default", "f"], ["title", "My Dashboard"], ["updated_at", "2014-05-16 21:00:05.669834"]]
|
|
120275
|
+
[1m[36m (0.4ms)[0m [1mCOMMIT[0m
|
|
120276
|
+
[1m[35m (0.2ms)[0m SELECT COUNT(*) FROM "prosperity_dashboards"
|
|
120277
|
+
Processing by Prosperity::DashboardsController#create as HTML
|
|
120278
|
+
Parameters: {"dashboard"=>{"title"=>"test"}}
|
|
120279
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
|
120280
|
+
[1m[35mSQL (0.3ms)[0m INSERT INTO "prosperity_dashboards" ("created_at", "default", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-16 21:00:05.679169"], ["default", "f"], ["title", "test"], ["updated_at", "2014-05-16 21:00:05.679169"]]
|
|
120281
|
+
[1m[36m (0.3ms)[0m [1mCOMMIT[0m
|
|
120282
|
+
Redirected to http://test.host/prosperity/dashboards/269/edit
|
|
120283
|
+
Completed 302 Found in 2ms (ActiveRecord: 0.6ms)
|
|
120284
|
+
[1m[35m (0.2ms)[0m SELECT COUNT(*) FROM "prosperity_dashboards"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/spec/dummy/tmp/cache/assets/test/sass/34a577735054231563e7022ea73e1468db9203ba/graph.css.scssc
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* @license
|
|
2
|
+
morris.js v0.5.0
|
|
3
|
+
Copyright 2014 Olly Smith All rights reserved.
|
|
4
|
+
Licensed under the BSD-2-Clause License.
|
|
5
|
+
*/
|
|
6
|
+
(function(){var a,b,c,d,e=[].slice,f=function(a,b){return function(){return a.apply(b,arguments)}},g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},i=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=window.Morris={},a=jQuery,b.EventEmitter=function(){function a(){}return a.prototype.on=function(a,b){return null==this.handlers&&(this.handlers={}),null==this.handlers[a]&&(this.handlers[a]=[]),this.handlers[a].push(b),this},a.prototype.fire=function(){var a,b,c,d,f,g,h;if(c=arguments[0],a=2<=arguments.length?e.call(arguments,1):[],null!=this.handlers&&null!=this.handlers[c]){for(g=this.handlers[c],h=[],d=0,f=g.length;f>d;d++)b=g[d],h.push(b.apply(null,a));return h}},a}(),b.commas=function(a){var b,c,d,e;return null!=a?(d=0>a?"-":"",b=Math.abs(a),c=Math.floor(b).toFixed(0),d+=c.replace(/(?=(?:\d{3})+$)(?!^)/g,","),e=b.toString(),e.length>c.length&&(d+=e.slice(c.length)),d):"-"},b.pad2=function(a){return(10>a?"0":"")+a},b.Grid=function(c){function d(b){this.resizeHandler=f(this.resizeHandler,this);var c=this;if(this.el="string"==typeof b.element?a(document.getElementById(b.element)):a(b.element),null==this.el||0===this.el.length)throw new Error("Graph container element not found");"static"===this.el.css("position")&&this.el.css("position","relative"),this.options=a.extend({},this.gridDefaults,this.defaults||{},b),"string"==typeof this.options.units&&(this.options.postUnits=b.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.selectFrom=null,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(a){var b,d,e,f,g;return d=c.el.offset(),g=a.pageX-d.left,c.selectFrom?(b=c.data[c.hitTest(Math.min(g,c.selectFrom))]._x,e=c.data[c.hitTest(Math.max(g,c.selectFrom))]._x,f=e-b,c.selectionRect.attr({x:b,width:f})):c.fire("hovermove",g,a.pageY-d.top)}),this.el.bind("mouseleave",function(){return c.selectFrom&&(c.selectionRect.hide(),c.selectFrom=null),c.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(a){var b,d;return d=a.originalEvent.touches[0]||a.originalEvent.changedTouches[0],b=c.el.offset(),c.fire("hover",d.pageX-b.left,d.pageY-b.top),d}),this.el.bind("click",function(a){var b;return b=c.el.offset(),c.fire("gridclick",a.pageX-b.left,a.pageY-b.top)}),this.options.rangeSelect&&(this.selectionRect=this.raphael.rect(0,0,0,this.el.innerHeight()).attr({fill:this.options.rangeSelectColor,stroke:!1}).toBack().hide(),this.el.bind("mousedown",function(a){var b;return b=c.el.offset(),c.startRange(a.pageX-b.left)}),this.el.bind("mouseup",function(a){var b;return b=c.el.offset(),c.endRange(a.pageX-b.left),c.fire("hovermove",a.pageX-b.left,a.pageY-b.top)})),this.options.resize&&a(window).bind("resize",function(){return null!=c.timeoutId&&window.clearTimeout(c.timeoutId),c.timeoutId=window.setTimeout(c.resizeHandler,100)}),this.postInit&&this.postInit()}return h(d,c),d.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"],rangeSelect:null,rangeSelectColor:"#eef",resize:!1},d.prototype.setData=function(a,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;return null==c&&(c=!0),this.options.data=a,null==a||0===a.length?(this.data=[],this.raphael.clear(),null!=this.hover&&this.hover.hide(),void 0):(o=this.cumulative?0:null,p=this.cumulative?0:null,this.options.goals.length>0&&(h=Math.min.apply(Math,this.options.goals),g=Math.max.apply(Math,this.options.goals),p=null!=p?Math.min(p,h):h,o=null!=o?Math.max(o,g):g),this.data=function(){var c,d,g;for(g=[],f=c=0,d=a.length;d>c;f=++c)j=a[f],i={src:j},i.label=j[this.options.xkey],this.options.parseTime?(i.x=b.parseDate(i.label),this.options.dateFormat?i.label=this.options.dateFormat(i.x):"number"==typeof i.label&&(i.label=new Date(i.label).toString())):(i.x=f,this.options.xLabelFormat&&(i.label=this.options.xLabelFormat(i))),l=0,i.y=function(){var a,b,c,d;for(c=this.options.ykeys,d=[],e=a=0,b=c.length;b>a;e=++a)n=c[e],q=j[n],"string"==typeof q&&(q=parseFloat(q)),null!=q&&"number"!=typeof q&&(q=null),null!=q&&(this.cumulative?l+=q:null!=o?(o=Math.max(q,o),p=Math.min(q,p)):o=p=q),this.cumulative&&null!=l&&(o=Math.max(l,o),p=Math.min(l,p)),d.push(q);return d}.call(this),g.push(i);return g}.call(this),this.options.parseTime&&(this.data=this.data.sort(function(a,b){return(a.x>b.x)-(b.x>a.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.events.length>0&&(this.events=this.options.parseTime?function(){var a,c,e,f;for(e=this.options.events,f=[],a=0,c=e.length;c>a;a++)d=e[a],f.push(b.parseDate(d));return f}.call(this):this.options.events,this.xmax=Math.max(this.xmax,Math.max.apply(Math,this.events)),this.xmin=Math.min(this.xmin,Math.min.apply(Math,this.events))),this.xmin===this.xmax&&(this.xmin-=1,this.xmax+=1),this.ymin=this.yboundary("min",p),this.ymax=this.yboundary("max",o),this.ymin===this.ymax&&(p&&(this.ymin-=1),this.ymax+=1),((r=this.options.axes)===!0||"both"===r||"y"===r||this.options.grid===!0)&&(this.options.ymax===this.gridDefaults.ymax&&this.options.ymin===this.gridDefaults.ymin?(this.grid=this.autoGridLines(this.ymin,this.ymax,this.options.numLines),this.ymin=Math.min(this.ymin,this.grid[0]),this.ymax=Math.max(this.ymax,this.grid[this.grid.length-1])):(k=(this.ymax-this.ymin)/(this.options.numLines-1),this.grid=function(){var a,b,c,d;for(d=[],m=a=b=this.ymin,c=this.ymax;k>0?c>=a:a>=c;m=a+=k)d.push(m);return d}.call(this))),this.dirty=!0,c?this.redraw():void 0)},d.prototype.yboundary=function(a,b){var c,d;return c=this.options["y"+a],"string"==typeof c?"auto"===c.slice(0,4)?c.length>5?(d=parseInt(c.slice(5),10),null==b?d:Math[a](b,d)):null!=b?b:0:parseInt(c,10):c},d.prototype.autoGridLines=function(a,b,c){var d,e,f,g,h,i,j,k,l;return h=b-a,l=Math.floor(Math.log(h)/Math.log(10)),j=Math.pow(10,l),e=Math.floor(a/j)*j,d=Math.ceil(b/j)*j,i=(d-e)/(c-1),1===j&&i>1&&Math.ceil(i)!==i&&(i=Math.ceil(i),d=e+i*(c-1)),0>e&&d>0&&(e=Math.floor(a/i)*i,d=Math.ceil(b/i)*i),1>i?(g=Math.floor(Math.log(i)/Math.log(10)),f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(parseFloat(k.toFixed(1-g)));return b}()):f=function(){var a,b;for(b=[],k=a=e;i>0?d>=a:a>=d;k=a+=i)b.push(k);return b}(),f},d.prototype._calc=function(){var a,b,c,d,e,f,g,h;return e=this.el.width(),c=this.el.height(),(this.elementWidth!==e||this.elementHeight!==c||this.dirty)&&(this.elementWidth=e,this.elementHeight=c,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,((g=this.options.axes)===!0||"both"===g||"y"===g)&&(f=function(){var a,c,d,e;for(d=this.grid,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(this.measureText(this.yAxisFormat(b)).width);return e}.call(this),this.left+=Math.max.apply(Math,f)),((h=this.options.axes)===!0||"both"===h||"x"===h)&&(a=function(){var a,b,c;for(c=[],d=a=0,b=this.data.length;b>=0?b>a:a>b;d=b>=0?++a:--a)c.push(this.measureText(this.data[d].text,-this.options.xLabelAngle).height);return c}.call(this),this.bottom-=Math.max.apply(Math,a)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin),this.calc)?this.calc():void 0},d.prototype.transY=function(a){return this.bottom-(a-this.ymin)*this.dy},d.prototype.transX=function(a){return 1===this.data.length?(this.left+this.right)/2:this.left+(a-this.xmin)*this.dx},d.prototype.redraw=function(){return this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents(),this.draw?this.draw():void 0},d.prototype.measureText=function(a,b){var c,d;return null==b&&(b=0),d=this.raphael.text(100,100,a).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(b),c=d.getBBox(),d.remove(),c},d.prototype.yAxisFormat=function(a){return this.yLabelFormat(a)},d.prototype.yLabelFormat=function(a){return"function"==typeof this.options.yLabelFormat?this.options.yLabelFormat(a):""+this.options.preUnits+b.commas(a)+this.options.postUnits},d.prototype.drawGrid=function(){var a,b,c,d,e,f,g,h;if(this.options.grid!==!1||(e=this.options.axes)===!0||"both"===e||"y"===e){for(f=this.grid,h=[],c=0,d=f.length;d>c;c++)a=f[c],b=this.transY(a),((g=this.options.axes)===!0||"both"===g||"y"===g)&&this.drawYAxisLabel(this.left-this.options.padding/2,b,this.yAxisFormat(a)),this.options.grid?h.push(this.drawGridLine("M"+this.left+","+b+"H"+(this.left+this.width))):h.push(void 0);return h}},d.prototype.drawGoals=function(){var a,b,c,d,e,f,g;for(f=this.options.goals,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.goalLineColors[c%this.options.goalLineColors.length],g.push(this.drawGoal(b,a));return g},d.prototype.drawEvents=function(){var a,b,c,d,e,f,g;for(f=this.events,g=[],c=d=0,e=f.length;e>d;c=++d)b=f[c],a=this.options.eventLineColors[c%this.options.eventLineColors.length],g.push(this.drawEvent(b,a));return g},d.prototype.drawGoal=function(a,b){return this.raphael.path("M"+this.left+","+this.transY(a)+"H"+this.right).attr("stroke",b).attr("stroke-width",this.options.goalStrokeWidth)},d.prototype.drawEvent=function(a,b){return this.raphael.path("M"+this.transX(a)+","+this.bottom+"V"+this.top).attr("stroke",b).attr("stroke-width",this.options.eventStrokeWidth)},d.prototype.drawYAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor).attr("text-anchor","end")},d.prototype.drawGridLine=function(a){return this.raphael.path(a).attr("stroke",this.options.gridLineColor).attr("stroke-width",this.options.gridStrokeWidth)},d.prototype.startRange=function(a){return this.hover.hide(),this.selectFrom=a,this.selectionRect.attr({x:a,width:0}).show()},d.prototype.endRange=function(a){var b,c;return this.selectFrom?(c=Math.min(this.selectFrom,a),b=Math.max(this.selectFrom,a),this.options.rangeSelect.call(this.el,{start:this.data[this.hitTest(c)].x,end:this.data[this.hitTest(b)].x}),this.selectFrom=null):void 0},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.parseDate=function(a){var b,c,d,e,f,g,h,i,j,k,l;return"number"==typeof a?a:(c=a.match(/^(\d+) Q(\d)$/),e=a.match(/^(\d+)-(\d+)$/),f=a.match(/^(\d+)-(\d+)-(\d+)$/),h=a.match(/^(\d+) W(\d+)$/),i=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+)(Z|([+-])(\d\d):?(\d\d))?$/),j=a.match(/^(\d+)-(\d+)-(\d+)[ T](\d+):(\d+):(\d+(\.\d+)?)(Z|([+-])(\d\d):?(\d\d))?$/),c?new Date(parseInt(c[1],10),3*parseInt(c[2],10)-1,1).getTime():e?new Date(parseInt(e[1],10),parseInt(e[2],10)-1,1).getTime():f?new Date(parseInt(f[1],10),parseInt(f[2],10)-1,parseInt(f[3],10)).getTime():h?(k=new Date(parseInt(h[1],10),0,1),4!==k.getDay()&&k.setMonth(0,1+(4-k.getDay()+7)%7),k.getTime()+6048e5*parseInt(h[2],10)):i?i[6]?(g=0,"Z"!==i[6]&&(g=60*parseInt(i[8],10)+parseInt(i[9],10),"+"===i[7]&&(g=0-g)),Date.UTC(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)+g)):new Date(parseInt(i[1],10),parseInt(i[2],10)-1,parseInt(i[3],10),parseInt(i[4],10),parseInt(i[5],10)).getTime():j?(l=parseFloat(j[6]),b=Math.floor(l),d=Math.round(1e3*(l-b)),j[8]?(g=0,"Z"!==j[8]&&(g=60*parseInt(j[10],10)+parseInt(j[11],10),"+"===j[9]&&(g=0-g)),Date.UTC(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10)+g,b,d)):new Date(parseInt(j[1],10),parseInt(j[2],10)-1,parseInt(j[3],10),parseInt(j[4],10),parseInt(j[5],10),b,d).getTime()):new Date(parseInt(a,10),0,1).getTime())},b.Hover=function(){function c(c){null==c&&(c={}),this.options=a.extend({},b.Hover.defaults,c),this.el=a("<div class='"+this.options["class"]+"'></div>"),this.el.hide(),this.options.parent.append(this.el)}return c.defaults={"class":"morris-hover morris-default-style"},c.prototype.update=function(a,b,c){return this.html(a),this.show(),this.moveTo(b,c)},c.prototype.html=function(a){return this.el.html(a)},c.prototype.moveTo=function(a,b){var c,d,e,f,g,h;return g=this.options.parent.innerWidth(),f=this.options.parent.innerHeight(),d=this.el.outerWidth(),c=this.el.outerHeight(),e=Math.min(Math.max(0,a-d/2),g-d),null!=b?(h=b-c-10,0>h&&(h=b+10,h+c>f&&(h=f/2-c/2))):h=f/2-c/2,this.el.css({left:e+"px",top:parseInt(h)+"px"})},c.prototype.show=function(){return this.el.show()},c.prototype.hide=function(){return this.el.hide()},c}(),b.Line=function(a){function c(a){return this.hilight=f(this.hilight,this),this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Line?(c.__super__.constructor.call(this,a),void 0):new b.Line(a)}return h(c,a),c.prototype.init=function(){return"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},c.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointStrokeWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,continuousLine:!0,hideHover:!1},c.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},c.prototype.calcPoints=function(){var a,b,c,d,e,f;for(e=this.data,f=[],c=0,d=e.length;d>c;c++)a=e[c],a._x=this.transX(a.x),a._y=function(){var c,d,e,f;for(e=a.y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b?f.push(this.transY(b)):f.push(b);return f}.call(this),f.push(a._ymax=Math.min.apply(Math,[this.bottom].concat(function(){var c,d,e,f;for(e=a._y,f=[],c=0,d=e.length;d>c;c++)b=e[c],null!=b&&f.push(b);return f}())));return f},c.prototype.hitTest=function(a){var b,c,d,e,f;if(0===this.data.length)return null;for(f=this.data.slice(1),b=d=0,e=f.length;e>d&&(c=f[b],!(a<(c._x+this.data[b]._x)/2));b=++d);return b},c.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},c.prototype.onHoverMove=function(a){var b;return b=this.hitTest(a),this.displayHoverForRow(b)},c.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.displayHoverForRow(null):void 0},c.prototype.displayHoverForRow=function(a){var b;return null!=a?((b=this.hover).update.apply(b,this.hoverContentForRow(a)),this.hilight(a)):(this.hover.hide(),this.hilight())},c.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h;for(d=this.data[a],b="<div class='morris-hover-row-label'>"+d.label+"</div>",h=d.y,c=f=0,g=h.length;g>f;c=++f)e=h[c],b+="<div class='morris-hover-point' style='color: "+this.colorFor(d,c,"label")+"'>\n "+this.options.labels[c]+":\n "+this.yLabelFormat(e)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),[b,d._x,d._ymax]},c.prototype.generatePaths=function(){var a,c,d,e,f;return this.paths=function(){var g,h,j,k;for(k=[],d=g=0,h=this.options.ykeys.length;h>=0?h>g:g>h;d=h>=0?++g:--g)f="boolean"==typeof this.options.smooth?this.options.smooth:(j=this.options.ykeys[d],i.call(this.options.smooth,j)>=0),c=function(){var a,b,c,f;for(c=this.data,f=[],a=0,b=c.length;b>a;a++)e=c[a],void 0!==e._y[d]&&f.push({x:e._x,y:e._y[d]});return f}.call(this),this.options.continuousLine&&(c=function(){var b,d,e;for(e=[],b=0,d=c.length;d>b;b++)a=c[b],null!==a.y&&e.push(a);return e}()),c.length>1?k.push(b.Line.createPath(c,f,this.bottom)):k.push(null);return k}.call(this)},c.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries(),this.options.hideHover===!1?this.displayHoverForRow(this.data.length-1):void 0},c.prototype.drawXAxis=function(){var a,c,d,e,f,g,h,i,j,k,l=this;for(h=this.bottom+this.options.padding/2,f=null,e=null,a=function(a,b){var c,d,g,i,j;return c=l.drawXAxisLabel(l.transX(b),h,a),j=c.getBBox(),c.transform("r"+-l.options.xLabelAngle),d=c.getBBox(),c.transform("t0,"+d.height/2+"..."),0!==l.options.xLabelAngle&&(i=-.5*j.width*Math.cos(l.options.xLabelAngle*Math.PI/180),c.transform("t"+i+",0...")),d=c.getBBox(),(null==f||f>=d.x+d.width||null!=e&&e>=d.x)&&d.x>=0&&d.x+d.width<l.el.width()?(0!==l.options.xLabelAngle&&(g=1.25*l.options.gridTextSize/Math.sin(l.options.xLabelAngle*Math.PI/180),e=d.x-g),f=d.x-l.options.xLabelMargin):c.remove()},d=this.options.parseTime?1===this.data.length&&"auto"===this.options.xLabels?[[this.data[0].label,this.data[0].x]]:b.labelSeries(this.xmin,this.xmax,this.width,this.options.xLabels,this.options.xLabelFormat):function(){var a,b,c,d;for(c=this.data,d=[],a=0,b=c.length;b>a;a++)g=c[a],d.push([g.label,g.x]);return d}.call(this),d.reverse(),k=[],i=0,j=d.length;j>i;i++)c=d[i],k.push(a(c[0],c[1]));return k},c.prototype.drawSeries=function(){var a,b,c,d,e,f;for(this.seriesPoints=[],a=b=d=this.options.ykeys.length-1;0>=d?0>=b:b>=0;a=0>=d?++b:--b)this._drawLineFor(a);for(f=[],a=c=e=this.options.ykeys.length-1;0>=e?0>=c:c>=0;a=0>=e?++c:--c)f.push(this._drawPointFor(a));return f},c.prototype._drawPointFor=function(a){var b,c,d,e,f,g;for(this.seriesPoints[a]=[],f=this.data,g=[],d=0,e=f.length;e>d;d++)c=f[d],b=null,null!=c._y[a]&&(b=this.drawLinePoint(c._x,c._y[a],this.colorFor(c,a,"point"),a)),g.push(this.seriesPoints[a].push(b));return g},c.prototype._drawLineFor=function(a){var b;return b=this.paths[a],null!==b?this.drawLinePath(b,this.colorFor(null,a,"line"),a):void 0},c.createPath=function(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(k="",c&&(g=b.Line.gradients(a)),l={y:null},h=q=0,r=a.length;r>q;h=++q)e=a[h],null!=e.y&&(null!=l.y?c?(f=g[h],j=g[h-1],i=(e.x-l.x)/4,m=l.x+i,o=Math.min(d,l.y+i*j),n=e.x-i,p=Math.min(d,e.y-i*f),k+="C"+m+","+o+","+n+","+p+","+e.x+","+e.y):k+="L"+e.x+","+e.y:c&&null==g[h]||(k+="M"+e.x+","+e.y)),l=e;return k},c.gradients=function(a){var b,c,d,e,f,g,h,i;for(c=function(a,b){return(a.y-b.y)/(a.x-b.x)},i=[],d=g=0,h=a.length;h>g;d=++g)b=a[d],null!=b.y?(e=a[d+1]||{y:null},f=a[d-1]||{y:null},null!=f.y&&null!=e.y?i.push(c(f,e)):null!=f.y?i.push(c(f,b)):null!=e.y?i.push(c(b,e)):i.push(null)):i.push(null);return i},c.prototype.hilight=function(a){var b,c,d,e,f;if(null!==this.prevHilight&&this.prevHilight!==a)for(b=c=0,e=this.seriesPoints.length-1;e>=0?e>=c:c>=e;b=e>=0?++c:--c)this.seriesPoints[b][this.prevHilight]&&this.seriesPoints[b][this.prevHilight].animate(this.pointShrinkSeries(b));if(null!==a&&this.prevHilight!==a)for(b=d=0,f=this.seriesPoints.length-1;f>=0?f>=d:d>=f;b=f>=0?++d:--d)this.seriesPoints[b][a]&&this.seriesPoints[b][a].animate(this.pointGrowSeries(b));return this.prevHilight=a},c.prototype.colorFor=function(a,b,c){return"function"==typeof this.options.lineColors?this.options.lineColors.call(this,a,b,c):"point"===c?this.options.pointFillColors[b%this.options.pointFillColors.length]||this.options.lineColors[b%this.options.lineColors.length]:this.options.lineColors[b%this.options.lineColors.length]},c.prototype.drawXAxisLabel=function(a,b,c){return this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},c.prototype.drawLinePath=function(a,b,c){return this.raphael.path(a).attr("stroke",b).attr("stroke-width",this.lineWidthForSeries(c))},c.prototype.drawLinePoint=function(a,b,c,d){return this.raphael.circle(a,b,this.pointSizeForSeries(d)).attr("fill",c).attr("stroke-width",this.pointStrokeWidthForSeries(d)).attr("stroke",this.pointStrokeColorForSeries(d))},c.prototype.pointStrokeWidthForSeries=function(a){return this.options.pointStrokeWidths[a%this.options.pointStrokeWidths.length]},c.prototype.pointStrokeColorForSeries=function(a){return this.options.pointStrokeColors[a%this.options.pointStrokeColors.length]},c.prototype.lineWidthForSeries=function(a){return this.options.lineWidth instanceof Array?this.options.lineWidth[a%this.options.lineWidth.length]:this.options.lineWidth},c.prototype.pointSizeForSeries=function(a){return this.options.pointSize instanceof Array?this.options.pointSize[a%this.options.pointSize.length]:this.options.pointSize},c.prototype.pointGrowSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)+3},25,"linear")},c.prototype.pointShrinkSeries=function(a){return Raphael.animation({r:this.pointSizeForSeries(a)},25,"linear")},c}(b.Grid),b.labelSeries=function(c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r;if(j=200*(d-c)/e,i=new Date(c),n=b.LABEL_SPECS[f],void 0===n)for(r=b.AUTO_LABEL_ORDER,p=0,q=r.length;q>p;p++)if(k=r[p],m=b.LABEL_SPECS[k],j>=m.span){n=m;break}for(void 0===n&&(n=b.LABEL_SPECS.second),g&&(n=a.extend({},n,{fmt:g})),h=n.start(i),l=[];(o=h.getTime())<=d;)o>=c&&l.push([n.fmt(h),o]),n.incr(h);return l},c=function(a){return{span:60*a*1e3,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())},incr:function(b){return b.setUTCMinutes(b.getUTCMinutes()+a)}}},d=function(a){return{span:1e3*a,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes())},fmt:function(a){return""+b.pad2(a.getHours())+":"+b.pad2(a.getMinutes())+":"+b.pad2(a.getSeconds())},incr:function(b){return b.setUTCSeconds(b.getUTCSeconds()+a)}}},b.LABEL_SPECS={decade:{span:1728e8,start:function(a){return new Date(a.getFullYear()-a.getFullYear()%10,0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+10)}},year:{span:1728e7,start:function(a){return new Date(a.getFullYear(),0,1)},fmt:function(a){return""+a.getFullYear()},incr:function(a){return a.setFullYear(a.getFullYear()+1)}},month:{span:24192e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),1)},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)},incr:function(a){return a.setMonth(a.getMonth()+1)}},week:{span:6048e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+7)}},day:{span:864e5,start:function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},fmt:function(a){return""+a.getFullYear()+"-"+b.pad2(a.getMonth()+1)+"-"+b.pad2(a.getDate())},incr:function(a){return a.setDate(a.getDate()+1)}},hour:c(60),"30min":c(30),"15min":c(15),"10min":c(10),"5min":c(5),minute:c(1),"30sec":d(30),"15sec":d(15),"10sec":d(10),"5sec":d(5),second:d(1)},b.AUTO_LABEL_ORDER=["decade","year","month","week","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],b.Area=function(c){function d(c){var f;return this instanceof b.Area?(f=a.extend({},e,c),this.cumulative=!f.behaveLikeLine,"auto"===f.fillOpacity&&(f.fillOpacity=f.behaveLikeLine?.8:1),d.__super__.constructor.call(this,f),void 0):new b.Area(c)}var e;return h(d,c),e={fillOpacity:"auto",behaveLikeLine:!1},d.prototype.calcPoints=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],d=0,e=f.length;e>d;d++)a=f[d],a._x=this.transX(a.x),b=0,a._y=function(){var d,e,f,g;for(f=a.y,g=[],d=0,e=f.length;e>d;d++)c=f[d],this.options.behaveLikeLine?g.push(this.transY(c)):(b+=c||0,g.push(this.transY(b)));return g}.call(this),g.push(a._ymax=Math.max.apply(Math,a._y));return g},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h;for(this.seriesPoints=[],b=this.options.behaveLikeLine?function(){f=[];for(var a=0,b=this.options.ykeys.length-1;b>=0?b>=a:a>=b;b>=0?a++:a--)f.push(a);return f}.apply(this):function(){g=[];for(var a=e=this.options.ykeys.length-1;0>=e?0>=a:a>=0;0>=e?a++:a--)g.push(a);return g}.apply(this),h=[],c=0,d=b.length;d>c;c++)a=b[c],this._drawFillFor(a),this._drawLineFor(a),h.push(this._drawPointFor(a));return h},d.prototype._drawFillFor=function(a){var b;return b=this.paths[a],null!==b?(b+="L"+this.transX(this.xmax)+","+this.bottom+"L"+this.transX(this.xmin)+","+this.bottom+"Z",this.drawFilledPath(b,this.fillForSeries(a))):void 0},d.prototype.fillForSeries=function(a){var b;return b=Raphael.rgb2hsl(this.colorFor(this.data[a],a,"line")),Raphael.hsl(b.h,this.options.behaveLikeLine?.9*b.s:.75*b.s,Math.min(.98,this.options.behaveLikeLine?1.2*b.l:1.25*b.l))},d.prototype.drawFilledPath=function(a,b){return this.raphael.path(a).attr("fill",b).attr("fill-opacity",this.options.fillOpacity).attr("stroke","none")},d}(b.Line),b.Bar=function(c){function d(c){return this.onHoverOut=f(this.onHoverOut,this),this.onHoverMove=f(this.onHoverMove,this),this.onGridClick=f(this.onGridClick,this),this instanceof b.Bar?(d.__super__.constructor.call(this,a.extend({},c,{parseTime:!1})),void 0):new b.Bar(c)}return h(d,c),d.prototype.init=function(){return this.cumulative=this.options.stacked,"always"!==this.options.hideHover?(this.hover=new b.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)):void 0},d.prototype.defaults={barSizeRatio:.75,barGap:3,barColors:["#0b62a4","#7a92a3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],barOpacity:1,barRadius:[0,0,0,0],xLabelMargin:50},d.prototype.calc=function(){var a;return this.calcBars(),this.options.hideHover===!1?(a=this.hover).update.apply(a,this.hoverContentForRow(this.data.length-1)):void 0},d.prototype.calcBars=function(){var a,b,c,d,e,f,g;for(f=this.data,g=[],a=d=0,e=f.length;e>d;a=++d)b=f[a],b._x=this.left+this.width*(a+.5)/this.data.length,g.push(b._y=function(){var a,d,e,f;for(e=b.y,f=[],a=0,d=e.length;d>a;a++)c=e[a],null!=c?f.push(this.transY(c)):f.push(null);return f}.call(this));return g},d.prototype.draw=function(){var a;return((a=this.options.axes)===!0||"both"===a||"x"===a)&&this.drawXAxis(),this.drawSeries()},d.prototype.drawXAxis=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;for(j=this.bottom+(this.options.xAxisLabelTopPadding||this.options.padding/2),g=null,f=null,m=[],a=k=0,l=this.data.length;l>=0?l>k:k>l;a=l>=0?++k:--k)h=this.data[this.data.length-1-a],b=this.drawXAxisLabel(h._x,j,h.label),i=b.getBBox(),b.transform("r"+-this.options.xLabelAngle),c=b.getBBox(),b.transform("t0,"+c.height/2+"..."),0!==this.options.xLabelAngle&&(e=-.5*i.width*Math.cos(this.options.xLabelAngle*Math.PI/180),b.transform("t"+e+",0...")),(null==g||g>=c.x+c.width||null!=f&&f>=c.x)&&c.x>=0&&c.x+c.width<this.el.width()?(0!==this.options.xLabelAngle&&(d=1.25*this.options.gridTextSize/Math.sin(this.options.xLabelAngle*Math.PI/180),f=c.x-d),m.push(g=c.x-this.options.xLabelMargin)):m.push(b.remove());return m},d.prototype.drawSeries=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;return c=this.width/this.options.data.length,h=null!=this.options.stacked?1:this.options.ykeys.length,a=(c*this.options.barSizeRatio-this.options.barGap*(h-1))/h,this.options.barSize&&(a=Math.min(a,this.options.barSize)),l=c-a*h-this.options.barGap*(h-1),g=l/2,o=this.ymin<=0&&this.ymax>=0?this.transY(0):null,this.bars=function(){var h,l,p,q;for(p=this.data,q=[],d=h=0,l=p.length;l>h;d=++h)i=p[d],e=0,q.push(function(){var h,l,p,q;for(p=i._y,q=[],j=h=0,l=p.length;l>h;j=++h)n=p[j],null!==n?(o?(m=Math.min(n,o),b=Math.max(n,o)):(m=n,b=this.bottom),f=this.left+d*c+g,this.options.stacked||(f+=j*(a+this.options.barGap)),k=b-m,this.options.stacked&&(m-=e),this.drawBar(f,m,a,k,this.colorFor(i,j,"bar"),this.options.barOpacity,this.options.barRadius),q.push(e+=k)):q.push(null);return q}.call(this));return q}.call(this)},d.prototype.colorFor=function(a,b,c){var d,e;return"function"==typeof this.options.barColors?(d={x:a.x,y:a.y[b],label:a.label},e={index:b,key:this.options.ykeys[b],label:this.options.labels[b]},this.options.barColors.call(this,d,e,c)):this.options.barColors[b%this.options.barColors.length]},d.prototype.hitTest=function(a){return 0===this.data.length?null:(a=Math.max(Math.min(a,this.right),this.left),Math.min(this.data.length-1,Math.floor((a-this.left)/(this.width/this.data.length))))},d.prototype.onGridClick=function(a,b){var c;return c=this.hitTest(a),this.fire("click",c,this.data[c].src,a,b)},d.prototype.onHoverMove=function(a){var b,c;return b=this.hitTest(a),(c=this.hover).update.apply(c,this.hoverContentForRow(b))},d.prototype.onHoverOut=function(){return this.options.hideHover!==!1?this.hover.hide():void 0},d.prototype.hoverContentForRow=function(a){var b,c,d,e,f,g,h,i;for(d=this.data[a],b="<div class='morris-hover-row-label'>"+d.label+"</div>",i=d.y,c=g=0,h=i.length;h>g;c=++g)f=i[c],b+="<div class='morris-hover-point' style='color: "+this.colorFor(d,c,"label")+"'>\n "+this.options.labels[c]+":\n "+this.yLabelFormat(f)+"\n</div>";return"function"==typeof this.options.hoverCallback&&(b=this.options.hoverCallback(a,this.options,b,d.src)),e=this.left+(a+.5)*this.width/this.data.length,[b,e]},d.prototype.drawXAxisLabel=function(a,b,c){var d;return d=this.raphael.text(a,b,c).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},d.prototype.drawBar=function(a,b,c,d,e,f,g){var h,i;return h=Math.max.apply(Math,g),i=0===h||h>d?this.raphael.rect(a,b,c,d):this.raphael.path(this.roundedRect(a,b,c,d,g)),i.attr("fill",e).attr("fill-opacity",f).attr("stroke","none")},d.prototype.roundedRect=function(a,b,c,d,e){return null==e&&(e=[0,0,0,0]),["M",a,e[0]+b,"Q",a,b,a+e[0],b,"L",a+c-e[1],b,"Q",a+c,b,a+c,b+e[1],"L",a+c,b+d-e[2],"Q",a+c,b+d,a+c-e[2],b+d,"L",a+e[3],b+d,"Q",a,b+d,a,b+d-e[3],"Z"]},d}(b.Grid),b.Donut=function(c){function d(c){this.resizeHandler=f(this.resizeHandler,this),this.select=f(this.select,this),this.click=f(this.click,this);var d=this;if(!(this instanceof b.Donut))return new b.Donut(c);if(this.options=a.extend({},this.defaults,c),this.el="string"==typeof c.element?a(document.getElementById(c.element)):a(c.element),null===this.el||0===this.el.length)throw new Error("Graph placeholder not found.");void 0!==c.data&&0!==c.data.length&&(this.raphael=new Raphael(this.el[0]),this.options.resize&&a(window).bind("resize",function(){return null!=d.timeoutId&&window.clearTimeout(d.timeoutId),d.timeoutId=window.setTimeout(d.resizeHandler,100)}),this.setData(c.data))}return h(d,c),d.prototype.defaults={colors:["#0B62A4","#3980B5","#679DC6","#95BBD7","#B0CCE1","#095791","#095085","#083E67","#052C48","#042135"],backgroundColor:"#FFFFFF",labelColor:"#000000",formatter:b.commas,resize:!1},d.prototype.redraw=function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;for(this.raphael.clear(),c=this.el.width()/2,d=this.el.height()/2,n=(Math.min(c,d)-10)/3,l=0,u=this.values,o=0,r=u.length;r>o;o++)m=u[o],l+=m;for(i=5/(2*n),a=1.9999*Math.PI-i*this.data.length,g=0,f=0,this.segments=[],v=this.values,e=p=0,s=v.length;s>p;e=++p)m=v[e],j=g+i+a*(m/l),k=new b.DonutSegment(c,d,2*n,n,g,j,this.data[e].color||this.options.colors[f%this.options.colors.length],this.options.backgroundColor,f,this.raphael),k.render(),this.segments.push(k),k.on("hover",this.select),k.on("click",this.click),g=j,f+=1;for(this.text1=this.drawEmptyDonutLabel(c,d-10,this.options.labelColor,15,800),this.text2=this.drawEmptyDonutLabel(c,d+10,this.options.labelColor,14),h=Math.max.apply(Math,this.values),f=0,w=this.values,x=[],q=0,t=w.length;t>q;q++){if(m=w[q],m===h){this.select(f);
|
|
7
|
+
break}x.push(f+=1)}return x},d.prototype.setData=function(a){var b;return this.data=a,this.values=function(){var a,c,d,e;for(d=this.data,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(parseFloat(b.value));return e}.call(this),this.redraw()},d.prototype.click=function(a){return this.fire("click",a,this.data[a])},d.prototype.select=function(a){var b,c,d,e,f,g;for(g=this.segments,e=0,f=g.length;f>e;e++)c=g[e],c.deselect();return d=this.segments[a],d.select(),b=this.data[a],this.setLabels(b.label,this.options.formatter(b.value,b))},d.prototype.setLabels=function(a,b){var c,d,e,f,g,h,i,j;return c=2*(Math.min(this.el.width()/2,this.el.height()/2)-10)/3,f=1.8*c,e=c/2,d=c/3,this.text1.attr({text:a,transform:""}),g=this.text1.getBBox(),h=Math.min(f/g.width,e/g.height),this.text1.attr({transform:"S"+h+","+h+","+(g.x+g.width/2)+","+(g.y+g.height)}),this.text2.attr({text:b,transform:""}),i=this.text2.getBBox(),j=Math.min(f/i.width,d/i.height),this.text2.attr({transform:"S"+j+","+j+","+(i.x+i.width/2)+","+i.y})},d.prototype.drawEmptyDonutLabel=function(a,b,c,d,e){var f;return f=this.raphael.text(a,b,"").attr("font-size",d).attr("fill",c),null!=e&&f.attr("font-weight",e),f},d.prototype.resizeHandler=function(){return this.timeoutId=null,this.raphael.setSize(this.el.width(),this.el.height()),this.redraw()},d}(b.EventEmitter),b.DonutSegment=function(a){function b(a,b,c,d,e,g,h,i,j,k){this.cx=a,this.cy=b,this.inner=c,this.outer=d,this.color=h,this.backgroundColor=i,this.index=j,this.raphael=k,this.deselect=f(this.deselect,this),this.select=f(this.select,this),this.sin_p0=Math.sin(e),this.cos_p0=Math.cos(e),this.sin_p1=Math.sin(g),this.cos_p1=Math.cos(g),this.is_long=g-e>Math.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return h(b,a),b.prototype.calcArcPoints=function(a){return[this.cx+a*this.sin_p0,this.cy+a*this.cos_p0,this.cx+a*this.sin_p1,this.cy+a*this.cos_p1]},b.prototype.calcSegment=function(a,b){var c,d,e,f,g,h,i,j,k,l;return k=this.calcArcPoints(a),c=k[0],e=k[1],d=k[2],f=k[3],l=this.calcArcPoints(b),g=l[0],i=l[1],h=l[2],j=l[3],"M"+c+","+e+("A"+a+","+a+",0,"+this.is_long+",0,"+d+","+f)+("L"+h+","+j)+("A"+b+","+b+",0,"+this.is_long+",1,"+g+","+i)+"Z"},b.prototype.calcArc=function(a){var b,c,d,e,f;return f=this.calcArcPoints(a),b=f[0],d=f[1],c=f[2],e=f[3],"M"+b+","+d+("A"+a+","+a+",0,"+this.is_long+",0,"+c+","+e)},b.prototype.render=function(){var a=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return a.fire("hover",a.index)},function(){return a.fire("click",a.index)})},b.prototype.drawDonutArc=function(a,b){return this.raphael.path(a).attr({stroke:b,"stroke-width":2,opacity:0})},b.prototype.drawDonutSegment=function(a,b,c,d,e){return this.raphael.path(a).attr({fill:b,stroke:c,"stroke-width":3}).hover(d).click(e)},b.prototype.select=function(){return this.selected?void 0:(this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0)},b.prototype.deselect=function(){return this.selected?(this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1):void 0},b}(b.EventEmitter)}).call(this);
|