ende 0.5.8 → 0.5.9

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: 1756e495999a7eef621365425f37381888a370fb
4
- data.tar.gz: 1ed83728f33ee1e86813ba0ca2b9640adf3381eb
3
+ metadata.gz: dae52e696f3671e586020dbaa2eb76995b7d2ff5
4
+ data.tar.gz: ae527f3c6d02a6a220827c38270be8d8a60cbe6b
5
5
  SHA512:
6
- metadata.gz: 369b28e5bd8f7e448260328aeb66b24a219d439b84d0bd1a21f5c65e2773242713981bc26b7cb4be6f5dd215d8610972332e79025dec77e5f2d839afe972ed45
7
- data.tar.gz: 4cb6d96391c99c100afddc52e844f5c3e6f72def8bc5fad7367576ed756b3313f17d9dbc7acb994b5ed5b249e4c0c46b438e70ebed83131319f28767946c0457
6
+ metadata.gz: a828c279160ad67eeff93fa0722b9b1c1f3d520b4020b3eab72bd4daae18c5f230b3048e859c65f513195bbf25a526bb15dd8759f0257c32b1af6b12ac6c7e0d
7
+ data.tar.gz: 6484be1734abb16edf37a524bfbee2b3764cb04f3843a2fa01db2f0a8d9423dd1c5cc401c023fdc8d9a8f4fcb2d3aabf02ccf51cc269a501d6562bdadcaaeb99
@@ -1,5 +1,5 @@
1
1
  <% # TODO mover para helper
2
- base_path = Rails.root.join('app', 'assets', 'javascripts', 'models')
2
+ base_path = Rails.root.join('app', 'assets', 'javascripts', 'resources')
3
3
  models_list = Dir.glob(Rails.root.join(base_path, '**', '*.js*'))
4
4
  models_list.map! do |file|
5
5
  file.sub! base_path.to_s + '/', ''
@@ -8,7 +8,7 @@ models_list.map! do |file|
8
8
  next nil if file =~ /~/
9
9
 
10
10
  entries = file.split /\// || []
11
- entries.unshift 'models'
11
+ entries.unshift 'resources'
12
12
  entries.push File.basename entries.pop, '.js.coffee'
13
13
  File.join *entries
14
14
 
@@ -20,12 +20,10 @@ end
20
20
 
21
21
  %>
22
22
 
23
- 'use strict'
24
-
25
23
 
26
- root = exports ? this
24
+ 'use strict'
27
25
 
28
- define 'aura/extensions/models', <%= models_list.to_json %>, (resources...) ->
26
+ define 'aura/extensions/resources', <%= models_list.to_json %>, (resources...) ->
29
27
 
30
28
  # TODO better require api for indemma
31
29
  indemma = require 'indefinido~indemma@master'
@@ -47,7 +45,7 @@ define 'aura/extensions/models', <%= models_list.to_json %>, (resources...) ->
47
45
 
48
46
  name: 'resources'
49
47
 
50
- version: '0.1.2'
48
+ version: '0.2.0'
51
49
 
52
50
  # Extension definition
53
51
  initialize: (application) ->
@@ -68,7 +66,7 @@ define 'aura/extensions/models', <%= models_list.to_json %>, (resources...) ->
68
66
  core.resource = core.model = sandbox.resource = sandbox.model = (name) ->
69
67
  # TODO use a Map internally in indemma
70
68
  model = indemma.model[name]
71
- throw new TypeError unless model?
69
+ throw new TypeError "Resource not found with name: #{name}\nCheck for the definition on assets/javascripts/resources/#{name}.js.coffee" unless model?
72
70
  model
73
71
 
74
72
  # TODO rename core.models and core.domain, to core.resources, completely
@@ -85,3 +83,4 @@ define 'aura/extensions/models', <%= models_list.to_json %>, (resources...) ->
85
83
  core.util._.map resources, (definition) ->
86
84
  resource = indemma.model.call definition
87
85
  indemma.model.every.push resource
86
+
@@ -137,7 +137,7 @@ define 'aura/extensions/states', ['states'], (states) ->
137
137
  get: -> state.current
138
138
 
139
139
  # TODO clearer startup sequence
140
- application.core.metabolize = (root) ->
140
+ application.core.metabolize = (root = 'body') ->
141
141
  # If any initialized flow changed the application state
142
142
  # before the widgets initialization, store its state pass
143
143
  # through the default state and go back to the old state
@@ -45,6 +45,9 @@ define 'aura/extensions/widget/eventable', ['stampit', 'es6-map-shim'], (stampit
45
45
  @identifier = @options.identifier or @options.resource or matches[2]
46
46
  @sandbox.identifier = @identifier
47
47
 
48
+ on: (event_name, handler, context) -> @sandbox.on "#{@name}.#{@identifier}.#{event_name}", handler, context || @
49
+ emit: (event_name, data...) -> @sandbox.emit "#{@name}.#{@identifier}.#{event_name}", data...
50
+
48
51
  version: '0.1.0'
49
52
 
50
53
  initialize: (application) ->
@@ -0,0 +1,87 @@
1
+ define ['./states/index', './presenter'], (templates, presenter) ->
2
+
3
+ # If some extension provides you can use the type defined in there
4
+ # to extend your widget. Defaults to Base constructor.
5
+ #
6
+ type: 'Base'
7
+
8
+ # Default values for the options passed to this widget
9
+ #
10
+ # Note: the options are passed thorught the html element data
11
+ # attributes for this widget: <div data-aura-widget="contact" data-aura-amount="3"></div>
12
+ #
13
+ # options: {}
14
+
15
+
16
+ # Widget initialization method, will be called upon loading, options
17
+ # are already filled with defaults
18
+ initialize: (options) ->
19
+ widget = @
20
+ sandbox = @sandbox
21
+ sandbox.logger.log "initialized!"
22
+
23
+ # Will also initialize sandbox!
24
+ @html templates.default
25
+
26
+ # Forward the models to the presenter
27
+ message = sandbox.resource('message')()
28
+
29
+ sender =
30
+ button_label: 'Enviar mensagem'
31
+
32
+ status: 'idle'
33
+ classes: ->
34
+ "widget #{sender.status} contact"
35
+
36
+ send: (event) =>
37
+ sender.status = "loading blocked" # replace all status
38
+ sender.button_label = 'Enviando sua mensagem...'
39
+ if message.valid
40
+ message.save().done ->
41
+ widget.emit 'sent'
42
+ .fail (event) ->
43
+ if event.status == 422
44
+ widget.emit 'send_errored'
45
+ else
46
+ widget.emit 'send_failed'
47
+ else
48
+ widget.emit 'send_errored'
49
+ event.preventDefault()
50
+
51
+ sent: ->
52
+ sender.status = 'success blocked'
53
+ sender.button_label = 'Sua mensagem foi enviada com sucesso! Vamos responder logo.'
54
+ message.reset() # TODO reset only the presenter?
55
+ setTimeout ->
56
+ sender.status = 'idle'
57
+ sender.button_label = 'Enviar outra mensagem'
58
+ , 5000
59
+
60
+ send_errored: ->
61
+ sender.status = 'error blocked'
62
+ sender.button_label = 'Ops... confira os dados acima e tente novamente.'
63
+ setTimeout ->
64
+ sender.status = 'error'
65
+ sender.button_label = 'Enviar mensagem'
66
+ , 4000
67
+
68
+ send_failed: ->
69
+ sender.status = 'error blocked'
70
+ sender.button_label = 'Ops... ocorreu um erro no servidor e já fomos avisados. Que tal tentar novamente mais tarde?.'
71
+ setTimeout ->
72
+ sender.status = 'error'
73
+ sender.button_label = 'Tentar novamente'
74
+ , 7000
75
+
76
+
77
+ @$el.attr 'data-class', 'sender.classes < sender.status'
78
+
79
+ # Bind presenter to template
80
+ presentation = presenter message, sender
81
+ @$el.addClass 'contact'
82
+ @bind presentation
83
+
84
+ # TODO implement widget.on
85
+ @on 'sent' , sender.sent
86
+ @on 'send_failed' , sender.send_failed
87
+ @on 'send_errored', sender.send_errored
@@ -0,0 +1,10 @@
1
+ 'use strict'
2
+
3
+ lazy_require = 'observable'
4
+ define [lazy_require], (observable) ->
5
+
6
+ (message, sender) ->
7
+
8
+ # TODO create view_model
9
+ message : message
10
+ sender : sender
@@ -0,0 +1,39 @@
1
+ %h2 Fale com a gente
2
+
3
+ %form.form
4
+ .form-group{data: {class: {invalid: 'message.errors.name' }}}
5
+ %span.required-mark{ title: "obrigatório" } *
6
+ %input.form-control{ placeholder: "Nome", required: true, autofocus: true, data: { value: "message.name" } }
7
+ %i.validation &times;
8
+ .tooltip.right
9
+ .tooltip-inner {{message.errors.name}}
10
+ .tooltip-arrow
11
+
12
+ .form-group{data: {class: {invalid: 'message.errors.email' }}}
13
+ %span.required-mark{ title: "obrigatório" } *
14
+ %input.form-control{ type: 'email', placeholder: "E-mail", required: :required, data: { value: "message.email" } }
15
+ %i.validation &times;
16
+ .tooltip.right
17
+ .tooltip-inner {{message.errors.email}}
18
+ .tooltip-arrow
19
+
20
+ .form-group{data: {class: {invalid: 'message.errors.subject' }}}
21
+ %span.required-mark{ title: "obrigatório" } *
22
+ %input.form-control{ placeholder: "Assunto", data: { value: "message.subject" } }
23
+ %i.validation &times;
24
+ .tooltip.right
25
+ .tooltip-inner {{message.errors.subject}}
26
+ .tooltip-arrow
27
+
28
+ .form-group{data: {class: {invalid: 'message.errors.body' }}}
29
+ %span.required-mark{ title: "obrigatório" } *
30
+ %textarea.form-control{ placeholder: "Mensagem", required: :required, data: { value: "message.body" }, rows: 6 }
31
+ %i.validation &times;
32
+ .tooltip.right
33
+ .tooltip-inner {{message.errors.body}}
34
+ .tooltip-arrow
35
+
36
+ %button.btn.btn-success.btn-block{data: {html: 'sender.button_label', on: {click: 'sender.send'}}} Enviar mensagem
37
+
38
+ %br
39
+ %br
@@ -0,0 +1,2 @@
1
+ define ['text!./default.html'], (default_state) ->
2
+ default: default_state
data/lib/ende/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ende
2
- VERSION = "0.5.8"
2
+ VERSION = "0.5.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ende
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heitor Salazar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-24 00:00:00.000000000 Z
11
+ date: 2014-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -177,8 +177,8 @@ files:
177
177
  - lib/assets/javascripts/aura/extensions/loader.js.coffee
178
178
  - lib/assets/javascripts/aura/extensions/mask.js.coffee
179
179
  - lib/assets/javascripts/aura/extensions/mediator.js
180
- - lib/assets/javascripts/aura/extensions/models.js.coffee.erb
181
180
  - lib/assets/javascripts/aura/extensions/platform.js.coffee
181
+ - lib/assets/javascripts/aura/extensions/resources.js.coffee.erb
182
182
  - lib/assets/javascripts/aura/extensions/rivets.js.coffee
183
183
  - lib/assets/javascripts/aura/extensions/rivets/accounting.js.coffee
184
184
  - lib/assets/javascripts/aura/extensions/rivets/formatters.js.coffee
@@ -207,6 +207,10 @@ files:
207
207
  - lib/assets/javascripts/widgets/authenticator/states/default.html
208
208
  - lib/assets/javascripts/widgets/authenticator/states/index.js.coffee
209
209
  - lib/assets/javascripts/widgets/authenticator/states/passwords.html
210
+ - lib/assets/javascripts/widgets/contact/main.js.coffee
211
+ - lib/assets/javascripts/widgets/contact/presenter.js.coffee
212
+ - lib/assets/javascripts/widgets/contact/states/default.html.haml
213
+ - lib/assets/javascripts/widgets/contact/states/index.js.coffee
210
214
  - lib/assets/javascripts/widgets/content/main.js.coffee
211
215
  - lib/assets/javascripts/widgets/dialog/main.js.coffee
212
216
  - lib/assets/javascripts/widgets/dialog/presenter.js.coffee