pbw 0.0.9 → 0.0.10
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.
- checksums.yaml +8 -8
- data/app/controllers/pbw/application_controller.rb +3 -16
- data/app/controllers/pbw/base_models_controller.rb +10 -32
- data/app/controllers/pbw/passwords_controller.rb +14 -0
- data/app/controllers/pbw/registrations_controller.rb +9 -6
- data/app/controllers/pbw/sessions_controller.rb +9 -4
- data/app/mailers/pbw/user_mailer.rb +16 -0
- data/app/models/pbw/area.rb +5 -5
- data/app/models/pbw/attached_process.rb +3 -3
- data/app/models/pbw/capability.rb +1 -1
- data/app/models/pbw/command.rb +2 -2
- data/app/models/pbw/constraint.rb +2 -2
- data/app/models/pbw/item.rb +2 -2
- data/app/models/pbw/item_container.rb +4 -4
- data/app/models/pbw/item_conversion.rb +1 -1
- data/app/models/pbw/process.rb +2 -2
- data/app/models/pbw/token.rb +7 -7
- data/app/models/pbw/trigger.rb +3 -3
- data/app/models/pbw/user.rb +30 -8
- data/config/initializers/devise.rb +1 -66
- data/config/locales/pbw.en.yml +7 -0
- data/config/routes.rb +2 -4
- data/lib/generators/pbw/install/install_generator.rb +22 -3
- data/lib/generators/pbw/model_generator.rb +6 -0
- data/lib/generators/pbw/resource_helpers.rb +16 -0
- data/lib/generators/pbw/rules/capability/capability_generator.rb +4 -2
- data/lib/generators/pbw/rules/constraint/constraint_generator.rb +4 -2
- data/lib/generators/pbw/rules/process/process_generator.rb +4 -2
- data/lib/generators/pbw/rules/trigger/trigger_generator.rb +4 -2
- data/lib/generators/pbw/scaffold_generator.rb +0 -12
- data/lib/generators/pbw/templates/app.coffee +5 -3
- data/lib/generators/pbw/templates/application.erb +24 -0
- data/lib/generators/pbw/templates/lifecycle.rb +1 -0
- data/lib/generators/pbw/templates/pbw.coffee +21 -0
- data/lib/generators/pbw/templates/router.coffee +15 -0
- data/lib/generators/pbw/templates/templates/home.jst +10 -1
- data/lib/generators/pbw/templates/templates/login.jst +25 -0
- data/lib/generators/pbw/templates/templates/recover_password.jst +17 -0
- data/lib/generators/pbw/templates/templates/signup.jst +29 -0
- data/lib/generators/pbw/templates/user_recovery.coffee +6 -0
- data/lib/generators/pbw/templates/user_registration.coffee +9 -0
- data/lib/generators/pbw/templates/user_session.coffee +8 -0
- data/lib/generators/pbw/templates/views/edit_view.coffee +15 -8
- data/lib/generators/pbw/templates/views/login_view.coffee +39 -0
- data/lib/generators/pbw/templates/views/new_view.coffee +5 -9
- data/lib/generators/pbw/templates/views/recovery_view.coffee +38 -0
- data/lib/generators/pbw/templates/views/signup_view.coffee +39 -0
- data/lib/pbw/engine.rb +5 -9
- data/lib/pbw/version.rb +1 -1
- data/lib/pbw.rb +15 -2
- data/vendor/assets/javascripts/backbone_datalink.js +21 -0
- metadata +16 -44
- data/app/controllers/pbw/capabilities_controller.rb +0 -7
- data/app/controllers/pbw/constraints_controller.rb +0 -7
- data/app/controllers/pbw/processes_controller.rb +0 -7
- data/app/controllers/pbw/triggers_controller.rb +0 -7
- data/public/Foundation-MIT-LICENSE.txt +0 -20
- data/public/config.rb +0 -26
- data/public/javascripts/foundation/foundation.alerts.js +0 -52
- data/public/javascripts/foundation/foundation.clearing.js +0 -516
- data/public/javascripts/foundation/foundation.cookie.js +0 -74
- data/public/javascripts/foundation/foundation.dropdown.js +0 -178
- data/public/javascripts/foundation/foundation.forms.js +0 -525
- data/public/javascripts/foundation/foundation.interchange.js +0 -271
- data/public/javascripts/foundation/foundation.joyride.js +0 -844
- data/public/javascripts/foundation/foundation.js +0 -447
- data/public/javascripts/foundation/foundation.magellan.js +0 -134
- data/public/javascripts/foundation/foundation.orbit.js +0 -390
- data/public/javascripts/foundation/foundation.placeholder.js +0 -179
- data/public/javascripts/foundation/foundation.reveal.js +0 -330
- data/public/javascripts/foundation/foundation.section.js +0 -422
- data/public/javascripts/foundation/foundation.tooltips.js +0 -208
- data/public/javascripts/foundation/foundation.topbar.js +0 -303
- data/public/javascripts/vendor/custom.modernizr.js +0 -4
- data/public/javascripts/vendor/jquery.js +0 -9807
- data/public/javascripts/vendor/zepto.js +0 -2000
- data/public/sass/_normalize.scss +0 -402
- data/public/sass/_settings.scss +0 -1271
- data/public/sass/app.scss +0 -48
- data/public/stylesheets/app.css +0 -6686
@@ -1,8 +1,10 @@
|
|
1
|
-
require 'generators/pbw/
|
1
|
+
require 'generators/pbw/model_generator'
|
2
2
|
require 'generators/pbw/rules/rules'
|
3
3
|
|
4
|
-
class Pbw::Rules::ConstraintGenerator < Pbw::Generators::
|
4
|
+
class Pbw::Rules::ConstraintGenerator < Pbw::Generators::ModelGenerator
|
5
5
|
source_root File.expand_path("../../../templates", __FILE__)
|
6
|
+
def create_backbone_model
|
7
|
+
end
|
6
8
|
protected
|
7
9
|
def base_model_class
|
8
10
|
"Pbw::Constraint"
|
@@ -1,8 +1,10 @@
|
|
1
|
-
require 'generators/pbw/
|
1
|
+
require 'generators/pbw/model_generator'
|
2
2
|
require 'generators/pbw/rules/rules'
|
3
3
|
|
4
|
-
class Pbw::Rules::ProcessGenerator < Pbw::Generators::
|
4
|
+
class Pbw::Rules::ProcessGenerator < Pbw::Generators::ModelGenerator
|
5
5
|
source_root File.expand_path("../../../templates", __FILE__)
|
6
|
+
def create_backbone_model
|
7
|
+
end
|
6
8
|
protected
|
7
9
|
def base_model_class
|
8
10
|
"Pbw::Process"
|
@@ -1,8 +1,10 @@
|
|
1
|
-
require 'generators/pbw/
|
1
|
+
require 'generators/pbw/model_generator'
|
2
2
|
require 'generators/pbw/rules/rules'
|
3
3
|
|
4
|
-
class Pbw::Rules::TriggerGenerator < Pbw::Generators::
|
4
|
+
class Pbw::Rules::TriggerGenerator < Pbw::Generators::ModelGenerator
|
5
5
|
source_root File.expand_path("../../../templates", __FILE__)
|
6
|
+
def create_backbone_model
|
7
|
+
end
|
6
8
|
protected
|
7
9
|
def base_model_class
|
8
10
|
"Pbw::Trigger"
|
@@ -46,18 +46,6 @@ module Pbw
|
|
46
46
|
template "templates/model.jst", File.join(backbone_path, "templates/#{model_namespace.downcase}", plural_name, "#{singular_name}.jst.ejs")
|
47
47
|
end
|
48
48
|
|
49
|
-
def create_resources
|
50
|
-
generate "model", "#{model_namespace}::#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
|
51
|
-
gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "class #{model_namespace}::#{class_name}", "class #{model_namespace}::#{class_name} < #{base_model_class}"
|
52
|
-
gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "include Mongoid::Document", ""
|
53
|
-
end
|
54
|
-
|
55
|
-
def append_app_file
|
56
|
-
inject_into_file "app/assets/javascripts/#{application_name.underscore}.js.coffee", :after => "Views: {}" do
|
57
|
-
"\nwindow.#{js_app_name}.Models.#{model_namespace} = {}\nwindow.#{js_app_name}.Collections.#{model_namespace} = {}\nwindow.#{js_app_name}.Views.#{model_namespace} = {}\n"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
49
|
protected
|
62
50
|
def available_views
|
63
51
|
%w(index show new edit)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#= require_self
|
2
|
+
#= require_tree ./helpers
|
2
3
|
#= require_tree ./templates
|
3
4
|
#= require_tree ./models
|
4
5
|
#= require_tree ./views
|
@@ -7,7 +8,8 @@
|
|
7
8
|
Backbone.Model.prototype.idAttribute = "_id";
|
8
9
|
|
9
10
|
window.<%= js_app_name %> =
|
10
|
-
|
11
|
-
|
11
|
+
User: null
|
12
|
+
Models: {Areas: {}, Items: {}, Commands: {}, Tokens: {}}
|
13
|
+
Collections: {Areas: {}, Items: {}, Commands: {}, Tokens: {}}
|
12
14
|
Routers: {}
|
13
|
-
Views: {}
|
15
|
+
Views: {Areas: {}, Items: {}, Commands: {}, Tokens: {}}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<!--[if lt IE 7 ]> <html class="ie6" lang="en"> <![endif]-->
|
3
|
+
<!--[if IE 7 ]> <html class="ie7" lang="en"> <![endif]-->
|
4
|
+
<!--[if IE 8 ]> <html class="ie8" lang="en"> <![endif]-->
|
5
|
+
<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en"> <!--<![endif]-->
|
6
|
+
<head>
|
7
|
+
<meta charset="utf-8" />
|
8
|
+
<!-- Uncomment to make IE8 render like IE7 -->
|
9
|
+
<!-- <meta http-equiv="X-UA-Compatible" content="IE=7" /> -->
|
10
|
+
<!-- Set the viewport width to device width for mobile -->
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
12
|
+
<title><%=application_name%></title>
|
13
|
+
|
14
|
+
<%%= stylesheet_link_tag "application", :media => "all" %>
|
15
|
+
<%%= csrf_meta_tags %>
|
16
|
+
</head>
|
17
|
+
|
18
|
+
<body>
|
19
|
+
<%%= javascript_include_tag "application" %>
|
20
|
+
<div id="app">
|
21
|
+
<%%= yield %>
|
22
|
+
</div>
|
23
|
+
</body>
|
24
|
+
</html>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# PBW Helper Methods
|
2
|
+
|
3
|
+
# Debugging to console
|
4
|
+
@debug = (message) ->
|
5
|
+
window.console && console.log message
|
6
|
+
|
7
|
+
# User session
|
8
|
+
@current_user = ->
|
9
|
+
window.<%= js_app_name %>.User
|
10
|
+
|
11
|
+
# Form error handling
|
12
|
+
@form_errors = (message, jqXHR) ->
|
13
|
+
debug message
|
14
|
+
debug jqXHR
|
15
|
+
$("#error").html('<h3>' + message + '</h3><ul>')
|
16
|
+
if jqXHR && jqXHR.responseText
|
17
|
+
_.each($.parseJSON(jqXHR.responseText), (value,key) ->
|
18
|
+
$("#error").append('<li>' + value + '</li>')
|
19
|
+
)
|
20
|
+
$("#error").append('</ul>')
|
21
|
+
$("#error").show()
|
@@ -4,8 +4,23 @@ class <%= router_name %> extends Backbone.Router
|
|
4
4
|
|
5
5
|
routes:
|
6
6
|
"" : "home"
|
7
|
+
"login" : "login"
|
8
|
+
"signup" : "signup"
|
9
|
+
"password_recovery" : "passwordRecovery"
|
7
10
|
|
8
11
|
|
9
12
|
home: ->
|
10
13
|
@view = new <%= "#{js_app_name}.Views.Home.IndexView" %>
|
14
|
+
$("#app").html(@view.render().el)
|
15
|
+
|
16
|
+
login: ->
|
17
|
+
@view = new <%= "#{js_app_name}.Views.Users.LoginView" %>
|
18
|
+
$("#app").html(@view.render().el)
|
19
|
+
|
20
|
+
signup: ->
|
21
|
+
@view = new <%= "#{js_app_name}.Views.Users.SignupView" %>
|
22
|
+
$("#app").html(@view.render().el)
|
23
|
+
|
24
|
+
passwordRecovery: ->
|
25
|
+
@view = new <%= "#{js_app_name}.Views.Users.RecoveryView" %>
|
11
26
|
$("#app").html(@view.render().el)
|
@@ -1 +1,10 @@
|
|
1
|
-
|
1
|
+
<nav>
|
2
|
+
<ul>
|
3
|
+
<%% if(current_user()) { %>
|
4
|
+
<li><a href="/pbw/users/sign_out" data-method="delete">Sign out</a></li>
|
5
|
+
<%% } else { %>
|
6
|
+
<li><a href="#/signup">Sign up</a></li>
|
7
|
+
<li><a href="#/login">Login</a></li>
|
8
|
+
<%% } %>
|
9
|
+
</ul>
|
10
|
+
</nav>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<form id="new-user-session" name="user-session">
|
2
|
+
<div id="error"></div>
|
3
|
+
<input type="hidden" name="authenticity_token" value="<%%= $("meta[name='csrf-token']").attr("content") %>">
|
4
|
+
<fieldset>
|
5
|
+
<legend>Login</legend>
|
6
|
+
<div class="field">
|
7
|
+
<label for="name">Email:</label>
|
8
|
+
<input type="text" name="email" id="email" value="<%%= email %>" >
|
9
|
+
</div>
|
10
|
+
<div class="field">
|
11
|
+
<label for="name">Password:</label>
|
12
|
+
<input type="password" name="password" id="password">
|
13
|
+
</div>
|
14
|
+
<div class="field">
|
15
|
+
<label for="name">Remember me:</label>
|
16
|
+
<input type="checkbox" name="remember_me" id="remember_me">
|
17
|
+
</div>
|
18
|
+
<div class="actions">
|
19
|
+
<input type="submit" value="Login" />
|
20
|
+
</div>
|
21
|
+
</fieldset>
|
22
|
+
</form>
|
23
|
+
|
24
|
+
<a href="#/signup">Sign up</a><br/>
|
25
|
+
<a href="#/password_recovery">Forgot your password?</a>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<form id="new-user-password" name="user-password">
|
2
|
+
<div id="error"></div>
|
3
|
+
<input type="hidden" name="authenticity_token" value="<%%= $("meta[name='csrf-token']").attr("content") %>">
|
4
|
+
<fieldset>
|
5
|
+
<legend>Recover your password</legend>
|
6
|
+
<div class="field">
|
7
|
+
<label for="name">Email:</label>
|
8
|
+
<input type="text" name="email" id="email" value="<%%= email %>" >
|
9
|
+
</div>
|
10
|
+
<div class="actions">
|
11
|
+
<input type="submit" value="Send me reset password instructions" />
|
12
|
+
</div>
|
13
|
+
</fieldset>
|
14
|
+
</form>
|
15
|
+
|
16
|
+
<a href="#/signup">Sign up</a><br/>
|
17
|
+
<a href="#/login">Login</a>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<form id="new-user" name="user">
|
2
|
+
<div id="error"></div>
|
3
|
+
<input type="hidden" name="authenticity_token" value="<%%= $("meta[name='csrf-token']").attr("content") %>">
|
4
|
+
<fieldset>
|
5
|
+
<legend>Sign up</legend>
|
6
|
+
<div class="field">
|
7
|
+
<label for="name">Name:</label>
|
8
|
+
<input type="text" name="name" id="name" value="<%%= name %>" >
|
9
|
+
</div>
|
10
|
+
<div class="field">
|
11
|
+
<label for="name">Email:</label>
|
12
|
+
<input type="text" name="email" id="email" value="<%%= email %>" >
|
13
|
+
</div>
|
14
|
+
<div class="field">
|
15
|
+
<label for="name">Password:</label>
|
16
|
+
<input type="password" name="password" id="password">
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<label for="name">Confirm Password:</label>
|
20
|
+
<input type="password" name="password_confirmation" id="password_confirmation">
|
21
|
+
</div>
|
22
|
+
<div class="actions">
|
23
|
+
<input type="submit" value="Sign up" />
|
24
|
+
</div>
|
25
|
+
</fieldset>
|
26
|
+
</form>
|
27
|
+
|
28
|
+
<a href="#/login">Login</a><br/>
|
29
|
+
<a href="#/password_recovery">Forgot your password?</a>
|
@@ -6,21 +6,28 @@ class <%= view_namespace %>.EditView extends Backbone.View
|
|
6
6
|
events:
|
7
7
|
"submit #edit-<%= singular_name %>": "update"
|
8
8
|
|
9
|
+
constructor: (options) ->
|
10
|
+
super(options)
|
11
|
+
@model = options.model
|
12
|
+
|
13
|
+
@model.bind("change:errors", () =>
|
14
|
+
this.render()
|
15
|
+
)
|
16
|
+
|
17
|
+
@model.bind("error", (model, xhr, options) =>
|
18
|
+
form_errors 'There was a problem saving <%= singular_name %>', xhr
|
19
|
+
)
|
20
|
+
|
9
21
|
update: (e) ->
|
10
22
|
e.preventDefault()
|
11
23
|
e.stopPropagation()
|
12
24
|
|
13
25
|
@model.save(null,
|
14
|
-
success: (<%= singular_name
|
26
|
+
success: (<%= singular_name %>, response, options) =>
|
15
27
|
@model = <%= singular_name %>
|
16
28
|
window.location.hash = "/<%=model_namespace.downcase%>/#{@model.id}"
|
17
|
-
error: (model,
|
18
|
-
|
19
|
-
_.each($.parseJSON(jqXHR.responseText), (value,key) ->
|
20
|
-
$("#error").append('<li>' + value + '</li>')
|
21
|
-
)
|
22
|
-
$("#error").append('</ul>')
|
23
|
-
$("#error").show()
|
29
|
+
error: (model, xhr, options) =>
|
30
|
+
form_errors 'There was a problem saving <%= singular_name %>', xhr
|
24
31
|
)
|
25
32
|
|
26
33
|
render: ->
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<%= user_view_namespace %> ||= {}
|
2
|
+
|
3
|
+
class <%= user_view_namespace %>.LoginView extends Backbone.View
|
4
|
+
template: JST["<%= user_jst 'login' %>"]
|
5
|
+
|
6
|
+
events:
|
7
|
+
"submit #new-user-session": "save"
|
8
|
+
|
9
|
+
constructor: (options) ->
|
10
|
+
super(options)
|
11
|
+
@model = new <%= js_user_model_namespace %>Session
|
12
|
+
|
13
|
+
@model.bind("change:errors", () =>
|
14
|
+
this.render()
|
15
|
+
)
|
16
|
+
|
17
|
+
@model.bind("error", (model, xhr, options) =>
|
18
|
+
form_errors 'There was a problem logging in', xhr
|
19
|
+
)
|
20
|
+
|
21
|
+
save: (e) ->
|
22
|
+
e.preventDefault()
|
23
|
+
e.stopPropagation()
|
24
|
+
|
25
|
+
@model.unset("errors")
|
26
|
+
|
27
|
+
@model.save(@model.attributes,
|
28
|
+
success: (user, response, options) =>
|
29
|
+
@model = user
|
30
|
+
window.<%= js_app_name %>.User = @model
|
31
|
+
window.location.hash = "/"
|
32
|
+
)
|
33
|
+
|
34
|
+
render: ->
|
35
|
+
@$el.html(@template(@model.toJSON() ))
|
36
|
+
|
37
|
+
this.$("form").backboneLink(@model)
|
38
|
+
|
39
|
+
return this
|
@@ -14,6 +14,10 @@ class <%= view_namespace %>.NewView extends Backbone.View
|
|
14
14
|
this.render()
|
15
15
|
)
|
16
16
|
|
17
|
+
@model.bind("error", (model, xhr, options) =>
|
18
|
+
form_errors 'There was a problem saving <%= singular_name %>', xhr
|
19
|
+
)
|
20
|
+
|
17
21
|
save: (e) ->
|
18
22
|
e.preventDefault()
|
19
23
|
e.stopPropagation()
|
@@ -21,17 +25,9 @@ class <%= view_namespace %>.NewView extends Backbone.View
|
|
21
25
|
@model.unset("errors")
|
22
26
|
|
23
27
|
@collection.create(@model.toJSON(),
|
24
|
-
success: (<%= singular_name
|
28
|
+
success: (<%= singular_name %>, response, options) =>
|
25
29
|
@model = <%= singular_name %>
|
26
30
|
window.location.hash = "/<%=model_namespace.downcase%>/#{@model.id}"
|
27
|
-
|
28
|
-
error: (model, jqXHR) =>
|
29
|
-
$("#error").html('<h2>There was a problem saving the <%= singular_name %></h2><ul>')
|
30
|
-
_.each($.parseJSON(jqXHR.responseText), (value,key) ->
|
31
|
-
$("#error").append('<li>' + value + '</li>')
|
32
|
-
)
|
33
|
-
$("#error").append('</ul>')
|
34
|
-
$("#error").show()
|
35
31
|
)
|
36
32
|
|
37
33
|
render: ->
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<%= user_view_namespace %> ||= {}
|
2
|
+
|
3
|
+
class <%= user_view_namespace %>.RecoveryView extends Backbone.View
|
4
|
+
template: JST["<%= user_jst 'recover_password' %>"]
|
5
|
+
|
6
|
+
events:
|
7
|
+
"submit #new-user-password": "save"
|
8
|
+
|
9
|
+
constructor: (options) ->
|
10
|
+
super(options)
|
11
|
+
@model = new <%= js_user_model_namespace %>Recovery
|
12
|
+
|
13
|
+
@model.bind("change:errors", () =>
|
14
|
+
this.render()
|
15
|
+
)
|
16
|
+
|
17
|
+
@model.bind("error", (model, xhr, options) =>
|
18
|
+
form_errors 'There was a problem recovering your password', xhr
|
19
|
+
)
|
20
|
+
|
21
|
+
save: (e) ->
|
22
|
+
e.preventDefault()
|
23
|
+
e.stopPropagation()
|
24
|
+
|
25
|
+
@model.unset("errors")
|
26
|
+
|
27
|
+
@model.save(@model.attributes,
|
28
|
+
success: (user_recovery, response, options) =>
|
29
|
+
@model = user_recovery
|
30
|
+
window.location.hash = "/"
|
31
|
+
)
|
32
|
+
|
33
|
+
render: ->
|
34
|
+
@$el.html(@template(@model.toJSON() ))
|
35
|
+
|
36
|
+
this.$("form").backboneLink(@model)
|
37
|
+
|
38
|
+
return this
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<%= user_view_namespace %> ||= {}
|
2
|
+
|
3
|
+
class <%= user_view_namespace %>.SignupView extends Backbone.View
|
4
|
+
template: JST["<%= user_jst 'signup' %>"]
|
5
|
+
|
6
|
+
events:
|
7
|
+
"submit #new-user": "save"
|
8
|
+
|
9
|
+
constructor: (options) ->
|
10
|
+
super(options)
|
11
|
+
@model = new <%= js_user_model_namespace %>Registration
|
12
|
+
|
13
|
+
@model.bind("change:errors", () =>
|
14
|
+
this.render()
|
15
|
+
)
|
16
|
+
|
17
|
+
@model.bind("error", (model, xhr, options) =>
|
18
|
+
form_errors 'There was a problem signing up', xhr
|
19
|
+
)
|
20
|
+
|
21
|
+
save: (e) ->
|
22
|
+
e.preventDefault()
|
23
|
+
e.stopPropagation()
|
24
|
+
|
25
|
+
@model.unset("errors")
|
26
|
+
|
27
|
+
@model.save(@model.attributes,
|
28
|
+
success: (user, response, options) =>
|
29
|
+
@model = user
|
30
|
+
window.<%= js_app_name %>.User = @model
|
31
|
+
window.location.hash = "/"
|
32
|
+
)
|
33
|
+
|
34
|
+
render: ->
|
35
|
+
@$el.html(@template(@model.toJSON() ))
|
36
|
+
|
37
|
+
this.$("form").backboneLink(@model)
|
38
|
+
|
39
|
+
return this
|
data/lib/pbw/engine.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'pbw/version'
|
2
|
+
require 'mongoid'
|
3
|
+
require 'devise'
|
2
4
|
|
3
5
|
module Pbw
|
4
6
|
class Engine < ::Rails::Engine
|
@@ -20,6 +22,9 @@ module Pbw
|
|
20
22
|
g.javascript_engine :coffee
|
21
23
|
end
|
22
24
|
|
25
|
+
config.email_from_address = 'superadmin@localhost'
|
26
|
+
config.user_lifecycle_class = nil
|
27
|
+
|
23
28
|
initializer "check config" do |app|
|
24
29
|
config.mount_at += '/' unless config.mount_at.last == '/'
|
25
30
|
end
|
@@ -28,17 +33,8 @@ module Pbw
|
|
28
33
|
app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
29
34
|
end
|
30
35
|
|
31
|
-
def self.config(&block)
|
32
|
-
yield Engine.config if block
|
33
|
-
Engine.config
|
34
|
-
end
|
35
|
-
|
36
36
|
def self.version
|
37
37
|
Pbw::VERSION
|
38
38
|
end
|
39
|
-
|
40
|
-
def self.user_lifecycle_class
|
41
|
-
self.config.user_lifecycle_class || User::Lifecycle
|
42
|
-
end
|
43
39
|
end
|
44
40
|
end
|
data/lib/pbw/version.rb
CHANGED
data/lib/pbw.rb
CHANGED
@@ -1,6 +1,19 @@
|
|
1
|
-
require 'mongoid'
|
2
|
-
require 'devise'
|
3
1
|
require "pbw/engine"
|
4
2
|
|
5
3
|
module Pbw
|
4
|
+
def self.email_from_address
|
5
|
+
Engine.config.email_from_address
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.email_from_address=(email)
|
9
|
+
Engine.config.email_from_address = email
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.user_lifecycle_class
|
13
|
+
Engine.config.user_lifecycle_class || ::User::Lifecycle
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.user_lifecycle_class=(klass)
|
17
|
+
Engine.config.user_lifecycle_class = klass
|
18
|
+
end
|
6
19
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
(function($) {
|
2
|
+
return $.extend($.fn, {
|
3
|
+
backboneLink: function(model) {
|
4
|
+
return $(this).find(":input").each(function() {
|
5
|
+
var el, name;
|
6
|
+
el = $(this);
|
7
|
+
name = el.attr("name");
|
8
|
+
model.bind("change:" + name, function() {
|
9
|
+
return el.val(model.get(name));
|
10
|
+
});
|
11
|
+
return $(this).bind("change", function() {
|
12
|
+
var attrs;
|
13
|
+
el = $(this);
|
14
|
+
attrs = {};
|
15
|
+
attrs[el.attr("name")] = el.val();
|
16
|
+
return model.set(attrs);
|
17
|
+
});
|
18
|
+
});
|
19
|
+
}
|
20
|
+
});
|
21
|
+
})(jQuery);
|