kaui 0.1.18 → 0.2.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.
- data/.gitignore +10 -0
- data/.travis.yml +30 -0
- data/Gemfile +21 -0
- data/Gemfile.lock +107 -0
- data/README.md +60 -0
- data/app/assets/images/kaui/.gitkeep +0 -0
- data/{test/dummy/tmp/cache/assets/D07/DA0/sprockets%2Ffaad9b18203975dbf0c60f3234a51874 → app/assets/javascripts/kaui/analytics.js} +0 -0
- data/{test/dummy/tmp/cache/assets/C8D/080/sprockets%2F4556c595251e3b8d4f688467e330da26 → app/assets/javascripts/kaui/bootstrap-tweaks.js} +0 -0
- data/app/assets/javascripts/kaui/validation.js +21 -0
- data/app/assets/stylesheets/kaui/analytics.css +26 -0
- data/app/controllers/kaui/accounts_controller.rb +0 -3
- data/app/controllers/kaui/analytics_controller.rb +20 -11
- data/app/controllers/kaui/engine_controller.rb +13 -4
- data/app/controllers/kaui/invoices_controller.rb +1 -1
- data/app/controllers/kaui/refunds_controller.rb +16 -1
- data/app/controllers/kaui/subscriptions_controller.rb +6 -0
- data/app/controllers/kaui/tag_definitions_controller.rb +7 -2
- data/app/helpers/kaui/date_helper.rb +2 -3
- data/app/helpers/kaui/killbill_helper.rb +0 -3
- data/app/models/kaui/account.rb +0 -2
- data/app/models/kaui/account_timeline.rb +0 -2
- data/app/models/kaui/audit_log.rb +0 -2
- data/app/models/kaui/bundle.rb +0 -2
- data/app/models/kaui/invoice.rb +1 -3
- data/app/models/kaui/invoice_item.rb +1 -3
- data/app/models/kaui/payment.rb +7 -3
- data/app/models/kaui/payment_attempt.rb +1 -3
- data/app/models/kaui/payment_method.rb +1 -3
- data/app/models/kaui/plugin_info.rb +1 -3
- data/app/models/kaui/plugin_info_property.rb +1 -3
- data/app/models/kaui/refund.rb +1 -3
- data/app/models/kaui/time_series_data.rb +5 -1
- data/app/views/kaui/account_timelines/show.html.erb +10 -10
- data/app/views/kaui/accounts/show.html.erb +1 -1
- data/app/views/kaui/bundles/show.html.erb +1 -1
- data/app/views/kaui/home/index.html.erb +10 -0
- data/app/views/kaui/invoices/show.html.erb +6 -6
- data/app/views/kaui/layouts/kaui_application.html.erb +48 -0
- data/app/views/kaui/payments/_payments_table.html.erb +2 -2
- data/app/views/kaui/refunds/show.html.erb +2 -2
- data/app/views/kaui/subscriptions/_subscriptions_table.html.erb +20 -39
- data/app/views/kaui/subscriptions/show.html.erb +2 -2
- data/bin/kaui +4 -0
- data/config/routes.rb +2 -2
- data/kaui.gemspec +27 -0
- data/lib/generators/kaui/install/install_generator.rb +68 -0
- data/lib/generators/kaui/install/templates/app/assets/javascripts/kaui/all.js +16 -0
- data/lib/generators/kaui/install/templates/app/assets/stylesheets/kaui/all.css +11 -0
- data/lib/generators/kaui/install/templates/config/initializers/kaui.rb +3 -0
- data/lib/kaui/engine.rb +12 -0
- data/lib/kaui/installer/installer.rb +82 -0
- data/lib/kaui/version.rb +1 -1
- data/lib/kaui.rb +13 -1
- data/script/rails +8 -0
- data/script/sandbox +25 -0
- data/test/dummy/app/assets/javascripts/application.js +5 -3
- data/test/dummy/app/assets/stylesheets/application.css +2 -1
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/test_helper.rb +18 -0
- data/{test/dummy/vendor → vendor}/assets/images/img/glyphicons-halflings-white.png +0 -0
- data/{test/dummy/vendor → vendor}/assets/images/img/glyphicons-halflings.png +0 -0
- data/vendor/assets/javascripts/js/bootstrap-datepicker.cd46d38.js +1211 -0
- data/{test/dummy/vendor/assets/javascripts → vendor/assets/javascripts/js}/bootstrap.v2.0.4.min.js +0 -0
- data/{test/dummy/vendor/assets/javascripts → vendor/assets/javascripts/js}/jquery.dataTables.v1.9.3.min.js +0 -0
- data/vendor/assets/stylesheets/css/bootstrap-datepicker.cd46d38.css +274 -0
- data/{test/dummy/vendor/assets/stylesheets → vendor/assets/stylesheets/css}/bootstrap.v2.0.4.min.css +0 -0
- metadata +131 -130
- data/README.rdoc +0 -36
- data/app/assets/javascripts/kaui/account_timeline.js +0 -2
- data/app/assets/javascripts/kaui/application.js +0 -15
- data/app/assets/javascripts/kaui/bundles.js +0 -2
- data/app/assets/javascripts/kaui/chargebacks.js +0 -2
- data/app/assets/javascripts/kaui/extpayments.js +0 -2
- data/app/assets/javascripts/kaui/home.js +0 -2
- data/app/assets/javascripts/kaui/invoices.js +0 -2
- data/app/assets/javascripts/kaui/payments.js +0 -2
- data/app/assets/javascripts/kaui/refunds.js +0 -2
- data/app/assets/stylesheets/kaui/account_timeline.css +0 -4
- data/app/assets/stylesheets/kaui/application.css +0 -13
- data/app/assets/stylesheets/kaui/bundles.css +0 -4
- data/app/assets/stylesheets/kaui/chargebacks.css +0 -4
- data/app/assets/stylesheets/kaui/extpayments.css +0 -4
- data/app/assets/stylesheets/kaui/home.css +0 -4
- data/app/assets/stylesheets/kaui/invoices.css +0 -4
- data/app/assets/stylesheets/kaui/payments.css +0 -4
- data/app/assets/stylesheets/kaui/refunds.css +0 -4
- data/app/controllers/kaui/tags_controller.rb +0 -85
- data/app/views/kaui/account_emails/edit.html.erb +0 -6
- data/app/views/kaui/analytics/payments_over_time.html.erb +0 -9
- data/app/views/kaui/tags/_form.html.erb +0 -25
- data/app/views/kaui/tags/edit.html.erb +0 -6
- data/app/views/kaui/tags/index.html.erb +0 -25
- data/app/views/kaui/tags/new.html.erb +0 -5
- data/app/views/kaui/tags/show.html.erb +0 -15
- data/test/dummy/log/development.log +0 -99013
- data/test/dummy/log/test.log +0 -127459
- data/test/dummy/tmp/cache/assets/C94/4E0/sprockets%2Fea1476dc10a3348303f74d111f70441a +0 -0
- data/test/dummy/tmp/cache/assets/C95/690/sprockets%2Fc4b083702793f7599f4a3069c50f89a8 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/680/sprockets%2F3824d037523f650518fb22acab75559d +0 -0
- data/test/dummy/tmp/cache/assets/CC2/520/sprockets%2F9637f46d37325381f96d96d94ae0bc50 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/9D0/sprockets%2F5c9508c21501c73fbe00473a09b1f5f4 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/1F0/sprockets%2F76ac5628a0c4d1b976cb622ec4493751 +0 -381
- data/test/dummy/tmp/cache/assets/CE0/8A0/sprockets%2Fc18dc7330236e7db17d280973d617b9a +0 -0
- data/test/dummy/tmp/cache/assets/CEA/300/sprockets%2Fdf2ad5c9d0990441c2bf59883383d652 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/5B0/sprockets%2F1695e8510891108e3950e2a3e4fdf9df +0 -0
- data/test/dummy/tmp/cache/assets/CF7/710/sprockets%2F86d43448e1fc383cb6f3d752ef288882 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/A00/sprockets%2F642f58fb154eff788f45c881b294e818 +0 -0
- data/test/dummy/tmp/cache/assets/D04/1D0/sprockets%2F3baf64d90ead2434455d2296227ba8a2 +0 -7038
- data/test/dummy/tmp/cache/assets/D05/510/sprockets%2F1c14866e2401c27b0ff5e33d1b92c4e8 +0 -0
- data/test/dummy/tmp/cache/assets/D17/DD0/sprockets%2F665455ecdc7609b23f4ecb366d86055a +0 -9409
- data/test/dummy/tmp/cache/assets/D32/200/sprockets%2Ffa467106e01bda5d6246baea72159d64 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D39/5E0/sprockets%2F59fd338be48a81a17a2a785cbd1612b4 +0 -0
- data/test/dummy/tmp/cache/assets/D44/170/sprockets%2Fac15571bce3f926a498da7cd09322d97 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/710/sprockets%2F1765773caead06c0a6a19ea9de2453f7 +0 -0
- data/test/dummy/tmp/cache/assets/D76/910/sprockets%2Ff99b4bdc434e11e8634e6af62fe805e0 +0 -0
- data/test/dummy/tmp/cache/assets/D79/1E0/sprockets%2F97b08ebe07a73d8195ba124ffb45f98b +0 -7038
- data/test/dummy/tmp/cache/assets/D9F/160/sprockets%2F510462e1ebd5dbb7ae20888b77f9bed2 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DDF/650/sprockets%2Fbe16f0bf3d2b7af18010acbd53ba22f5 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E07/1E0/sprockets%2F5a3fe6e98fdf72bbe75c605e54ebc5b0 +0 -9409
- data/test/dummy/tmp/cache/assets/E10/BE0/sprockets%2F9c06f8f8da4e736ccf6de8360cd39bfa +0 -0
- data/test/dummy/tmp/cache/assets/E20/230/sprockets%2F7d3b1348fdf74cf1b6ba2107fbbac5af +0 -0
- data/test/dummy/tmp/cache/assets/E22/F40/sprockets%2Faffacf2e6be325520bd3bfd2096b6dd4 +0 -0
- data/test/dummy/tmp/cache/assets/E24/9D0/sprockets%2Fb966ab0a50fda3c156fbad4d8ab73ef6 +0 -381
- data/test/functional/kaui/account_emails_controller_test.rb +0 -51
- data/test/functional/kaui/tags_controller_test.rb +0 -51
data/.gitignore
ADDED
data/.travis.yml
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
|
|
3
|
+
notifications:
|
|
4
|
+
email:
|
|
5
|
+
- ri-dev@ning.com
|
|
6
|
+
|
|
7
|
+
rvm:
|
|
8
|
+
- 1.9.3
|
|
9
|
+
- 1.9.2
|
|
10
|
+
- jruby-18mode
|
|
11
|
+
- jruby-19mode
|
|
12
|
+
- ruby-head
|
|
13
|
+
- jruby-head
|
|
14
|
+
- 1.8.7
|
|
15
|
+
|
|
16
|
+
jdk:
|
|
17
|
+
- openjdk7
|
|
18
|
+
- oraclejdk7
|
|
19
|
+
- openjdk6
|
|
20
|
+
|
|
21
|
+
before_script:
|
|
22
|
+
- mysql -e 'create database kaui_test;'
|
|
23
|
+
|
|
24
|
+
matrix:
|
|
25
|
+
allow_failures:
|
|
26
|
+
- rvm: ruby-head
|
|
27
|
+
- rvm: jruby-head
|
|
28
|
+
|
|
29
|
+
env:
|
|
30
|
+
- MYSQL_PASSWORD=''
|
data/Gemfile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
source "http://rubygems.org"
|
|
2
|
+
|
|
3
|
+
gem "rails", "~> 3.2.3"
|
|
4
|
+
gem 'rest-client', '~> 1.6.7'
|
|
5
|
+
gem 'money-rails', '~> 0.5.0'
|
|
6
|
+
gem 'd3_rails', '~> 2.10.0'
|
|
7
|
+
|
|
8
|
+
group :development, :test do
|
|
9
|
+
# jquery-rails is used by the dummy application
|
|
10
|
+
gem "jquery-rails"
|
|
11
|
+
|
|
12
|
+
if defined?(JRUBY_VERSION)
|
|
13
|
+
gem "jruby-openssl", "~> 0.7.7"
|
|
14
|
+
|
|
15
|
+
gem 'activerecord-jdbc-adapter', '~> 1.2.2'
|
|
16
|
+
gem 'activerecord-jdbcmysql-adapter', '~> 1.2.2'
|
|
17
|
+
gem 'jdbc-mysql', :require => false
|
|
18
|
+
else
|
|
19
|
+
gem 'mysql2'
|
|
20
|
+
end
|
|
21
|
+
end
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: http://rubygems.org/
|
|
3
|
+
specs:
|
|
4
|
+
actionmailer (3.2.3)
|
|
5
|
+
actionpack (= 3.2.3)
|
|
6
|
+
mail (~> 2.4.4)
|
|
7
|
+
actionpack (3.2.3)
|
|
8
|
+
activemodel (= 3.2.3)
|
|
9
|
+
activesupport (= 3.2.3)
|
|
10
|
+
builder (~> 3.0.0)
|
|
11
|
+
erubis (~> 2.7.0)
|
|
12
|
+
journey (~> 1.0.1)
|
|
13
|
+
rack (~> 1.4.0)
|
|
14
|
+
rack-cache (~> 1.2)
|
|
15
|
+
rack-test (~> 0.6.1)
|
|
16
|
+
sprockets (~> 2.1.2)
|
|
17
|
+
activemodel (3.2.3)
|
|
18
|
+
activesupport (= 3.2.3)
|
|
19
|
+
builder (~> 3.0.0)
|
|
20
|
+
activerecord (3.2.3)
|
|
21
|
+
activemodel (= 3.2.3)
|
|
22
|
+
activesupport (= 3.2.3)
|
|
23
|
+
arel (~> 3.0.2)
|
|
24
|
+
tzinfo (~> 0.3.29)
|
|
25
|
+
activeresource (3.2.3)
|
|
26
|
+
activemodel (= 3.2.3)
|
|
27
|
+
activesupport (= 3.2.3)
|
|
28
|
+
activesupport (3.2.3)
|
|
29
|
+
i18n (~> 0.6)
|
|
30
|
+
multi_json (~> 1.0)
|
|
31
|
+
arel (3.0.2)
|
|
32
|
+
builder (3.0.0)
|
|
33
|
+
d3_rails (2.10.0)
|
|
34
|
+
railties (>= 3.1.0)
|
|
35
|
+
erubis (2.7.0)
|
|
36
|
+
hike (1.2.1)
|
|
37
|
+
i18n (0.6.0)
|
|
38
|
+
journey (1.0.3)
|
|
39
|
+
jquery-rails (2.0.2)
|
|
40
|
+
railties (>= 3.2.0, < 5.0)
|
|
41
|
+
thor (~> 0.14)
|
|
42
|
+
json (1.7.0)
|
|
43
|
+
json (1.7.0-java)
|
|
44
|
+
mail (2.4.4)
|
|
45
|
+
i18n (>= 0.4.0)
|
|
46
|
+
mime-types (~> 1.16)
|
|
47
|
+
treetop (~> 1.4.8)
|
|
48
|
+
mime-types (1.18)
|
|
49
|
+
money (5.0.0)
|
|
50
|
+
i18n (~> 0.4)
|
|
51
|
+
json
|
|
52
|
+
money-rails (0.5.0)
|
|
53
|
+
activesupport (~> 3.0)
|
|
54
|
+
money (~> 5.0.0)
|
|
55
|
+
railties (~> 3.0)
|
|
56
|
+
multi_json (1.3.4)
|
|
57
|
+
mysql2 (0.3.11)
|
|
58
|
+
polyglot (0.3.3)
|
|
59
|
+
rack (1.4.1)
|
|
60
|
+
rack-cache (1.2)
|
|
61
|
+
rack (>= 0.4)
|
|
62
|
+
rack-ssl (1.3.2)
|
|
63
|
+
rack
|
|
64
|
+
rack-test (0.6.1)
|
|
65
|
+
rack (>= 1.0)
|
|
66
|
+
rails (3.2.3)
|
|
67
|
+
actionmailer (= 3.2.3)
|
|
68
|
+
actionpack (= 3.2.3)
|
|
69
|
+
activerecord (= 3.2.3)
|
|
70
|
+
activeresource (= 3.2.3)
|
|
71
|
+
activesupport (= 3.2.3)
|
|
72
|
+
bundler (~> 1.0)
|
|
73
|
+
railties (= 3.2.3)
|
|
74
|
+
railties (3.2.3)
|
|
75
|
+
actionpack (= 3.2.3)
|
|
76
|
+
activesupport (= 3.2.3)
|
|
77
|
+
rack-ssl (~> 1.3.2)
|
|
78
|
+
rake (>= 0.8.7)
|
|
79
|
+
rdoc (~> 3.4)
|
|
80
|
+
thor (~> 0.14.6)
|
|
81
|
+
rake (0.9.2.2)
|
|
82
|
+
rdoc (3.12)
|
|
83
|
+
json (~> 1.4)
|
|
84
|
+
rest-client (1.6.7)
|
|
85
|
+
mime-types (>= 1.16)
|
|
86
|
+
sprockets (2.1.3)
|
|
87
|
+
hike (~> 1.2)
|
|
88
|
+
rack (~> 1.0)
|
|
89
|
+
tilt (~> 1.1, != 1.3.0)
|
|
90
|
+
thor (0.14.6)
|
|
91
|
+
tilt (1.3.3)
|
|
92
|
+
treetop (1.4.10)
|
|
93
|
+
polyglot
|
|
94
|
+
polyglot (>= 0.3.1)
|
|
95
|
+
tzinfo (0.3.33)
|
|
96
|
+
|
|
97
|
+
PLATFORMS
|
|
98
|
+
java
|
|
99
|
+
ruby
|
|
100
|
+
|
|
101
|
+
DEPENDENCIES
|
|
102
|
+
d3_rails (~> 2.10.0)
|
|
103
|
+
jquery-rails
|
|
104
|
+
money-rails (~> 0.5.0)
|
|
105
|
+
mysql2
|
|
106
|
+
rails (~> 3.2.3)
|
|
107
|
+
rest-client (~> 1.6.7)
|
data/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Getting started
|
|
2
|
+
===============
|
|
3
|
+
|
|
4
|
+
Running Kaui
|
|
5
|
+
------------
|
|
6
|
+
|
|
7
|
+
You can run Kaui locally using the dummy app in the test directory:
|
|
8
|
+
|
|
9
|
+
# Point to your killbill installation
|
|
10
|
+
export KILLBILL_URL="http://killbill.company.com:8080"
|
|
11
|
+
cd test/dummy && rails s
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Mounting Kaui into your own Rails app
|
|
15
|
+
-------------------------------------
|
|
16
|
+
|
|
17
|
+
The Kaui gem comes with a `kaui` script to mount it in your existing Rails app. See the [Getting Started](http://killbilling.org/start.html#kaui_deployment) guide.
|
|
18
|
+
|
|
19
|
+
Kaui expects the container app to define the <tt>current_user</tt> method, which returns the
|
|
20
|
+
name of the logged-in user. This is used by Killbill for auditing purposes.
|
|
21
|
+
|
|
22
|
+
Finally, Killbill server needs to be running for Kaui to fetch its information. Set the `KILLBILL_URL`
|
|
23
|
+
variable to point to your existing Killbill installation (e.g. http://killbill.company.com:8080).
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Running tests
|
|
27
|
+
-------------
|
|
28
|
+
|
|
29
|
+
Prepare a kaui_test database locally to be able to run the test suite:
|
|
30
|
+
|
|
31
|
+
create database kaui_test;
|
|
32
|
+
grant all privileges on kaui_test.* to 'root'@'localhost' identified by '';
|
|
33
|
+
|
|
34
|
+
You can run tests using rake:
|
|
35
|
+
|
|
36
|
+
rake test
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
Development
|
|
40
|
+
===========
|
|
41
|
+
|
|
42
|
+
Working with the kaui script
|
|
43
|
+
----------------------------
|
|
44
|
+
|
|
45
|
+
In order to generate the Rubygems-friendly `kaui` script, you need to build the gem
|
|
46
|
+
and install it locally.
|
|
47
|
+
|
|
48
|
+
First, build the gem in the `pkg` directory:
|
|
49
|
+
|
|
50
|
+
rake build
|
|
51
|
+
|
|
52
|
+
Then, install and run it from a local directory:
|
|
53
|
+
|
|
54
|
+
mkdir foo
|
|
55
|
+
gem install pkg/kaui-*.gem -i foo
|
|
56
|
+
GEM_PATH=$PWD/foo:$GEM_PATH ./foo/bin/kaui /path/to/rails/app --path=$PWD --skip-bundle
|
|
57
|
+
|
|
58
|
+
Alternatively, you can run the `kaui` script under `bin` by setting your loadpath correctly:
|
|
59
|
+
|
|
60
|
+
ruby -Ilib bin/kaui /path/to/rails/app --path=$PWD --skip-bundle
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Restrict numeric input for a text field
|
|
2
|
+
// TODO - consider switching to HTML5's <input type="number" />
|
|
3
|
+
function preventNonNumericValues(event) {
|
|
4
|
+
// Allow: backspace, delete, tab, escape, and enter
|
|
5
|
+
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
|
|
6
|
+
// Allow: Ctrl+A
|
|
7
|
+
(event.keyCode == 65 && event.ctrlKey === true) ||
|
|
8
|
+
// Allow dot
|
|
9
|
+
(event.keyCode == 190) ||
|
|
10
|
+
// Allow: home, end, left, right
|
|
11
|
+
(event.keyCode >= 35 && event.keyCode <= 39)) {
|
|
12
|
+
// let it happen, don't do anything
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// Ensure that it is a number and stop the keypress
|
|
17
|
+
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
path {
|
|
2
|
+
stroke: steelblue;
|
|
3
|
+
stroke-width: 1;
|
|
4
|
+
fill: none;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.axis {
|
|
8
|
+
shape-rendering: crispEdges;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.x.axis line {
|
|
12
|
+
stroke: lightgrey;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.x.axis .minor {
|
|
16
|
+
stroke-opacity: .5;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.x.axis path {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.y.axis line, .y.axis path {
|
|
24
|
+
fill: none;
|
|
25
|
+
stroke: #000;
|
|
26
|
+
}
|
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
module Kaui
|
|
2
|
-
class AnalyticsController <
|
|
2
|
+
class AnalyticsController < Kaui::EngineController
|
|
3
3
|
def index
|
|
4
4
|
@slugs = []
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
begin
|
|
6
|
+
catalog = Kaui::KillbillHelper::get_full_catalog()
|
|
7
|
+
catalog['products'].each do |product|
|
|
8
|
+
product['plans'].each do |plan|
|
|
9
|
+
name = plan['name']
|
|
10
|
+
plan['phases'].each do |phase|
|
|
11
|
+
type = phase['type']
|
|
12
|
+
@slugs << "#{name.downcase}-#{type.downcase}"
|
|
13
|
+
end
|
|
12
14
|
end
|
|
13
15
|
end
|
|
16
|
+
@product_type = catalog['name']
|
|
17
|
+
rescue => e
|
|
18
|
+
flash[:error] = "Error while retrieving catalog: #{as_string(e)}"
|
|
14
19
|
end
|
|
15
|
-
@product_type = catalog['name']
|
|
16
20
|
end
|
|
17
21
|
|
|
18
22
|
def accounts_over_time
|
|
19
|
-
|
|
23
|
+
begin
|
|
24
|
+
@accounts = Analytics.accounts_over_time
|
|
25
|
+
rescue => e
|
|
26
|
+
flash[:error] = "Error while retrieving data: #{as_string(e)}"
|
|
27
|
+
@accounts = Kaui::TimeSeriesData.empty
|
|
28
|
+
end
|
|
20
29
|
end
|
|
21
30
|
|
|
22
31
|
def subscriptions_over_time
|
|
@@ -25,4 +34,4 @@ module Kaui
|
|
|
25
34
|
@subscriptions = Analytics.subscriptions_over_time(@product_type, @slug)
|
|
26
35
|
end
|
|
27
36
|
end
|
|
28
|
-
end
|
|
37
|
+
end
|
|
@@ -2,8 +2,17 @@ require 'kaui/error_helper'
|
|
|
2
2
|
|
|
3
3
|
class Kaui::EngineController < ApplicationController
|
|
4
4
|
include Kaui::ErrorHelper
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
#
|
|
5
|
+
|
|
6
|
+
layout :get_layout
|
|
7
|
+
|
|
8
|
+
# Used for auditing purposes
|
|
9
|
+
def current_user
|
|
10
|
+
super rescue Kaui.config[:default_current_user]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
protected
|
|
14
|
+
|
|
15
|
+
def get_layout
|
|
16
|
+
layout ||= Kaui.config[:layout]
|
|
17
|
+
end
|
|
9
18
|
end
|
|
@@ -36,7 +36,7 @@ class Kaui::InvoicesController < Kaui::EngineController
|
|
|
36
36
|
render :action => :index
|
|
37
37
|
end
|
|
38
38
|
rescue => e
|
|
39
|
-
flash[:error] = "Error while getting information for invoice #{invoice_id}: #{as_string(e)}"
|
|
39
|
+
flash[:error] = "Error while getting information for invoice #{@invoice_id}: #{as_string(e)}"
|
|
40
40
|
end
|
|
41
41
|
else
|
|
42
42
|
flash[:error] = "No id given"
|
|
@@ -19,10 +19,25 @@ class Kaui::RefundsController < Kaui::EngineController
|
|
|
19
19
|
@refunds = Kaui::KillbillHelper::get_refunds_for_payment(params[:id])
|
|
20
20
|
unless @refunds.present?
|
|
21
21
|
flash[:error] = "Refund for id or payment id #{params[:id]} couldn't be found"
|
|
22
|
-
render :action => :index
|
|
22
|
+
render :action => :index and return
|
|
23
23
|
end
|
|
24
24
|
rescue => e
|
|
25
25
|
flash[:error] = "Error while retrieving the refunds for the payment: #{as_string(e)}"
|
|
26
|
+
render :action => :index and return
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
if @refunds.size > 0
|
|
31
|
+
begin
|
|
32
|
+
# Retrieve the account via the payment
|
|
33
|
+
payment = Kaui::KillbillHelper::get_payment(@refunds[0].payment_id)
|
|
34
|
+
unless payment.present?
|
|
35
|
+
flash[:error] = "Account for payment id #{@refunds[0].payment_id} couldn't be found"
|
|
36
|
+
render :action => :index
|
|
37
|
+
end
|
|
38
|
+
@account = Kaui::KillbillHelper::get_account(payment.account_id)
|
|
39
|
+
rescue => e
|
|
40
|
+
flash[:error] = "Error while retrieving the account for the refund: #{as_string(e)}"
|
|
26
41
|
render :action => :index
|
|
27
42
|
end
|
|
28
43
|
end
|
|
@@ -14,6 +14,12 @@ class Kaui::SubscriptionsController < Kaui::EngineController
|
|
|
14
14
|
flash[:error] = "No subscription id given or subscription not found"
|
|
15
15
|
redirect_to :back
|
|
16
16
|
end
|
|
17
|
+
|
|
18
|
+
@account = Kaui::KillbillHelper::get_account_by_bundle_id(@subscription.bundle_id)
|
|
19
|
+
unless @account.present?
|
|
20
|
+
flash[:error] = "Unable to retrieve account for bundle #{@subscription.bundle_id}"
|
|
21
|
+
redirect_to :back
|
|
22
|
+
end
|
|
17
23
|
rescue => e
|
|
18
24
|
flash[:error] = "Error while getting subscription information: #{as_string(e)}"
|
|
19
25
|
end
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
module Kaui
|
|
2
|
-
class TagDefinitionsController <
|
|
2
|
+
class TagDefinitionsController < Kaui::EngineController
|
|
3
3
|
# GET /tag_definitions
|
|
4
4
|
# GET /tag_definitions.json
|
|
5
5
|
def index
|
|
6
|
-
|
|
6
|
+
begin
|
|
7
|
+
@tag_definitions = TagDefinition.all
|
|
8
|
+
rescue => e
|
|
9
|
+
flash[:error] = "Error while retrieving tag definitions: #{as_string(e)}"
|
|
10
|
+
@tag_definitions = []
|
|
11
|
+
end
|
|
7
12
|
|
|
8
13
|
respond_to do |format|
|
|
9
14
|
format.html # index.html.erb
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
module Kaui
|
|
2
2
|
module DateHelper
|
|
3
|
-
def format_date(date)
|
|
4
|
-
|
|
5
|
-
parsed_date = DateTime.parse(date.to_s).in_time_zone("Pacific Time (US & Canada)")
|
|
3
|
+
def format_date(date, timezone="Pacific Time (US & Canada)")
|
|
4
|
+
parsed_date = DateTime.parse(date.to_s).in_time_zone(timezone)
|
|
6
5
|
parsed_date.to_s(:date_only)
|
|
7
6
|
end
|
|
8
7
|
end
|
data/app/models/kaui/account.rb
CHANGED
data/app/models/kaui/bundle.rb
CHANGED
data/app/models/kaui/invoice.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::Invoice < Kaui::Base
|
|
4
2
|
define_attr :amount
|
|
5
3
|
define_attr :balance
|
|
@@ -59,4 +57,4 @@ class Kaui::Invoice < Kaui::Base
|
|
|
59
57
|
def credit_adjustment_to_money(currency)
|
|
60
58
|
Kaui::Base.to_money(credit_adjustment, currency)
|
|
61
59
|
end
|
|
62
|
-
end
|
|
60
|
+
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::InvoiceItem < Kaui::Base
|
|
4
2
|
SAMPLE_REASON_CODES = [ "100 - Courtesy",
|
|
5
3
|
"101 - Billing Error",
|
|
@@ -23,4 +21,4 @@ class Kaui::InvoiceItem < Kaui::Base
|
|
|
23
21
|
def amount_to_money
|
|
24
22
|
Kaui::Base.to_money(amount, currency)
|
|
25
23
|
end
|
|
26
|
-
end
|
|
24
|
+
end
|
data/app/models/kaui/payment.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::Payment < Kaui::Base
|
|
4
2
|
|
|
5
3
|
SAMPLE_REASON_CODES = [ "600 - Alt payment method",
|
|
@@ -13,6 +11,7 @@ class Kaui::Payment < Kaui::Base
|
|
|
13
11
|
define_attr :paid_amount
|
|
14
12
|
define_attr :payment_id
|
|
15
13
|
define_attr :payment_method_id
|
|
14
|
+
# TODO - is this used?
|
|
16
15
|
define_attr :refund_amount
|
|
17
16
|
define_attr :requested_date
|
|
18
17
|
define_attr :retry_count
|
|
@@ -35,4 +34,9 @@ class Kaui::Payment < Kaui::Base
|
|
|
35
34
|
def paid_amount_to_money
|
|
36
35
|
Kaui::Base.to_money(paid_amount, currency)
|
|
37
36
|
end
|
|
38
|
-
|
|
37
|
+
|
|
38
|
+
def is_fully_refunded?
|
|
39
|
+
# paid_amount is the original payment amount minus the refunds
|
|
40
|
+
paid_amount == 0
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::PaymentAttempt < Kaui::Base
|
|
4
2
|
define_attr :account_id
|
|
5
3
|
define_attr :invoice_id
|
|
@@ -26,4 +24,4 @@ class Kaui::PaymentAttempt < Kaui::Base
|
|
|
26
24
|
:udpated_dt => data['updatedDate'],
|
|
27
25
|
:retry_count => data['retryCount'])
|
|
28
26
|
end
|
|
29
|
-
end
|
|
27
|
+
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::PaymentMethod < Kaui::Base
|
|
4
2
|
define_attr :account_id
|
|
5
3
|
define_attr :is_default
|
|
@@ -35,4 +33,4 @@ class Kaui::PaymentMethod < Kaui::Base
|
|
|
35
33
|
def email
|
|
36
34
|
plugin_info.property("email") if plugin_info.present?
|
|
37
35
|
end
|
|
38
|
-
end
|
|
36
|
+
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::PluginInfo < Kaui::Base
|
|
4
2
|
define_attr :external_payment_id
|
|
5
3
|
|
|
@@ -9,4 +7,4 @@ class Kaui::PluginInfo < Kaui::Base
|
|
|
9
7
|
prop = properties.find { |prop| prop.key == key } unless properties.nil?
|
|
10
8
|
prop.value unless prop.nil?
|
|
11
9
|
end
|
|
12
|
-
end
|
|
10
|
+
end
|
data/app/models/kaui/refund.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'active_model'
|
|
2
|
-
|
|
3
1
|
class Kaui::Refund < Kaui::Base
|
|
4
2
|
SAMPLE_REASON_CODES = [ "500 - Courtesy",
|
|
5
3
|
"501 - Billing Error",
|
|
@@ -21,4 +19,4 @@ class Kaui::Refund < Kaui::Base
|
|
|
21
19
|
def amount_to_money
|
|
22
20
|
Kaui::Base.to_money(amount, currency)
|
|
23
21
|
end
|
|
24
|
-
end
|
|
22
|
+
end
|