pbw 0.0.6 → 0.0.7
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/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
|