fluentd-ui 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +6 -0
  3. data/Gemfile.lock +15 -8
  4. data/README.md +5 -5
  5. data/app/controllers/application_controller.rb +2 -2
  6. data/app/controllers/plugins_controller.rb +2 -2
  7. data/app/controllers/sessions_controller.rb +5 -8
  8. data/app/controllers/users_controller.rb +3 -3
  9. data/app/decorators/plugin_decorator.rb +13 -0
  10. data/app/models/plugin.rb +5 -1
  11. data/app/models/user.rb +1 -0
  12. data/app/views/fluentd/_form.html.haml +6 -6
  13. data/app/views/fluentd/errors.html.haml +5 -5
  14. data/app/views/fluentd/settings/_form.html.haml +8 -8
  15. data/app/views/fluentd/settings/edit.html.haml +1 -1
  16. data/app/views/fluentd/settings/in_tail/_form.html.haml +8 -8
  17. data/app/views/fluentd/settings/in_tail/after_file_choose.html.haml +2 -2
  18. data/app/views/fluentd/show.html.haml +1 -1
  19. data/app/views/misc/information.html.haml +13 -13
  20. data/app/views/plugins/recommended.html.haml +4 -5
  21. data/app/views/sessions/new.html.haml +2 -2
  22. data/app/views/shared/_fluentd_nav.html.haml +1 -1
  23. data/app/views/shared/_initial_setup.html.haml +5 -5
  24. data/app/views/users/show.html.haml +10 -7
  25. data/config/application.rb +1 -0
  26. data/config/locales/translation_en.yml +3 -1
  27. data/config/locales/translation_ja.yml +2 -0
  28. data/{fluentd-ui-ss01.png → docs/screenshots/01.png} +0 -0
  29. data/{fluentd-ui-ss02.png → docs/screenshots/02.png} +0 -0
  30. data/{fluentd-ui-ss03.png → docs/screenshots/03.png} +0 -0
  31. data/{fluentd-ui-ss04.png → docs/screenshots/04.png} +0 -0
  32. data/{fluentd-ui-ss05.png → docs/screenshots/05.png} +0 -0
  33. data/fluentd-ui.gemspec +1 -0
  34. data/lib/fluentd-ui/command.rb +2 -0
  35. data/lib/fluentd-ui/version.rb +1 -1
  36. data/spec/decorators/plugin_decorator_spec.rb +37 -0
  37. data/spec/models/fluentd/setting/common_spec.rb +2 -2
  38. metadata +24 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d2d1064458092132d6bf08276249d5cad01fa53
4
- data.tar.gz: 3bb9c625c6ca4de47099cacb840c373c52c7a644
3
+ metadata.gz: 7eac024b627f727c53f8429ab3bb81b2fcb75875
4
+ data.tar.gz: 5ecc8f5e6a65da1879b456fb727c0ef31a62deff
5
5
  SHA512:
6
- metadata.gz: 8f15c770ef0d50c63618650c3c29acab0c071e1570acf43d88eb2f93bfc0bbc92b296d1cfbe0d5c7da72d78cf6d55460d162d5027f409d37d71cd6a68babe5b7
7
- data.tar.gz: f7588dedf26ee58a15caefe100f0f0640013f9844f8d00cd0a948885b1be562d0876102d013f57868dd937d8bfb4e2b777180439938f7a7c9ec35e45809a282e
6
+ metadata.gz: 84004c0b946e7844e380cda52be386e74cf44f14892b1803d5000151ca54d7b06453b05ddfe87204c06c93c30bfbccae2a792d2317fa8d04d142ccbabb313735
7
+ data.tar.gz: 4ff2e1e07a0d5d8522b4f39e6b496723893bf330ccb94172820b6ba529803633dc8ab71f66f8866ce13cc5c4d58f67235073a2451f5ffea911a15522224996bf
data/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ Release 0.3.0 - 2014/10/22
2
+
3
+ * [feature] Potentially support for multiple user name (not have UI to do it)
4
+ * [improve] Improve installing plugin processing experience
5
+ * [improve] Some messages added or fixed
6
+
1
7
  Release 0.2.0 - 2014/09/02
2
8
 
3
9
  * [compatibility] Login password is reset as default if v0.1.x user who updates thier password.
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluentd-ui (0.2.0)
4
+ fluentd-ui (0.3.0)
5
5
  addressable
6
6
  bundler
7
+ draper (~> 1.3)
7
8
  fluentd (~> 0.10.51)
8
9
  font-awesome-rails
9
10
  haml-rails (~> 0.5.3)
@@ -69,20 +70,25 @@ GEM
69
70
  diff-lcs (1.2.5)
70
71
  domain_name (0.5.19)
71
72
  unf (>= 0.0.5, < 1.0.0)
73
+ draper (1.4.0)
74
+ actionpack (>= 3.0)
75
+ activemodel (>= 3.0)
76
+ activesupport (>= 3.0)
77
+ request_store (~> 1.0)
72
78
  erubis (2.7.0)
73
79
  factory_girl (4.4.0)
74
80
  activesupport (>= 3.0.0)
75
81
  factory_girl_rails (4.4.1)
76
82
  factory_girl (~> 4.4.0)
77
83
  railties (>= 3.0.0)
78
- fluentd (0.10.51)
84
+ fluentd (0.10.53)
79
85
  cool.io (>= 1.1.1, < 2.0.0, != 1.2.0)
80
86
  http_parser.rb (>= 0.5.1, < 0.7.0)
81
87
  json (>= 1.4.3)
82
88
  msgpack (>= 0.4.4, < 0.6.0, != 0.5.3, != 0.5.2, != 0.5.1, != 0.5.0)
83
89
  sigdump (~> 0.2.2)
84
90
  yajl-ruby (~> 1.0)
85
- font-awesome-rails (4.1.0.0)
91
+ font-awesome-rails (4.2.0.0)
86
92
  railties (>= 3.2, < 5.0)
87
93
  haml (4.0.5)
88
94
  tilt
@@ -95,19 +101,19 @@ GEM
95
101
  http-cookie (1.0.2)
96
102
  domain_name (~> 0.5)
97
103
  http_parser.rb (0.6.0)
98
- httpclient (2.4.0)
104
+ httpclient (2.5.1)
99
105
  i18n (0.6.9)
100
106
  i18n_generators (1.2.1)
101
107
  mechanize
102
108
  rails (>= 3.0.0)
103
- jbuilder (2.1.2)
109
+ jbuilder (2.1.3)
104
110
  activesupport (>= 3.0.0, < 5)
105
111
  multi_json (~> 1.2)
106
- jquery-rails (3.1.1)
112
+ jquery-rails (3.1.2)
107
113
  railties (>= 3.0, < 5.0)
108
114
  thor (>= 0.14, < 2.0)
109
115
  json (1.8.1)
110
- kramdown (1.4.0)
116
+ kramdown (1.4.2)
111
117
  kramdown-haml (0.0.3)
112
118
  haml
113
119
  mail (2.5.4)
@@ -143,7 +149,7 @@ GEM
143
149
  coderay (~> 1.1.0)
144
150
  method_source (~> 0.8.1)
145
151
  slop (~> 3.4)
146
- puma (2.9.0)
152
+ puma (2.9.1)
147
153
  rack (>= 1.1, < 2.0)
148
154
  rack (1.5.2)
149
155
  rack-test (0.6.2)
@@ -164,6 +170,7 @@ GEM
164
170
  rake (>= 0.8.7)
165
171
  thor (>= 0.18.1, < 2.0)
166
172
  rake (10.3.2)
173
+ request_store (1.1.0)
167
174
  rspec-collection_matchers (1.0.0)
168
175
  rspec-expectations (>= 2.99.0.beta1)
169
176
  rspec-core (2.99.1)
data/README.md CHANGED
@@ -59,8 +59,8 @@ fluentd-ui has the same tasks of `bundle gem foobar; cd foobar; rake -T`.
59
59
 
60
60
  (v0.1.0)
61
61
 
62
- ![ss01](./fluentd-ui-ss01.png)
63
- ![ss02](./fluentd-ui-ss02.png)
64
- ![ss03](./fluentd-ui-ss03.png)
65
- ![ss04](./fluentd-ui-ss04.png)
66
- ![ss05](./fluentd-ui-ss05.png)
62
+ ![ss01](./docs/screenshots/01.png)
63
+ ![ss02](./docs/screenshots/02.png)
64
+ ![ss03](./docs/screenshots/03.png)
65
+ ![ss04](./docs/screenshots/04.png)
66
+ ![ss05](./docs/screenshots/05.png)
@@ -15,8 +15,8 @@ class ApplicationController < ActionController::Base
15
15
  private
16
16
 
17
17
  def current_user
18
- return unless session[:succeed_password]
19
- @current_user ||= User.new(name: "admin").authenticate(session[:succeed_password])
18
+ return unless session[:password]
19
+ @current_user ||= User.new(name: session[:user_name]).authenticate(session[:password])
20
20
  end
21
21
 
22
22
  def login_required
@@ -4,11 +4,11 @@ class PluginsController < ApplicationController
4
4
  end
5
5
 
6
6
  def installed
7
- @plugins = Plugin.installed
7
+ @plugins = Plugin.installed.reject{|plugin| plugin.processing? }
8
8
  end
9
9
 
10
10
  def recommended
11
- @plugins = Plugin.recommended
11
+ @plugins = PluginDecorator.decorate_collection(Plugin.recommended)
12
12
  end
13
13
 
14
14
  def updated
@@ -4,11 +4,6 @@ class SessionsController < ApplicationController
4
4
  before_action :set_user
5
5
 
6
6
  def create
7
- if session_params[:name] != "admin" # NOTE: Application user is "admin" only, other user name is invalid for now.
8
- flash.now[:notice] = I18n.t("messages.login_failed")
9
- return render :new
10
- end
11
-
12
7
  unless @user.authenticate(session_params[:password])
13
8
  flash.now[:notice] = I18n.t("messages.login_failed")
14
9
  return render :new
@@ -21,14 +16,15 @@ class SessionsController < ApplicationController
21
16
  end
22
17
 
23
18
  def destroy
24
- session.delete :succeed_password
19
+ session.delete :user_name
20
+ session.delete :password
25
21
  redirect_to new_sessions_path
26
22
  end
27
23
 
28
24
  private
29
25
 
30
26
  def set_user
31
- @user = User.new(name: "admin")
27
+ @user = User.new(name: (params[:session] || {})[:name])
32
28
  end
33
29
 
34
30
  def session_params
@@ -41,6 +37,7 @@ class SessionsController < ApplicationController
41
37
  #
42
38
  # Currently, only store to session if default password is used.
43
39
  # TODO: How to keep a login session to be decide
44
- session[:succeed_password] = session_params[:password]
40
+ session[:user_name] = user.name
41
+ session[:password] = session_params[:password]
45
42
  end
46
43
  end
@@ -8,14 +8,14 @@ class UsersController < ApplicationController
8
8
  unless @user.update_attributes(user_params)
9
9
  return render :show
10
10
  end
11
- session[:succeed_password] = user_params[:password]
12
- redirect_to user_path
11
+ session[:password] = user_params[:password]
12
+ redirect_to user_path, notice: I18n.t("messages.password_successfully_updated")
13
13
  end
14
14
 
15
15
  private
16
16
 
17
17
  def find_user
18
- @user = User.new(name: "admin") # user is only "admin"
18
+ @user = User.new(name: session[:user_name])
19
19
  end
20
20
 
21
21
  def user_params
@@ -0,0 +1,13 @@
1
+ class PluginDecorator < Draper::Decorator
2
+ delegate_all
3
+
4
+ def status
5
+ if processing?
6
+ I18n.t("terms.processing")
7
+ elsif installed?
8
+ I18n.t("terms.installed")
9
+ else
10
+ I18n.t("terms.not_installed")
11
+ end
12
+ end
13
+ end
data/app/models/plugin.rb CHANGED
@@ -8,6 +8,7 @@ class Plugin
8
8
  WORKING = []
9
9
 
10
10
  include ActiveModel::Model
11
+ include Draper::Decoratable
11
12
 
12
13
  attr_accessor :gem_name, :version, :category
13
14
  validates :gem_name, presence: true
@@ -88,7 +89,9 @@ class Plugin
88
89
  def self.installed
89
90
  Rails.cache.fetch("installed_gems", expires_in: 3.seconds) do
90
91
  Bundler.with_clean_env do
91
- gems = `#{fluent_gem_path} list`.try(:lines)
92
+ fluent_gem = fluent_gem_path
93
+ return [] unless fluent_gem
94
+ gems = `#{fluent_gem} list`.try(:lines)
92
95
  return [] unless gems
93
96
  gems.grep(/fluent-plugin/).map do |gem|
94
97
  name, versions_str = gem.strip.split(" ")
@@ -149,6 +152,7 @@ class Plugin
149
152
  /opt/td-agent/embedded/bin/fluent-gem
150
153
  /usr/lib/fluent/ruby/bin/fluent-gem
151
154
  /usr/lib64/fluent/ruby/bin/fluent-gem
155
+ fluent-gem
152
156
  ).find do |path|
153
157
  system("which #{path}", out: File::NULL, err: File::NULL)
154
158
  end
data/app/models/user.rb CHANGED
@@ -18,6 +18,7 @@ class User
18
18
  validate :valid_password_confirmation
19
19
 
20
20
  def authenticate(unencrypted_password)
21
+ return false if @name != "admin"
21
22
  digest(unencrypted_password) == stored_digest
22
23
  end
23
24
 
@@ -1,27 +1,27 @@
1
- %div.col-xs-6
1
+ .col-xs-6
2
2
  - @fluentd.errors.full_messages.each do |e|
3
- %div.alert.alert-danger= e
3
+ .alert.alert-danger= e
4
4
 
5
5
  = form_for(:fluentd, url: url, method: method) do |f|
6
- %div.form-group
6
+ .form-group
7
7
  = f.label :variant
8
8
  = f.hidden_field :variant
9
9
  = @fluentd.variant
10
- %div.form-group
10
+ .form-group
11
11
  = f.label :pid_file
12
12
  - if @fluentd.td_agent?
13
13
  = f.text_field :pid_file, class: "form-control", disabled: true
14
14
  = f.hidden_field :pid_file
15
15
  - else
16
16
  = f.text_field :pid_file, class: "form-control"
17
- %div.form-group
17
+ .form-group
18
18
  = f.label :log_file
19
19
  - if @fluentd.td_agent?
20
20
  = f.text_field :log_file, class: "form-control", disabled: true
21
21
  = f.hidden_field :log_file
22
22
  - else
23
23
  = f.text_field :log_file, class: "form-control"
24
- %div.form-group
24
+ .form-group
25
25
  = f.label :config_file
26
26
  - if @fluentd.td_agent?
27
27
  = f.text_field :config_file, class: "form-control", disabled: true
@@ -3,14 +3,14 @@
3
3
  = icon('fa-download')
4
4
  = t('fluentd.common.raw_log_link')
5
5
 
6
- %div.row
7
- %div.col-xs-12
6
+ .row
7
+ .col-xs-12
8
8
  - @errors.each do |error|
9
- %div.panel.panel-default
10
- %div.panel-heading
9
+ .panel.panel-default
10
+ .panel-heading
11
11
  %h4= error[:subject]
12
12
  - if error[:notes].present?
13
- %div.panel-body
13
+ .panel-body
14
14
  %ul
15
15
  - error[:notes].each do |stack|
16
16
  %li= stack
@@ -1,12 +1,12 @@
1
1
 
2
2
  - @setting.errors.full_messages.each do |e|
3
- %div.alert.alert-danger= e
3
+ .alert.alert-danger= e
4
4
 
5
- %div.form-group
5
+ .form-group
6
6
  = f.label :path
7
7
  = f.hidden_field :path
8
8
  = f.text_field :path, class: "form-control", disabled: true
9
- %div.form-group
9
+ .form-group
10
10
  = f.label :format
11
11
  = f.hidden_field :format
12
12
  = f.text_field :format, class: "form-control", disabled: true
@@ -20,10 +20,10 @@
20
20
  %label= @setting.format
21
21
  = f.hidden_field :regexp
22
22
  = @setting.regexp
23
- %div.form-group
23
+ .form-group
24
24
  = f.label :tag
25
25
  = f.text_field :tag, class: "form-control"
26
- %div.form-group
26
+ .form-group
27
27
  = f.label :pos_file
28
28
  = f.text_field :pos_file, class: "form-control"
29
29
  .well.well-sm
@@ -31,13 +31,13 @@
31
31
  = icon('fa-caret-down')
32
32
  = t('terms.advanced_setting')
33
33
  #advanced-setting.collapse
34
- %div.form-group
34
+ .form-group
35
35
  = f.label :rotate_wait
36
36
  = f.text_field :rotate_wait, class: "form-control"
37
- %div.form-group
37
+ .form-group
38
38
  = f.label :read_from_head
39
39
  = f.check_box :read_from_head, class: "form-control"
40
- %div.form-group
40
+ .form-group
41
41
  = f.label :refresh_interval
42
42
  = f.text_field :refresh_interval, class: "form-control"
43
43
 
@@ -1,7 +1,7 @@
1
1
  - page_title t('.page_title', label: @fluentd.label)
2
2
 
3
3
  = form_tag(daemon_setting_path(@fluentd), method: :patch) do
4
- %div.form-group
4
+ .form-group
5
5
  = text_area_tag "config", @config, class: "form-control", rows: 40
6
6
  %p.text.text-danger= t('terms.notice_restart_for_config_edit', brand: fluentd_ui_brand)
7
7
  = submit_tag t("terms.update"), class: "btn btn-primary"
@@ -1,11 +1,11 @@
1
1
  - @setting.errors.full_messages.each do |e|
2
- %div.alert.alert-danger= e
2
+ .alert.alert-danger= e
3
3
 
4
- %div.form-group
4
+ .form-group
5
5
  = f.label :path
6
6
  = f.hidden_field :path
7
7
  = f.text_field :path, class: "form-control", disabled: true
8
- %div.form-group
8
+ .form-group
9
9
  = f.label :format
10
10
  = f.hidden_field :format
11
11
  = f.text_field :format, class: "form-control", disabled: true
@@ -19,10 +19,10 @@
19
19
  %label= @setting.format
20
20
  = f.hidden_field :regexp
21
21
  = @setting.regexp
22
- %div.form-group
22
+ .form-group
23
23
  = f.label :tag
24
24
  = f.text_field :tag, class: "form-control"
25
- %div.form-group
25
+ .form-group
26
26
  = f.label :pos_file
27
27
  = f.text_field :pos_file, class: "form-control"
28
28
  .well.well-sm
@@ -30,13 +30,13 @@
30
30
  = icon('fa-caret-down')
31
31
  = t('terms.advanced_setting')
32
32
  #advanced-setting.collapse
33
- %div.form-group
33
+ .form-group
34
34
  = f.label :rotate_wait
35
35
  = f.text_field :rotate_wait, class: "form-control"
36
- %div.form-group
36
+ .form-group
37
37
  = f.label :read_from_head
38
38
  = f.check_box :read_from_head, class: "form-control"
39
- %div.form-group
39
+ .form-group
40
40
  = f.label :refresh_interval
41
41
  = f.text_field :refresh_interval, class: "form-control"
42
42
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  = form_for(@setting, as: "setting", url: after_format_daemon_setting_in_tail_path(@fluentd)) do |f|
6
6
  - @setting.errors.full_messages.each do |e|
7
- %div.alert.alert-danger= e
7
+ .alert.alert-danger= e
8
8
 
9
- %div.form-group
9
+ .form-group
10
10
  = f.label :path
11
11
  = f.hidden_field :path
12
12
  = f.text_field :path, class: "form-control", disabled: true
@@ -13,7 +13,7 @@
13
13
  = t("fluentd.common.stopped")
14
14
  .panel-body
15
15
  - if flash[:error]
16
- %div.alert.alert-danger= flash[:error]
16
+ .alert.alert-danger= flash[:error]
17
17
  = link_to icon("fa-play") << t("fluentd.common.start"), start_daemon_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "disabled btn-default" : "btn-primary"}"
18
18
  = link_to icon("fa-pause") << t("fluentd.common.stop"), stop_daemon_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "btn-danger" : "disabled btn-default"}"
19
19
  = link_to icon("fa-refresh") << t("fluentd.common.restart"), restart_daemon_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "btn-warning" : "disabled btn-default"}"
@@ -12,11 +12,11 @@
12
12
  = t('.update_fluentd_ui_caution', brand: fluentd_ui_brand)
13
13
 
14
14
  .row
15
- %div.col-xs-6
16
- %div.panel.panel-default
17
- %div.panel-heading
18
- %h4= t ".version"
19
- %div.panel-body
15
+ .col-xs-6
16
+ .panel.panel-default
17
+ .panel-heading
18
+ %h4= t("terms.version")
19
+ .panel-body
20
20
  %dl{class: "dl-horizontal"}
21
21
  %dt ruby
22
22
  %dd= RUBY_DESCRIPTION
@@ -26,11 +26,11 @@
26
26
  %dt fluentd-ui
27
27
  %dd= FluentdUI::VERSION
28
28
 
29
- %div.col-xs-6
30
- %div.panel.panel-default
31
- %div.panel-heading
32
- %h4= t('.installed_plugins')
33
- %div.panel-body
29
+ .col-xs-6
30
+ .panel.panel-default
31
+ .panel-heading
32
+ %h4= t('terms.installed_plugins')
33
+ .panel-body
34
34
  - if @plugins.present?
35
35
  %table{class: "table table-hover", id: "plugins-table"}
36
36
  %thead
@@ -46,9 +46,9 @@
46
46
  = t "plugins.common.no_installed"
47
47
 
48
48
  .row
49
- %div.col-xs-12
50
- %div.panel.panel-default
51
- %div.panel-heading
49
+ .col-xs-12
50
+ .panel.panel-default
51
+ .panel-heading
52
52
  %h4{"data-toggle" => "collapse", "href" => "#env-table"}
53
53
  = icon('fa-caret-down')
54
54
  = t('.env')
@@ -12,7 +12,7 @@
12
12
  - @plugins.each do |plugin|
13
13
  %tr
14
14
  %td
15
- - unless plugin.installed?
15
+ - unless plugin.installed? || plugin.processing?
16
16
  = link_to t("terms.install"), install_plugins_path, class: "js-install btn btn-primary", data: { url: install_plugins_path, name: plugin.gem_name}
17
17
  %td
18
18
  %label{for: "plugin_#{plugin.gem_name}"}
@@ -20,10 +20,7 @@
20
20
  %td
21
21
  = plugin.category
22
22
  %td
23
- - if plugin.installed?
24
- = t("plugins.common.installed")
25
- - else
26
- = t(".not_installed")
23
+ = plugin.status
27
24
  %td
28
25
  = link_to t('plugins.view_on_rubygems_org'), plugin.rubygems_org_page, target: "_blank"
29
26
 
@@ -54,6 +51,8 @@
54
51
  method: "POST"
55
52
  }).done(function(){
56
53
  $anchor.fadeOut();
54
+ var status = $anchor.parent().closest('tr').children()[3];
55
+ $(status).text("#{t("terms.processing")}");
57
56
  });;
58
57
  });
59
58
  });
@@ -5,9 +5,9 @@
5
5
  .panel-body
6
6
  = render partial: "shared/error"
7
7
  = form_for(:session, url: sessions_path) do |f|
8
- %div.form-group
8
+ .form-group
9
9
  = f.text_field :name, placeholder: t('terms.name')
10
- %div.form-group
10
+ .form-group
11
11
  = f.password_field :password, placeholder: t('terms.password')
12
12
 
13
13
  = submit_tag t("terms.sign_in"), class: "btn btn-success"
@@ -2,7 +2,7 @@
2
2
  = @fluentd.agent.running? ? t("fluentd.common.running") : t("fluentd.common.stopped")
3
3
 
4
4
  - if flash[:error]
5
- %div.alert.alert-danger= flash[:error]
5
+ .alert.alert-danger= flash[:error]
6
6
 
7
7
  = link_to t("fluentd.common.detail"), daemon_path(@fluentd)
8
8
  = link_to t("fluentd.common.start"), start_daemon_agent_path(@fluentd), method: :put
@@ -1,11 +1,11 @@
1
1
  - page_title "fluentd"
2
2
 
3
- %div.row
4
- %div.col-xs-6
5
- %div.well
3
+ .row
4
+ .col-xs-6
5
+ .well
6
6
  %span= link_to icon("fa-cog") << t("terms.setup", target: "fluentd"), new_daemon_path(variant: "fluentd_gem"), class: "btn btn-primary btn-lg"
7
- %div.col-xs-6
8
- %div.well
7
+ .col-xs-6
8
+ .well
9
9
  %span
10
10
  = link_to icon("fa-cog") << t("terms.setup", target: "td-agent"), new_daemon_path(variant: "td-agent"), class: "btn btn-lg #{has_td_agent_system? ? "btn-primary" : "btn-default disabled"}"
11
11
  - unless has_td_agent_system?
@@ -2,21 +2,24 @@
2
2
 
3
3
 
4
4
 
5
- %div.col-xs-6
6
- - @user.errors.full_messages.each do |e|
7
- %div.alert.alert-danger= e
5
+ .col-xs-6
6
+ - if notice
7
+ .alert.alert-success= notice
8
+ - else
9
+ - @user.errors.full_messages.each do |e|
10
+ .alert.alert-danger= e
8
11
 
9
12
  = form_for(:user, url: user_path, method: :patch) do |f|
10
- %div.form-group
13
+ .form-group
11
14
  = f.label :name
12
15
  = f.text_field :name, class: "form-control", disabled: true
13
- %div.form-group
16
+ .form-group
14
17
  = f.label :current_password
15
18
  = f.password_field :current_password, class: "form-control"
16
- %div.form-group
19
+ .form-group
17
20
  = f.label :password
18
21
  = f.password_field :password, class: "form-control"
19
- %div.form-group
22
+ .form-group
20
23
  = f.label :password_confirmation
21
24
  = f.password_field :password_confirmation, class: "form-control"
22
25
  = f.submit t("terms.update_password"), class: "btn btn-primary"
@@ -12,6 +12,7 @@ require "sprockets/railtie"
12
12
  # you've limited to :test, :development, or :production.
13
13
  Bundler.require(*Rails.groups)
14
14
  # these gems are not required by Bundler.require
15
+ require "draper"
15
16
  require "sass"
16
17
  require "haml-rails"
17
18
  require "jquery-rails"
@@ -8,6 +8,7 @@ en:
8
8
  fluentd_stop_failed: Failed to stop fluentd
9
9
  fluentd_restart_failed: Failed to restart fluentd
10
10
  fluentd_start_stop_delay_notice: "'%{action} daemon' is accepted. That operation could take a minute for complete."
11
+ password_successfully_updated: "Your password has been changed successfully."
11
12
 
12
13
  terms: &terms
13
14
  name: Name
@@ -19,6 +20,7 @@ en:
19
20
  upgrade: Upgrade
20
21
  installed: Installed
21
22
  not_installed: Not Installed
23
+ processing: Processing
22
24
  new_version: "%{version} is available"
23
25
  install_latest: Install latest
24
26
  installed_plugins: Installed Plugins
@@ -70,7 +72,7 @@ en:
70
72
  installed:
71
73
  page_title: Installed Plugins
72
74
  recommended:
73
- page_title: Recommened Plugins
75
+ page_title: Recommended Plugins
74
76
  updated:
75
77
  page_title: Updated Plugins
76
78
 
@@ -8,6 +8,7 @@ ja:
8
8
  fluentd_stop_failed: "%{brand}の停止に失敗しました。"
9
9
  fluentd_restart_failed: "%{brand}の再起動に失敗しました。"
10
10
  fluentd_start_stop_delay_notice: "デーモンの%{action}を受け付けました。処理が完了するまで時間がかかる場合があります。"
11
+ password_successfully_updated: "パスワードを変更しました。"
11
12
 
12
13
  terms: &terms
13
14
  name: アカウント名
@@ -21,6 +22,7 @@ ja:
21
22
  upgrade: アップグレード
22
23
  installed: インストール済み
23
24
  not_installed: 未インストール
25
+ processing: 処理中
24
26
  new_version: "%{version}があります"
25
27
  plugins: プラグイン
26
28
  misc: その他
File without changes
File without changes
File without changes
File without changes
File without changes
data/fluentd-ui.gemspec CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency "haml-rails", "~> 0.5.3"
34
34
  spec.add_dependency 'jquery-rails', "~> 3.1.0"
35
35
  spec.add_dependency 'jbuilder', '~> 2.0'
36
+ spec.add_dependency "draper", '~> 1.3'
36
37
  spec.add_dependency "bundler"
37
38
  spec.add_dependency "httpclient"
38
39
  spec.add_dependency "settingslogic"
@@ -8,6 +8,7 @@ module FluentdUI
8
8
  option :pidfile, type: :string, default: File.expand_path('tmp/fluentd-ui.pid', ROOT)
9
9
  option :daemonize, type: :boolean, default: false
10
10
  def start
11
+ trap(:INT) { puts "\nStopping..." }
11
12
  system(*%W(bundle exec rackup #{options[:daemonize] ? "-D" : ""} --pid #{options[:pidfile]} -p #{options[:port]} -E production #{ROOT}/config.ru))
12
13
  end
13
14
 
@@ -40,6 +41,7 @@ module FluentdUI
40
41
  install dependency gems
41
42
  DESC
42
43
  def setup
44
+ trap(:INT) { puts "\nStopping..." }
43
45
  system(*%W(bundle install))
44
46
  end
45
47
 
@@ -1,3 +1,3 @@
1
1
  module FluentdUI
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe PluginDecorator do
4
+ let(:decorated_plugin) { build(:plugin).decorate }
5
+
6
+ describe "#status" do
7
+ subject { decorated_plugin.status }
8
+
9
+ context "plugin is processing" do
10
+ before { decorated_plugin.stub(:processing?).and_return(true) }
11
+
12
+ it "returns the term for processing" do
13
+ expect(subject).to eq I18n.t("terms.processing")
14
+ end
15
+ end
16
+
17
+ context "plugin isn't while processing" do
18
+ before { decorated_plugin.stub(:processing?).and_return(false) }
19
+
20
+ context "plugin is already installed" do
21
+ before { decorated_plugin.stub(:installed?).and_return(true) }
22
+
23
+ it "returns the term for installed" do
24
+ expect(subject).to eq I18n.t("terms.installed")
25
+ end
26
+ end
27
+
28
+ context "plugin isn't installed yet" do
29
+ before { decorated_plugin.stub(:installed?).and_return(false) }
30
+
31
+ it "returns the term for not installed" do
32
+ expect(subject).to eq I18n.t("terms.not_installed")
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -121,8 +121,8 @@ describe Fluentd::Setting::Common do
121
121
  end
122
122
  @klass = Class.new do
123
123
  include Fluentd::Setting::Common
124
- KEYS = [:key1, :key2, :flag1, :hide, :ch, :child, :string] # FIXME: display "warning: already initialized constant KEYS", but works :(
125
- attr_accessor(*KEYS)
124
+ const_set(:KEYS, [:key1, :key2, :flag1, :hide, :ch, :child, :string])
125
+ attr_accessor(*const_get(:KEYS))
126
126
  booleans :key1, :key2
127
127
  flags :flag1
128
128
  hidden :hide
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluentd-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Nakagawa
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-02 00:00:00.000000000 Z
12
+ date: 2014-10-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
@@ -137,6 +137,20 @@ dependencies:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
139
  version: '2.0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: draper
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '1.3'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.3'
140
154
  - !ruby/object:Gem::Dependency
141
155
  name: bundler
142
156
  requirement: !ruby/object:Gem::Requirement
@@ -301,6 +315,7 @@ files:
301
315
  - app/controllers/tutorials_controller.rb
302
316
  - app/controllers/users_controller.rb
303
317
  - app/controllers/welcome_controller.rb
318
+ - app/decorators/plugin_decorator.rb
304
319
  - app/helpers/application_helper.rb
305
320
  - app/helpers/fluentd/settings_helper.rb
306
321
  - app/helpers/miscs_helper.rb
@@ -423,11 +438,11 @@ files:
423
438
  - config/secrets.yml
424
439
  - db/schema.rb
425
440
  - db/seeds.rb
426
- - fluentd-ui-ss01.png
427
- - fluentd-ui-ss02.png
428
- - fluentd-ui-ss03.png
429
- - fluentd-ui-ss04.png
430
- - fluentd-ui-ss05.png
441
+ - docs/screenshots/01.png
442
+ - docs/screenshots/02.png
443
+ - docs/screenshots/03.png
444
+ - docs/screenshots/04.png
445
+ - docs/screenshots/05.png
431
446
  - fluentd-ui.gemspec
432
447
  - lib/assets/.keep
433
448
  - lib/file_reverse_reader.rb
@@ -451,6 +466,7 @@ files:
451
466
  - spec/controllers/polling_controller_spec.rb
452
467
  - spec/controllers/sessions_controller_spec.rb
453
468
  - spec/controllers/tutorials_controller_spec.rb
469
+ - spec/decorators/plugin_decorator_spec.rb
454
470
  - spec/factories/fluentd.rb
455
471
  - spec/factories/plugins.rb
456
472
  - spec/factories/user.rb
@@ -612,6 +628,7 @@ test_files:
612
628
  - spec/controllers/polling_controller_spec.rb
613
629
  - spec/controllers/sessions_controller_spec.rb
614
630
  - spec/controllers/tutorials_controller_spec.rb
631
+ - spec/decorators/plugin_decorator_spec.rb
615
632
  - spec/factories/fluentd.rb
616
633
  - spec/factories/plugins.rb
617
634
  - spec/factories/user.rb