pbw 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/controllers/pbw/base_models_controller.rb +22 -10
- data/app/controllers/pbw/commands_controller.rb +11 -0
- data/app/controllers/pbw/items_controller.rb +1 -1
- data/app/models/pbw/ability.rb +35 -11
- data/app/models/pbw/area.rb +25 -0
- data/app/models/pbw/attached_process.rb +41 -0
- data/app/models/pbw/capability.rb +20 -0
- data/app/models/pbw/command.rb +105 -0
- data/app/models/pbw/constraint.rb +20 -0
- data/app/models/pbw/item.rb +16 -0
- data/app/models/pbw/item_container.rb +16 -0
- data/app/models/pbw/item_conversion.rb +16 -0
- data/app/models/pbw/item_transfer.rb +16 -0
- data/app/models/pbw/process.rb +17 -8
- data/app/models/pbw/rule.rb +16 -0
- data/app/models/pbw/token.rb +26 -1
- data/app/models/pbw/trigger.rb +20 -0
- data/app/models/pbw/user.rb +50 -14
- data/config/initializers/devise.rb +0 -8
- data/config/routes.rb +1 -1
- data/lib/generators/pbw/area/area_generator.rb +4 -0
- data/lib/generators/pbw/item/item_generator.rb +4 -0
- data/lib/generators/pbw/rules/capability/capability_generator.rb +4 -0
- data/lib/generators/pbw/rules/command/USAGE +3 -3
- data/lib/generators/pbw/rules/command/command_generator.rb +11 -11
- data/lib/generators/pbw/rules/command/templates/model.coffee +1 -0
- data/lib/generators/pbw/rules/constraint/constraint_generator.rb +4 -0
- data/lib/generators/pbw/rules/process/process_generator.rb +4 -0
- data/lib/generators/pbw/rules/trigger/trigger_generator.rb +4 -0
- data/lib/generators/pbw/scaffold_generator.rb +3 -3
- data/lib/generators/pbw/token/token_generator.rb +4 -0
- data/lib/pbw/tick.rb +8 -0
- data/lib/pbw/update.rb +8 -0
- data/lib/pbw/version.rb +1 -1
- data/lib/tasks/pbw_tasks.rake +11 -4
- metadata +36 -14
- data/app/controllers/pbw/roles_controller.rb +0 -46
- data/app/models/pbw/permission.rb +0 -13
- data/app/models/pbw/role.rb +0 -26
- data/lib/generators/pbw/rules/command/templates/command.rb +0 -18
- data/lib/generators/pbw/rules/command/templates/index.erb +0 -6
- data/lib/generators/pbw/rules/command/templates/templates/edit.jst +0 -17
- data/lib/generators/pbw/rules/command/templates/templates/index.jst +0 -16
- data/lib/generators/pbw/rules/command/templates/templates/show.jst +0 -9
- data/lib/generators/pbw/rules/command/templates/views/edit_view.coffee +0 -24
- data/lib/generators/pbw/rules/command/templates/views/index_view.coffee +0 -20
- data/lib/generators/pbw/rules/command/templates/views/show_view.coffee +0 -8
data/app/models/pbw/user.rb
CHANGED
@@ -2,9 +2,11 @@ module Pbw
|
|
2
2
|
class User
|
3
3
|
include ::Mongoid::Document
|
4
4
|
include ::Mongoid::Timestamps
|
5
|
+
|
6
|
+
ROLES = %W{superadmin admin moderator player}
|
5
7
|
|
6
|
-
devise :database_authenticatable, :registerable, :timeoutable,
|
7
|
-
:recoverable, :rememberable, :trackable, :validatable, :lockable
|
8
|
+
devise :database_authenticatable, :registerable, :timeoutable,
|
9
|
+
:recoverable, :rememberable, :trackable, :validatable, :lockable
|
8
10
|
|
9
11
|
## Database authenticatable
|
10
12
|
field :email, :type => String, :default => ""
|
@@ -30,27 +32,61 @@ module Pbw
|
|
30
32
|
validates_format_of :email, :with => /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
|
31
33
|
validates_confirmation_of :password
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
## Confirmable
|
36
|
-
field :confirmation_token, :type => String
|
37
|
-
field :confirmed_at, :type => Time
|
38
|
-
field :confirmation_sent_at, :type => Time
|
39
|
-
field :unconfirmed_email, :type => String # Only if using reconfirmable
|
35
|
+
field :role, :type => String, :default => 'player'
|
40
36
|
|
41
37
|
## Lockable
|
42
38
|
field :failed_attempts, :type => Integer, :default => 0 # Only if lock strategy is :failed_attempts
|
43
39
|
field :unlock_token, :type => String # Only if unlock strategy is :email or :both
|
44
40
|
field :locked_at, :type => Time
|
45
41
|
|
46
|
-
## Token authenticatable
|
47
|
-
field :authentication_token, :type => String
|
48
|
-
|
49
42
|
has_many :resource_containers
|
50
43
|
has_many :tokens
|
51
44
|
|
52
|
-
def
|
53
|
-
self.role
|
45
|
+
def superadmin?
|
46
|
+
self.role == "superadmin"
|
47
|
+
end
|
48
|
+
|
49
|
+
def make_superadmin!
|
50
|
+
self.role = "superadmin"
|
51
|
+
save!
|
52
|
+
end
|
53
|
+
|
54
|
+
def admin?
|
55
|
+
self.role == "admin"
|
56
|
+
end
|
57
|
+
|
58
|
+
def make_admin!
|
59
|
+
self.role = "admin"
|
60
|
+
save!
|
61
|
+
end
|
62
|
+
|
63
|
+
def moderator?
|
64
|
+
self.role == "moderator"
|
65
|
+
end
|
66
|
+
|
67
|
+
def make_moderator!
|
68
|
+
self.role = "moderator"
|
69
|
+
save!
|
70
|
+
end
|
71
|
+
|
72
|
+
def player?
|
73
|
+
self.role == "player"
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.viewable_by?(user, subject)
|
77
|
+
true
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.creatable_by?(user, subject)
|
81
|
+
true
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.editable_by?(user, subject)
|
85
|
+
user.admin? || subject == user
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.deletable_by?(user, subject)
|
89
|
+
user.admin?
|
54
90
|
end
|
55
91
|
end
|
56
92
|
end
|
@@ -29,14 +29,6 @@ Devise.setup do |config|
|
|
29
29
|
|
30
30
|
config.pepper = "63818839cfabfff3dcf5983671b4d2f01708727af5d512fd79a8afe7e744187a8976280cd31e8d1b023c2c29f4f396810c90ef15de5faaa20595e84bee4c9545"
|
31
31
|
|
32
|
-
config.allow_unconfirmed_access_for = 2.days
|
33
|
-
|
34
|
-
config.confirm_within = 3.days
|
35
|
-
|
36
|
-
config.reconfirmable = true
|
37
|
-
|
38
|
-
config.confirmation_keys = [ :email ]
|
39
|
-
|
40
32
|
config.remember_for = 2.weeks
|
41
33
|
|
42
34
|
config.extend_remember_period = false
|
data/config/routes.rb
CHANGED
@@ -3,7 +3,7 @@ Pbw::Engine.routes.draw do
|
|
3
3
|
class_name: 'Pbw::User',
|
4
4
|
module: :devise
|
5
5
|
}
|
6
|
-
%W{areas capabilities constraints processes items tokens triggers}.each do |controller|
|
6
|
+
%W{areas capabilities constraints processes items tokens triggers commands}.each do |controller|
|
7
7
|
get "#{controller}/:_type" => "#{controller}\#index"
|
8
8
|
get "#{controller}/:_type/:id" => "#{controller}\#show"
|
9
9
|
post "#{controller}/:_type" => "#{controller}\#create"
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Description:
|
2
|
-
Generates command class plus Backbone
|
2
|
+
Generates command model class plus Backbone model, views and templates for submitting commands
|
3
3
|
|
4
4
|
Example:
|
5
5
|
rails generate pbw:rules:command MoveArmy area:string
|
6
6
|
|
7
7
|
This will create:
|
8
|
-
* A
|
9
|
-
* Backbone
|
8
|
+
* A model inheriting from Pbw::Command
|
9
|
+
* Backbone model, views and templates for submitting commands
|
@@ -1,18 +1,14 @@
|
|
1
1
|
require 'generators/pbw/resource_helpers'
|
2
|
+
require 'generators/pbw/model_generator'
|
2
3
|
require 'generators/pbw/rules/rules'
|
3
4
|
|
4
|
-
class Pbw::Rules::CommandGenerator <
|
5
|
-
include Pbw::Generators::ResourceHelpers
|
5
|
+
class Pbw::Rules::CommandGenerator < Pbw::Generators::ModelGenerator
|
6
6
|
source_root File.expand_path('../templates', __FILE__)
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
def create_backbone_model
|
15
|
-
template "model.coffee", "#{backbone_path}/models/#{file_name}.js.coffee"
|
8
|
+
def create_resources
|
9
|
+
generate "model", "Commands::#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
|
10
|
+
gsub_file "app/models/commands/#{file_name}.rb", "class Commands::#{class_name}", "class Commands::#{class_name} < #{base_model_class}"
|
11
|
+
gsub_file "app/models/commands/#{file_name}.rb", "include Mongoid::Document", ""
|
16
12
|
end
|
17
13
|
|
18
14
|
def create_view_files
|
@@ -26,6 +22,10 @@ class Pbw::Rules::CommandGenerator < Rails::Generators::NamedBase
|
|
26
22
|
|
27
23
|
protected
|
28
24
|
def available_views
|
29
|
-
%w(
|
25
|
+
%w(new)
|
26
|
+
end
|
27
|
+
|
28
|
+
def base_model_class
|
29
|
+
"Pbw::Command"
|
30
30
|
end
|
31
31
|
end
|
@@ -18,11 +18,11 @@ module Pbw
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def create_resources
|
21
|
-
generate "model", "#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
|
21
|
+
generate "model", "#{model_namespace}::#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
|
22
22
|
template "index.erb", "app/views/#{plural_name}/index.html.erb"
|
23
23
|
generate "controller", "#{plural_name} index --skip"
|
24
|
-
gsub_file "app/models/#{file_name}.rb", "class #{class_name}", "class #{class_name} < #{base_model_class}"
|
25
|
-
gsub_file "app/models/#{file_name}.rb", "include Mongoid::Document", ""
|
24
|
+
gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "class #{model_namespace}::#{class_name}", "class #{model_namespace}::#{class_name} < #{base_model_class}"
|
25
|
+
gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "include Mongoid::Document", ""
|
26
26
|
end
|
27
27
|
|
28
28
|
protected
|
data/lib/pbw/tick.rb
ADDED
data/lib/pbw/update.rb
ADDED
data/lib/pbw/version.rb
CHANGED
data/lib/tasks/pbw_tasks.rake
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pbw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seyed P. Razavi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -137,7 +137,35 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: mocha
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: turn
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ! '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ! '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: minitest
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
142
170
|
requirements:
|
143
171
|
- - ! '>='
|
@@ -189,29 +217,29 @@ files:
|
|
189
217
|
- app/controllers/pbw/areas_controller.rb
|
190
218
|
- app/controllers/pbw/base_models_controller.rb
|
191
219
|
- app/controllers/pbw/capabilities_controller.rb
|
220
|
+
- app/controllers/pbw/commands_controller.rb
|
192
221
|
- app/controllers/pbw/constraints_controller.rb
|
193
222
|
- app/controllers/pbw/item_containers_controller.rb
|
194
223
|
- app/controllers/pbw/item_conversions_controller.rb
|
195
224
|
- app/controllers/pbw/item_transfers_controller.rb
|
196
225
|
- app/controllers/pbw/items_controller.rb
|
197
226
|
- app/controllers/pbw/processes_controller.rb
|
198
|
-
- app/controllers/pbw/roles_controller.rb
|
199
227
|
- app/controllers/pbw/tokens_controller.rb
|
200
228
|
- app/controllers/pbw/triggers_controller.rb
|
201
229
|
- app/controllers/pbw/user_tokens_controller.rb
|
202
230
|
- app/helpers/pbw/application_helper.rb
|
203
231
|
- app/models/pbw/ability.rb
|
204
232
|
- app/models/pbw/area.rb
|
233
|
+
- app/models/pbw/attached_process.rb
|
205
234
|
- app/models/pbw/capability.rb
|
206
235
|
- app/models/pbw/changeset.rb
|
236
|
+
- app/models/pbw/command.rb
|
207
237
|
- app/models/pbw/constraint.rb
|
208
238
|
- app/models/pbw/item.rb
|
209
239
|
- app/models/pbw/item_container.rb
|
210
240
|
- app/models/pbw/item_conversion.rb
|
211
241
|
- app/models/pbw/item_transfer.rb
|
212
|
-
- app/models/pbw/permission.rb
|
213
242
|
- app/models/pbw/process.rb
|
214
|
-
- app/models/pbw/role.rb
|
215
243
|
- app/models/pbw/rule.rb
|
216
244
|
- app/models/pbw/token.rb
|
217
245
|
- app/models/pbw/trigger.rb
|
@@ -272,19 +300,11 @@ files:
|
|
272
300
|
- lib/generators/pbw/rules/capability/templates/views/show_view.coffee
|
273
301
|
- lib/generators/pbw/rules/capability/USAGE
|
274
302
|
- lib/generators/pbw/rules/command/command_generator.rb
|
275
|
-
- lib/generators/pbw/rules/command/templates/command.rb
|
276
|
-
- lib/generators/pbw/rules/command/templates/index.erb
|
277
303
|
- lib/generators/pbw/rules/command/templates/model.coffee
|
278
|
-
- lib/generators/pbw/rules/command/templates/templates/edit.jst
|
279
|
-
- lib/generators/pbw/rules/command/templates/templates/index.jst
|
280
304
|
- lib/generators/pbw/rules/command/templates/templates/model.jst
|
281
305
|
- lib/generators/pbw/rules/command/templates/templates/new.jst
|
282
|
-
- lib/generators/pbw/rules/command/templates/templates/show.jst
|
283
|
-
- lib/generators/pbw/rules/command/templates/views/edit_view.coffee
|
284
|
-
- lib/generators/pbw/rules/command/templates/views/index_view.coffee
|
285
306
|
- lib/generators/pbw/rules/command/templates/views/model_view.coffee
|
286
307
|
- lib/generators/pbw/rules/command/templates/views/new_view.coffee
|
287
|
-
- lib/generators/pbw/rules/command/templates/views/show_view.coffee
|
288
308
|
- lib/generators/pbw/rules/command/USAGE
|
289
309
|
- lib/generators/pbw/rules/constraint/constraint_generator.rb
|
290
310
|
- lib/generators/pbw/rules/constraint/templates/index.erb
|
@@ -349,6 +369,8 @@ files:
|
|
349
369
|
- lib/generators/pbw/token/token_generator.rb
|
350
370
|
- lib/generators/pbw/token/USAGE
|
351
371
|
- lib/pbw/engine.rb
|
372
|
+
- lib/pbw/tick.rb
|
373
|
+
- lib/pbw/update.rb
|
352
374
|
- lib/pbw/version.rb
|
353
375
|
- lib/pbw.rb
|
354
376
|
- lib/tasks/pbw_tasks.rake
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module Pbw
|
2
|
-
class RolesController < ApplicationController
|
3
|
-
respond_to :json
|
4
|
-
|
5
|
-
before_filter :authenticate_user!
|
6
|
-
before_filter :is_super_admin?
|
7
|
-
|
8
|
-
def index
|
9
|
-
@roles = Role.all.keep_if{|i| i.name != "Super Admin"}
|
10
|
-
render json: @roles
|
11
|
-
end
|
12
|
-
|
13
|
-
def show
|
14
|
-
@role = Role.find(params[:id])
|
15
|
-
@permissions = @role.permissions
|
16
|
-
render json: {role: @role, permissions: @permissions}
|
17
|
-
end
|
18
|
-
|
19
|
-
def edit
|
20
|
-
@role = Role.find(params[:id])
|
21
|
-
@permissions = Permission.all
|
22
|
-
@role_permissions = @role.permissions.collect{|p| p.id}
|
23
|
-
render json: {role: @role, permissions: @permissions, role_permissions: @role_permissions}
|
24
|
-
end
|
25
|
-
|
26
|
-
def update
|
27
|
-
@role = Role.find(params[:id])
|
28
|
-
@role.permissions = []
|
29
|
-
@role.set_permissions(params[:permissions]) if params[:permissions]
|
30
|
-
if @role.save
|
31
|
-
render json: {notice: "Role updated"}
|
32
|
-
return
|
33
|
-
end
|
34
|
-
render 'edit'
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
def is_super_admin?
|
40
|
-
unless current_user.super_admin?
|
41
|
-
render json: {:error => "Access denied. You are not authorized to access the requested page."}, status: 401
|
42
|
-
return false
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module Pbw
|
2
|
-
class Permission
|
3
|
-
include ::Mongoid::Document
|
4
|
-
include ::Mongoid::Timestamps
|
5
|
-
field :subject_class, type: String
|
6
|
-
field :action, type: String
|
7
|
-
field :name, type: String
|
8
|
-
|
9
|
-
attr_accessible :subject_class, :action, :name
|
10
|
-
|
11
|
-
has_and_belongs_to_many :roles
|
12
|
-
end
|
13
|
-
end
|
data/app/models/pbw/role.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Pbw
|
2
|
-
class Role
|
3
|
-
include ::Mongoid::Document
|
4
|
-
include ::Mongoid::Timestamps
|
5
|
-
field :name, type: String
|
6
|
-
attr_accessible :name
|
7
|
-
has_many :users
|
8
|
-
|
9
|
-
validates :name, presence: true, uniqueness: true
|
10
|
-
|
11
|
-
has_and_belongs_to_many :permissions
|
12
|
-
|
13
|
-
def set_permission(subject_class, action)
|
14
|
-
p = Permission.where(subject_class: subject_class, action: action)
|
15
|
-
p = Permission.create(subject_class: subject_class, action: action) unless p
|
16
|
-
self.permissions << p
|
17
|
-
end
|
18
|
-
|
19
|
-
def set_permissions(permissions)
|
20
|
-
permissions.each do |id|
|
21
|
-
permission = Permission.find(id)
|
22
|
-
self.permissions << p
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
class Commands::<%=class_name%>
|
2
|
-
<% attributes.each do |attribute| -%>
|
3
|
-
attr_accessor :<%=attribute.name%>
|
4
|
-
<% end -%>
|
5
|
-
attr_accessor :token
|
6
|
-
|
7
|
-
def valid_token?(token)
|
8
|
-
# define checks to make sure token is valid for this command
|
9
|
-
false
|
10
|
-
end
|
11
|
-
|
12
|
-
def processes
|
13
|
-
# specify the processes that is called by this command
|
14
|
-
# return either a single object inheriting from Pbw::Process or an array of them
|
15
|
-
# Example:
|
16
|
-
# Process.where(name: 'Move')
|
17
|
-
end
|
18
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
<h1>Edit <%= singular_table_name %></h1>
|
2
|
-
|
3
|
-
<form id="edit-<%= singular_table_name %>" name="<%= singular_table_name %>">
|
4
|
-
<% attributes.each do |attribute| -%>
|
5
|
-
<div class="field">
|
6
|
-
<label for="<%= attribute.name %>"> <%= attribute.human_name %>:</label>
|
7
|
-
<input type="text" name="<%= attribute.name %>" id="<%= attribute.name %>" value="<%%= <%= attribute.name %> %>" >
|
8
|
-
</div>
|
9
|
-
|
10
|
-
<% end -%>
|
11
|
-
<div class="actions">
|
12
|
-
<input type="submit" value="Update <%= human_name %>" />
|
13
|
-
</div>
|
14
|
-
|
15
|
-
</form>
|
16
|
-
|
17
|
-
<a href="#/">Back</a>
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<h1>Listing <%= plural_table_name %></h1>
|
2
|
-
|
3
|
-
<table id="<%= plural_name %>-table">
|
4
|
-
<tr>
|
5
|
-
<% attributes.each do |attribute| -%>
|
6
|
-
<th><%= attribute.human_name %></th>
|
7
|
-
<% end -%>
|
8
|
-
<th></th>
|
9
|
-
<th></th>
|
10
|
-
<th></th>
|
11
|
-
</tr>
|
12
|
-
</table>
|
13
|
-
|
14
|
-
<br/>
|
15
|
-
|
16
|
-
<a href="#/new">New <%= human_name %></a>
|
@@ -1,24 +0,0 @@
|
|
1
|
-
<%= view_namespace %> ||= {}
|
2
|
-
|
3
|
-
class <%= view_namespace %>.EditView extends Backbone.View
|
4
|
-
template: JST["<%= jst 'edit' %>"]
|
5
|
-
|
6
|
-
events:
|
7
|
-
"submit #edit-<%= singular_name %>": "update"
|
8
|
-
|
9
|
-
update: (e) ->
|
10
|
-
e.preventDefault()
|
11
|
-
e.stopPropagation()
|
12
|
-
|
13
|
-
@model.save(null,
|
14
|
-
success: (<%= singular_name %>) =>
|
15
|
-
@model = <%= singular_name %>
|
16
|
-
window.location.hash = "/#{@model.id}"
|
17
|
-
)
|
18
|
-
|
19
|
-
render: ->
|
20
|
-
@$el.html(@template(@model.toJSON() ))
|
21
|
-
|
22
|
-
this.$("form").backboneLink(@model)
|
23
|
-
|
24
|
-
return this
|
@@ -1,20 +0,0 @@
|
|
1
|
-
<%= view_namespace %> ||= {}
|
2
|
-
|
3
|
-
class <%= view_namespace %>.IndexView extends Backbone.View
|
4
|
-
template: JST["<%= jst 'index' %>"]
|
5
|
-
|
6
|
-
initialize: () ->
|
7
|
-
@options.<%= plural_model_name %>.bind('reset', @addAll)
|
8
|
-
|
9
|
-
addAll: () =>
|
10
|
-
@options.<%= plural_model_name %>.each(@addOne)
|
11
|
-
|
12
|
-
addOne: (<%= singular_model_name %>) =>
|
13
|
-
view = new <%= view_namespace %>.<%= singular_name.camelize %>View({model : <%= singular_model_name %>})
|
14
|
-
@$("tbody").append(view.render().el)
|
15
|
-
|
16
|
-
render: =>
|
17
|
-
@$el.html(@template(<%= plural_model_name %>: @options.<%= plural_model_name %>.toJSON() ))
|
18
|
-
@addAll()
|
19
|
-
|
20
|
-
return this
|