fluentd-ui 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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