kolo 0.5.0 → 0.5.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f2649ea90e8f6d4c69e6992f153c4b2778f3cdec
4
+ data.tar.gz: b6d9242e66590f02731cbc020b044a4a42ec1e98
5
+ SHA512:
6
+ metadata.gz: e4cf1637e2af49a9fd860c0bff1d87e19e7979c421f45529f39b7c5790f0e15d796e9a13ec78255cc61e3e677b8e28a7b161ba414dcd3e21ef7c71e66a6f2082
7
+ data.tar.gz: 5fac2549da412032f75e0d0ce8209fc39820ec109dfe1250843b9094471eb1baaa766f46b82ebeb4cfc8d8ac5bb95da241382d8c0821059a81adef8adb7b07ec
@@ -36,8 +36,13 @@ class ViewModel
36
36
  #
37
37
  # It expects models to have an updateAttributes(data) method and a valid method
38
38
  #
39
- # After instantiation you can also set the following hooks:
39
+ # After instantiation you can also set the following hooks (some of these have callback equivalents):
40
40
  # db.sortFunction = function(a, b) { ... }
41
+ # db.onAfterLoad = function(data) { ... }
42
+ # db.onBeforeLoad = function() { ... }
43
+ # db.onAfterDelete = function(data) { ... }
44
+ # db.onAfterSave = function(data) { ... }
45
+ # db.onAfterPost = function(data) { ... }
41
46
 
42
47
  class Db
43
48
  constructor: (@viewModel, @name, url, @pushStateUri)->
@@ -47,6 +52,11 @@ class Db
47
52
  @selected = ko.observable null
48
53
  @plural = "#{@name}s"
49
54
  @sortFunction = null
55
+ @onAfterLoad = null
56
+ @onBeforeLoad = null
57
+ @onAfterDelete = null
58
+ @onAfterSave = null
59
+ @onAfterPost = null
50
60
  @autoLoading = false
51
61
 
52
62
  @url.subscribe (newValue)=>
@@ -81,9 +91,11 @@ class Db
81
91
  if !@selected()
82
92
  @viewModel.systemNotification @plural, 'loading'
83
93
  @viewModel.loading true
94
+ @onBeforeLoad() if @onBeforeLoad?
84
95
  $.get @url(), (data)=>
85
96
  @doLoad(data)
86
97
  afterLoad(data) if afterLoad?
98
+ @onAfterLoad(data) if @onAfterLoad?
87
99
  @viewModel.loading false
88
100
  @viewModel.systemNotification @plural, 'loaded'
89
101
  if autoReload
@@ -103,6 +115,7 @@ class Db
103
115
  data: data
104
116
  success: (data)=>
105
117
  afterPost(data) if afterPost?
118
+ @onAfterPost(data) if @onAfterPost?
106
119
  @viewModel.loading false
107
120
  @viewModel.systemNotification @name, 'saved'
108
121
  @load(false)
@@ -139,6 +152,7 @@ class Db
139
152
  success: (data)=>
140
153
  @selected null
141
154
  afterSave(item) if afterSave?
155
+ @onAfterSave(item) if @onAfterSave?
142
156
  @viewModel.systemNotification @name, 'saved'
143
157
  @viewModel.loading false
144
158
  @load()
@@ -155,6 +169,7 @@ class Db
155
169
  success: (data)=>
156
170
  @selected null
157
171
  afterSave(item) if afterSave?
172
+ @onAfterSave(item) if @onAfterSave?
158
173
  @viewModel.systemNotification @name, 'saved'
159
174
  @viewModel.loading false
160
175
  @load()
@@ -171,6 +186,7 @@ class Db
171
186
  @selected null
172
187
  @items.remove(item)
173
188
  afterDelete() if afterDelete?
189
+ @onAfterDelete(item) if @onAfterDelete?
174
190
  @viewModel.systemNotification @name, 'deleted'
175
191
  @viewModel.loading false
176
192
  @load()
@@ -220,6 +236,13 @@ class Model
220
236
  @select()
221
237
  @editing true
222
238
 
239
+ startDeleting: ->
240
+ @edit()
241
+ @deleting true
242
+
243
+ stopDeleting: ->
244
+ @deleting false
245
+
223
246
  save: ->
224
247
  return unless @valid()
225
248
  @deselect()
data/lib/kolo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kolo
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kolo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.5.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Rahoul Baruah
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-27 00:00:00.000000000 Z
11
+ date: 2013-07-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,17 +27,15 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: A quick way to set up a Rails app with Bootstrap and KnockoutJS
@@ -81,32 +76,25 @@ files:
81
76
  homepage: ''
82
77
  licenses:
83
78
  - LGPL
79
+ metadata: {}
84
80
  post_install_message:
85
81
  rdoc_options: []
86
82
  require_paths:
87
83
  - lib
88
84
  required_ruby_version: !ruby/object:Gem::Requirement
89
- none: false
90
85
  requirements:
91
- - - ! '>='
86
+ - - '>='
92
87
  - !ruby/object:Gem::Version
93
88
  version: '0'
94
- segments:
95
- - 0
96
- hash: 100456755
97
89
  required_rubygems_version: !ruby/object:Gem::Requirement
98
- none: false
99
90
  requirements:
100
- - - ! '>='
91
+ - - '>='
101
92
  - !ruby/object:Gem::Version
102
93
  version: '0'
103
- segments:
104
- - 0
105
- hash: 100456755
106
94
  requirements: []
107
95
  rubyforge_project:
108
- rubygems_version: 1.8.24
96
+ rubygems_version: 2.0.3
109
97
  signing_key:
110
- specification_version: 3
98
+ specification_version: 4
111
99
  summary: A quick way to set up a Rails app with Bootstrap and KnockoutJS
112
100
  test_files: []