tao_ui 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '09da3087edd93d1ba400dde3fc7717a546b4e201'
4
- data.tar.gz: d35a7c16a1e6512ce4a2363a2256f58f4cab896b
3
+ metadata.gz: bb8a02f1c7f7b6522ea02c956475b444076f4c22
4
+ data.tar.gz: e70c4aa00d59f75c309c6dffa99cd77c03822676
5
5
  SHA512:
6
- metadata.gz: 2c7ec7003d126d9620024ccf0c78dd174d6967141603db952780a4f5a64492ab494ccfc3683eb8f29f4ac2a3fc226b29a54ff0e3fa36ba34531dee65c4330ed2
7
- data.tar.gz: bf7b2acc10963c59ac8808a10d9bab30d5a05b34cfa9a1e538cfb15252bc10a1ddf9d4276a9ac489442d825cb13eaf8dfa1a150ab6c7b5438543d3289b7cfe75
6
+ metadata.gz: f1def1930ba3cc284b08eec3e707f647b33c4e3293951a3d1c43146871ba3e059cde031aef6216deb638dc99cd2f4a79350fef381829a278d89464429236392b
7
+ data.tar.gz: b6f1c33e518f9b645564ceffd4b5b5b784c1ec9b2bdc5ae8b75653ba70385be4731a895b01bbbc540612526152d5040466a945bc6b3d6ad7ddb50f6d21305a1f
@@ -3,3 +3,5 @@ en:
3
3
  components:
4
4
  dialog:
5
5
  close: Close
6
+ confirm: OK
7
+ cancel: Cancel
@@ -3,3 +3,5 @@ zh-CN:
3
3
  components:
4
4
  dialog:
5
5
  close: 关闭
6
+ confirm: 确定
7
+ cancel: 取消
@@ -0,0 +1,13 @@
1
+ class Tao.Dialog.Confirm extends Tao.Dialog.Message
2
+
3
+ @tag 'tao-confirm-dialog'
4
+
5
+ _bind: ->
6
+ super
7
+
8
+ @on 'click', '.button-cancel', (e) =>
9
+ @trigger 'tao:cancel'
10
+ @active = false
11
+ null
12
+
13
+ TaoComponent.register Tao.Dialog.Confirm
@@ -1,4 +1,6 @@
1
1
  #= require_self
2
2
  #= require ./element
3
+ #= require ./message
4
+ #= require ./confirm
3
5
 
4
6
  window.TaoDialog = Tao.Dialog = {}
@@ -0,0 +1,13 @@
1
+ class Tao.Dialog.Message extends Tao.Dialog.Element
2
+
3
+ @tag 'tao-message-dialog'
4
+
5
+ _bind: ->
6
+ super
7
+
8
+ @on 'click', '.button-confirm', (e) =>
9
+ @trigger 'tao:confirm'
10
+ @active = false
11
+ null
12
+
13
+ TaoComponent.register Tao.Dialog.Message
@@ -0,0 +1,23 @@
1
+ class Tao.Popover.Confirm extends Tao.Popover.Element
2
+
3
+ @tag 'tao-confirm-popover'
4
+
5
+ _connected: ->
6
+ super
7
+
8
+ @on 'click', '.button-confirm', (e) =>
9
+ @trigger 'tao:confirm'
10
+ @active = false
11
+ null
12
+
13
+ @on 'click', '.button-cancel', (e) =>
14
+ @trigger 'tao:cancel'
15
+ @active = false
16
+ null
17
+
18
+ setContent: (content) ->
19
+ @jq.find('.tao-popover-content .message').empty()
20
+ .append content
21
+ @
22
+
23
+ TaoComponent.register Tao.Popover.Confirm
@@ -9,7 +9,9 @@ class Tao.Popover.Element extends TaoComponent
9
9
 
10
10
  @attribute 'active', type: 'boolean', observe: true
11
11
 
12
- @attribute 'targetSelector', 'targetTraversal', 'triggerSelector', 'triggerTraversal'
12
+ @attribute 'targetSelector', 'targetTraversal'
13
+
14
+ @attribute 'triggerSelector', 'triggerTraversal'
13
15
 
14
16
  @attribute 'triggerAction', default: 'click'
15
17
 
@@ -45,6 +47,8 @@ class Tao.Popover.Element extends TaoComponent
45
47
  else
46
48
  @target
47
49
 
50
+ return unless @triggerEl && @triggerEl.length > 0
51
+
48
52
  if @triggerAction == 'click'
49
53
  @triggerEl.on 'click.tao-popover', (e) =>
50
54
  @toggleActive()
@@ -60,9 +64,11 @@ class Tao.Popover.Element extends TaoComponent
60
64
  _activeChanged: ->
61
65
  if @active
62
66
  @refresh()
67
+ @target.addClass 'tao-popover-active'
63
68
  @_enableAutoHide() if @autoHide
64
69
  @trigger 'tao:show'
65
70
  else
71
+ @target.removeClass 'tao-popover-active'
66
72
  @_disableAutoHide() if @autoHide
67
73
  @trigger 'tao:hide'
68
74
  @jq.remove() if @autoDestroy
@@ -99,6 +105,21 @@ class Tao.Popover.Element extends TaoComponent
99
105
  left: @position.left
100
106
  @
101
107
 
108
+ resetAttributes: ->
109
+ @active = false
110
+ @triggerEl?.off '.tao-popover'
111
+ @target = null
112
+ @triggerEl = null
113
+
114
+ for attr in _.toArray(@attributes)
115
+ unless attr.name in ['class', 'tao-id']
116
+ @jq.removeAttr attr.name
117
+
118
+ setContent: (content) ->
119
+ @jq.find('.tao-popover-content').empty()
120
+ .append content
121
+ @
122
+
102
123
  toggleActive: ->
103
124
  @active = !@active
104
125
  @
@@ -111,12 +132,13 @@ class Tao.Popover.Element extends TaoComponent
111
132
 
112
133
  remove: ->
113
134
  @trigger 'tao:beforeRemove'
135
+ @target.removeClass 'tao-popover-active'
114
136
  @jq.remove()
115
137
  @trigger 'tao:remove'
116
138
  @
117
139
 
118
140
  _disconnected: ->
119
- @triggerEl.off '.tao-popover'
141
+ @triggerEl?.off '.tao-popover'
120
142
  $(document).off ".tao-popover-#{@taoId}"
121
143
 
122
144
  TaoComponent.register Tao.Popover.Element
@@ -1,5 +1,6 @@
1
1
  #= require_self
2
2
  #= require ./element
3
+ #= require ./confirm
3
4
  #= require ./create
4
5
 
5
6
  window.TaoPopover = Tao.Popover = {}
@@ -16,7 +16,7 @@ body.tao-dialog-active {
16
16
 
17
17
  &[modal] {
18
18
  background-color: rgba(0, 0, 0, 0);
19
- transition: background-color 200ms ease-in-out;
19
+ transition: background-color 200ms;
20
20
  }
21
21
 
22
22
  &[modal][active] {
@@ -35,9 +35,9 @@ body.tao-dialog-active {
35
35
  margin: 0 auto;
36
36
  border-radius: 0 0 $border-radius-s $border-radius-s;
37
37
  background-color: $white-color;
38
- box-shadow: 0 0 5px rgba(0,0,0,0.2);
38
+ box-shadow: 0 0 4px 4px rgba(0,0,0,0.1);
39
39
  transform: translate(0, -30%);
40
- transition: transform .3s ease-in-out, opacity .3s ease-in-out, width .2s ease-in-out;
40
+ transition: transform .3s, opacity .3s, width .2s;
41
41
  opacity: 0;
42
42
  padding: 1rem 2rem;
43
43
 
@@ -48,20 +48,33 @@ body.tao-dialog-active {
48
48
  .title:first-child {
49
49
  margin-bottom: 2rem;
50
50
  }
51
+ }
51
52
 
52
- .buttons,
53
- .form-buttons {
54
- margin-left: 0;
55
- margin-bottom: 1rem;
56
- display: flex;
57
- justify-content: center;
58
- align-items: center;
59
-
60
- .button, a {
61
- margin: 0 0.75rem;
62
- }
53
+ .tao-dialog-buttons,
54
+ .tao-dialog-content .buttons,
55
+ .tao-dialog-content .form-buttons {
56
+ margin-left: 0;
57
+ margin-bottom: 1rem;
58
+ display: flex;
59
+ justify-content: center;
60
+ align-items: center;
61
+
62
+ .button, a {
63
+ margin: 0 0.75rem;
63
64
  }
64
65
  }
66
+
67
+ .tao-dialog-buttons {
68
+ margin: 1.5rem 0 0 0;
69
+ }
70
+ }
71
+
72
+ &.tao-confirm-dialog,
73
+ &.tao-message-dialog {
74
+ .tao-dialog-wrapper {
75
+ width: 32.5rem;
76
+ padding: 1.5rem 2rem;
77
+ }
65
78
  }
66
79
 
67
80
  &[size='l'] .tao-dialog-wrapper {
@@ -22,6 +22,24 @@ tao-popover,
22
22
  box-shadow: 0 3px 15px rgba(0,0,0,0.1);
23
23
  }
24
24
 
25
+ &.tao-confirm-popover .tao-popover-content {
26
+ font-size: 0.875rem;
27
+ text-align: center;
28
+ white-space: nowrap;
29
+ padding: 1rem 1.5rem;
30
+ }
31
+
32
+ .tao-popover-buttons {
33
+ margin-top: 1rem;
34
+ display: flex;
35
+ justify-content: center;
36
+ align-items: center;
37
+
38
+ .button, a {
39
+ margin: 0 0.5rem;
40
+ }
41
+ }
42
+
25
43
  .tao-popover-arrow {
26
44
  position: absolute;
27
45
  width: $arrowSize;
@@ -0,0 +1,24 @@
1
+ module TaoUi
2
+ module Components
3
+ class ConfirmDialogComponent < MessageDialogComponent
4
+
5
+ attr_reader :cancel_text
6
+
7
+ def initialize view, options
8
+ super view, options
9
+ @cancel_text = @options[:cancel_text] || I18n.t('tao_ui.components.dialog.cancel')
10
+ end
11
+
12
+ def self.component_name
13
+ :confirm_dialog
14
+ end
15
+
16
+ private
17
+
18
+ def default_options
19
+ {class: 'tao-dialog tao-confirm-dialog', with_close_button: false}
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ module TaoUi
2
+ module Components
3
+ class ConfirmPopoverComponent < PopoverComponent
4
+
5
+ attr_reader :confirm_text, :cancel_text
6
+
7
+ def initialize view, options
8
+ super view, options
9
+ @confirm_text = @options[:confirm_text] || I18n.t('tao_ui.components.dialog.confirm')
10
+ @cancel_text = @options[:cancel_text] || I18n.t('tao_ui.components.dialog.cancel')
11
+ end
12
+
13
+ def self.component_name
14
+ :confirm_popover
15
+ end
16
+
17
+ private
18
+
19
+ def default_options
20
+ merge_options super, {class: 'tao-confirm-popover'}
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -3,7 +3,7 @@ module TaoUi
3
3
  class DialogComponent < TaoOnRails::Components::Base
4
4
 
5
5
  def initialize view, options
6
- super
6
+ super view, options
7
7
 
8
8
  unless @options[:with_close_button].in? [true, false]
9
9
  @options[:with_close_button] = true
@@ -0,0 +1,25 @@
1
+ module TaoUi
2
+ module Components
3
+ class MessageDialogComponent < DialogComponent
4
+
5
+ attr_reader :confirm_text
6
+
7
+ def initialize view, options
8
+ super view, options
9
+
10
+ @confirm_text = @options[:confirm_text] || I18n.t('tao_ui.components.dialog.confirm')
11
+ end
12
+
13
+ def self.component_name
14
+ :message_dialog
15
+ end
16
+
17
+ private
18
+
19
+ def default_options
20
+ {class: 'tao-dialog tao-message-dialog', with_close_button: false}
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -9,7 +9,7 @@ module TaoUi
9
9
  private
10
10
 
11
11
  def default_options
12
- {class: 'tao-popover'}
12
+ {class: 'tao-popover', auto_hide: true}
13
13
  end
14
14
 
15
15
  end
@@ -5,7 +5,7 @@ module TaoUi
5
5
  class SlideBoxComponent < TaoOnRails::Components::Base
6
6
 
7
7
  def initialize view, options
8
- super
8
+ super view, options
9
9
 
10
10
  unless @options[:with_close_button].in? [true, false]
11
11
  @options[:with_close_button] = true
@@ -1,4 +1,7 @@
1
1
  require 'tao_ui/components/icon_component'
2
2
  require 'tao_ui/components/slide_box_component'
3
3
  require 'tao_ui/components/popover_component'
4
+ require 'tao_ui/components/confirm_popover_component'
4
5
  require 'tao_ui/components/dialog_component'
6
+ require 'tao_ui/components/message_dialog_component'
7
+ require 'tao_ui/components/confirm_dialog_component'
@@ -1,3 +1,3 @@
1
1
  module TaoUi
2
- VERSION = '0.2.4'
2
+ VERSION = '0.2.5'
3
3
  end
@@ -0,0 +1,11 @@
1
+ <%= content_tag component.tag_name, component.html_options do %>
2
+ <div class="tao-dialog-wrapper">
3
+ <div class="tao-dialog-content">
4
+ <%= yield if block_given? %>
5
+ </div>
6
+ <div class="tao-dialog-buttons">
7
+ <button class="button button-primary button-confirm"><%= component.confirm_text %></button>
8
+ <button class="button button-cancel"><%= component.cancel_text %></button>
9
+ </div>
10
+ </div>
11
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <%= content_tag component.tag_name, component.html_options do %>
2
+ <div class="tao-popover-content">
3
+ <div class="message">
4
+ <%= yield if block_given? %>
5
+ </div>
6
+ <div class="tao-popover-buttons">
7
+ <button class="button button-small button-primary button-confirm"><%= component.confirm_text %></button>
8
+ <button class="button button-small button-cancel"><%= component.cancel_text %></button>
9
+ </div>
10
+ </div>
11
+ <div class="tao-popover-arrow">
12
+ <i class="arrow arrow-shadow"></i>
13
+ <i class="arrow arrow-border"></i>
14
+ <i class="arrow arrow-basic"></i>
15
+ </div>
16
+ <% end %>
@@ -1,7 +1,7 @@
1
1
  <%= content_tag component.tag_name, component.html_options do %>
2
2
  <div class="tao-dialog-wrapper">
3
3
  <div class="tao-dialog-content">
4
- <%= yield %>
4
+ <%= yield if block_given? %>
5
5
  </div>
6
6
  <%= link_to 'javascripts:;', class: 'link-close', title: component.t(:close) do %>
7
7
  <%= tao_icon :close %>
@@ -0,0 +1,10 @@
1
+ <%= content_tag component.tag_name, component.html_options do %>
2
+ <div class="tao-dialog-wrapper">
3
+ <div class="tao-dialog-content">
4
+ <%= yield if block_given? %>
5
+ </div>
6
+ <div class="tao-dialog-buttons">
7
+ <button class="button button-primary button-confirm"><%= component.confirm_text %></button>
8
+ </div>
9
+ </div>
10
+ <% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tao_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - farthinker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-21 00:00:00.000000000 Z
11
+ date: 2017-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tao_on_rails
@@ -111,14 +111,17 @@ files:
111
111
  - config/locales/tao_ui/components/slide_box/zh-CN.yml
112
112
  - lib/assets/icons/close.svg
113
113
  - lib/assets/icons/loading.svg
114
+ - lib/assets/javascripts/tao/ui/dialog/confirm.coffee
114
115
  - lib/assets/javascripts/tao/ui/dialog/element.coffee
115
116
  - lib/assets/javascripts/tao/ui/dialog/index.coffee
117
+ - lib/assets/javascripts/tao/ui/dialog/message.coffee
116
118
  - lib/assets/javascripts/tao/ui/icons/base.coffee
117
119
  - lib/assets/javascripts/tao/ui/icons/index.coffee
118
120
  - lib/assets/javascripts/tao/ui/index.coffee
119
121
  - lib/assets/javascripts/tao/ui/mobile/index.coffee
120
122
  - lib/assets/javascripts/tao/ui/mobile/slide_box/element.coffee
121
123
  - lib/assets/javascripts/tao/ui/mobile/slide_box/index.coffee
124
+ - lib/assets/javascripts/tao/ui/popover/confirm.coffee
122
125
  - lib/assets/javascripts/tao/ui/popover/create.coffee
123
126
  - lib/assets/javascripts/tao/ui/popover/direction.coffee
124
127
  - lib/assets/javascripts/tao/ui/popover/element.coffee
@@ -171,13 +174,19 @@ files:
171
174
  - lib/generators/tao/icons/templates/icons.coffee.erb
172
175
  - lib/tao_ui.rb
173
176
  - lib/tao_ui/components.rb
177
+ - lib/tao_ui/components/confirm_dialog_component.rb
178
+ - lib/tao_ui/components/confirm_popover_component.rb
174
179
  - lib/tao_ui/components/dialog_component.rb
175
180
  - lib/tao_ui/components/icon_component.rb
181
+ - lib/tao_ui/components/message_dialog_component.rb
176
182
  - lib/tao_ui/components/popover_component.rb
177
183
  - lib/tao_ui/components/slide_box_component.rb
178
184
  - lib/tao_ui/engine.rb
179
185
  - lib/tao_ui/version.rb
186
+ - lib/views/components/tao_ui/components/_confirm_dialog.html.erb
187
+ - lib/views/components/tao_ui/components/_confirm_popover.html.erb
180
188
  - lib/views/components/tao_ui/components/_dialog.html.erb
189
+ - lib/views/components/tao_ui/components/_message_dialog.html.erb
181
190
  - lib/views/components/tao_ui/components/_popover.html.erb
182
191
  - lib/views/components/tao_ui/components/_slide_box.html.erb
183
192
  - vendor/assets/stylesheets/normalize.css