engine2 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -0
  3. data/Rakefile +1 -1
  4. data/app/{engine2actions.coffee → actions.coffee} +192 -142
  5. data/app/app.coffee +0 -0
  6. data/app/app.css +4 -0
  7. data/app/engine2.coffee +87 -175
  8. data/app/modal.coffee +133 -0
  9. data/bower.json +2 -1
  10. data/conf/message.yaml +0 -0
  11. data/conf/message_pl.yaml +0 -0
  12. data/config.coffee +11 -2
  13. data/engine2.gemspec +2 -2
  14. data/lib/engine2.rb +12 -10
  15. data/lib/engine2/action.rb +1290 -134
  16. data/lib/engine2/{meta/array_meta.rb → action/array.rb} +4 -3
  17. data/lib/engine2/{meta/decode_meta.rb → action/decode.rb} +16 -15
  18. data/lib/engine2/action/delete.rb +65 -0
  19. data/lib/engine2/action/form.rb +16 -0
  20. data/lib/engine2/{meta/infra_meta.rb → action/infra.rb} +118 -85
  21. data/lib/engine2/action/link.rb +117 -0
  22. data/lib/engine2/{meta/list_meta.rb → action/list.rb} +61 -62
  23. data/lib/engine2/action/save.rb +30 -0
  24. data/lib/engine2/action/view.rb +8 -0
  25. data/lib/engine2/action_node.rb +221 -0
  26. data/lib/engine2/core.rb +120 -77
  27. data/lib/engine2/handler.rb +9 -10
  28. data/lib/engine2/model.rb +4 -20
  29. data/lib/engine2/models/Files.rb +2 -1
  30. data/lib/engine2/models/UserInfo.rb +6 -3
  31. data/lib/engine2/post_bootstrap.rb +3 -2
  32. data/lib/engine2/pre_bootstrap.rb +1 -0
  33. data/lib/engine2/scheme.rb +98 -47
  34. data/lib/engine2/templates.rb +1 -0
  35. data/lib/engine2/type_info.rb +6 -4
  36. data/lib/engine2/version.rb +2 -1
  37. data/package.json +12 -10
  38. data/public/favicon.ico +0 -0
  39. data/public/img/ajax-loader-dark.gif +0 -0
  40. data/public/img/ajax-loader.gif +0 -0
  41. data/views/fields/blob.slim +0 -0
  42. data/views/fields/bs_select.slim +0 -0
  43. data/views/fields/bsselect_picker.slim +0 -0
  44. data/views/fields/bsselect_picker_opt.slim +0 -0
  45. data/views/fields/checkbox.slim +0 -0
  46. data/views/fields/checkbox_buttons.slim +0 -0
  47. data/views/fields/checkbox_buttons_opt.slim +0 -0
  48. data/views/fields/currency.slim +0 -0
  49. data/views/fields/date.slim +0 -0
  50. data/views/fields/date_range.slim +0 -0
  51. data/views/fields/date_time.slim +0 -0
  52. data/views/fields/datetime.slim +0 -0
  53. data/views/fields/decimal.slim +0 -0
  54. data/views/fields/decimal_date.slim +0 -0
  55. data/views/fields/decimal_time.slim +0 -0
  56. data/views/fields/email.slim +0 -0
  57. data/views/fields/file_store.slim +7 -7
  58. data/views/fields/input_text.slim +0 -0
  59. data/views/fields/integer.slim +0 -0
  60. data/views/fields/list_bsselect.slim +0 -0
  61. data/views/fields/list_bsselect_opt.slim +0 -0
  62. data/views/fields/list_buttons.slim +0 -0
  63. data/views/fields/list_buttons_opt.slim +0 -0
  64. data/views/fields/list_select.slim +0 -0
  65. data/views/fields/list_select_opt.slim +0 -0
  66. data/views/fields/password.slim +0 -0
  67. data/views/fields/radio_checkbox.slim +0 -0
  68. data/views/fields/scaffold.slim +0 -0
  69. data/views/fields/scaffold_picker.slim +0 -0
  70. data/views/fields/select_picker.slim +0 -0
  71. data/views/fields/select_picker_opt.slim +0 -0
  72. data/views/fields/text_area.slim +1 -0
  73. data/views/fields/time.slim +0 -0
  74. data/views/fields/typeahead_picker.slim +0 -0
  75. data/views/index.slim +3 -3
  76. data/views/infra/index.slim +0 -0
  77. data/views/infra/inspect.slim +20 -0
  78. data/views/modals/close_m.slim +0 -0
  79. data/views/modals/confirm_m.slim +0 -0
  80. data/views/modals/empty_m.slim +0 -0
  81. data/views/modals/menu_m.slim +1 -1
  82. data/views/modals/yes_no_m.slim +0 -0
  83. data/views/panels/menu_m.slim +1 -1
  84. data/views/scaffold/confirm.slim +0 -0
  85. data/views/scaffold/fields.slim +0 -0
  86. data/views/scaffold/form.slim +0 -0
  87. data/views/scaffold/form_collapse.slim +0 -0
  88. data/views/scaffold/form_tabs.slim +0 -0
  89. data/views/scaffold/list.slim +0 -0
  90. data/views/scaffold/message.slim +0 -0
  91. data/views/scaffold/search.slim +0 -0
  92. data/views/scaffold/search_collapse.slim +0 -0
  93. data/views/scaffold/search_tabs.slim +0 -0
  94. data/views/scaffold/view.slim +0 -0
  95. data/views/scaffold/view_collapse.slim +0 -0
  96. data/views/scaffold/view_tabs.slim +0 -0
  97. data/views/search_fields/bsmselect_picker.slim +0 -0
  98. data/views/search_fields/bsselect_picker.slim +0 -0
  99. data/views/search_fields/checkbox.slim +0 -0
  100. data/views/search_fields/checkbox2.slim +0 -0
  101. data/views/search_fields/checkbox_buttons.slim +0 -0
  102. data/views/search_fields/date_range.slim +0 -0
  103. data/views/search_fields/decimal_date_range.slim +0 -0
  104. data/views/search_fields/input_text.slim +0 -0
  105. data/views/search_fields/integer.slim +0 -0
  106. data/views/search_fields/integer_range.slim +0 -0
  107. data/views/search_fields/list_bsmselect.slim +0 -0
  108. data/views/search_fields/list_bsselect.slim +0 -0
  109. data/views/search_fields/list_buttons.slim +0 -0
  110. data/views/search_fields/list_select.slim +0 -0
  111. data/views/search_fields/scaffold_picker.slim +0 -0
  112. data/views/search_fields/select_picker.slim +0 -0
  113. data/views/search_fields/typeahead_picker.slim +0 -0
  114. metadata +41 -42
  115. data/lib/engine2/meta.rb +0 -1216
  116. data/lib/engine2/meta/delete_meta.rb +0 -60
  117. data/lib/engine2/meta/form_meta.rb +0 -15
  118. data/lib/engine2/meta/link_meta.rb +0 -134
  119. data/lib/engine2/meta/save_meta.rb +0 -50
  120. data/lib/engine2/meta/view_meta.rb +0 -7
  121. data/public/__sinatra__/404.png +0 -0
  122. data/public/__sinatra__/500.png +0 -0
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Engine2
4
5
  class UserInfo < Sequel::Model(DUMMYDB)
@@ -6,15 +7,17 @@ module Engine2
6
7
  extend MemoryModel
7
8
 
8
9
  type_info do
9
- string_field :name, 10
10
+ string_field :name, 100
10
11
  required :name, LOCS[:user_required]
11
- string_field :password, 20
12
+ string_field :password, 100
12
13
  required :password, LOCS[:password_required]
13
14
  password :password
14
15
  end
15
16
 
16
17
  def to_hash
17
- {name: @values[:name]}
18
+ hash = @values.dup
19
+ hash.delete(:password)
20
+ hash
18
21
  end
19
22
  end
20
23
  end
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Sequel
4
5
  module SequelFixes
@@ -31,10 +32,10 @@ module Sequel
31
32
  columns = SequelFixes.fix_aliased_expression(clone(:append_sql=>'', :placeholder_literal_null=>true))
32
33
  dsa1 = dataset_alias(1)
33
34
  rn = row_number_column
34
- sql = @opts[:append_sql] || ''
35
+ sql = @opts[:append_sql] || String.new
35
36
  subselect_sql_append(sql, unlimited.
36
37
  unordered.
37
- select_append{ROW_NUMBER{}.over(:order=>order).as(rn)}.
38
+ select_append{:ROW_NUMBER.sql_function.over(:order=>order).as(rn)}.
38
39
  from_self(:alias=>dsa1).
39
40
  select(*columns).
40
41
  limit(@opts[:limit]).
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Sequel
4
5
  class JDBC::Database
@@ -1,10 +1,14 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Engine2
4
5
  class Schemes
5
6
  CRUD ||= {create: true, view: true, modify: true, delete: true}.freeze # bulk_delete: true
6
7
  VIEW ||= {view: true}.freeze
7
8
  LINK ||= {star_to_many_link: true, view: true, star_to_many_unlink: true}.freeze # star_to_many_bulk_unlink: true
9
+ STMF_CRUD ||= {star_to_many_field_create: true, star_to_many_field_view: true, star_to_many_field_modify: true, star_to_many_field_delete: true}.freeze
10
+ STMF_VIEW ||= {star_to_many_field_view: true}.freeze
11
+ STMF_LINK ||= {star_to_many_field_view: true, star_to_many_field_link: true ,star_to_many_field_unlink: true, star_to_many_field_link_list: true}.freeze
8
12
 
9
13
  attr_reader :builtin, :user
10
14
  def initialize
@@ -30,49 +34,49 @@ module Engine2
30
34
  SCHEMES.instance_eval do
31
35
 
32
36
  define_scheme :view do |name = :view|
33
- define_action name, ViewMeta
37
+ define_node name, ViewAction
34
38
  end
35
39
 
36
40
  define_scheme :create do |name = :create|
37
- define_action name, CreateMeta do
38
- define_action :approve, InsertMeta
41
+ define_node name, CreateAction do
42
+ define_node :approve, InsertAction
39
43
  end
40
44
  end
41
45
 
42
46
  define_scheme :modify do |name = :modify|
43
- define_action name, ModifyMeta do
44
- define_action :approve, UpdateMeta
47
+ define_node name, ModifyAction do
48
+ define_node :approve, UpdateAction
45
49
  end
46
50
  end
47
51
 
48
52
  define_scheme :delete do
49
- define_action :confirm_delete, ConfirmMeta do
53
+ define_node :confirm_delete, ConfirmAction do
50
54
  self.*.message LOCS[:delete_question]
51
55
  self.*.panel_title LOCS[:confirm_delete_title]
52
- define_action :delete, DeleteMeta
56
+ define_node :delete, DeleteAction
53
57
  end
54
58
  end
55
59
 
56
60
  define_scheme :bulk_delete do
57
- define_action :confirm_bulk_delete, ConfirmMeta do
61
+ define_node :confirm_bulk_delete, ConfirmAction do
58
62
  self.*.message LOCS[:delete_question]
59
63
  self.*.panel_title LOCS[:confirm_bulk_delete_title]
60
- define_action :bulk_delete, BulkDeleteMeta
64
+ define_node :bulk_delete, BulkDeleteAction
61
65
  end
62
66
  end
63
67
 
64
68
  define_scheme :default do |name, model, options|
65
69
  options ||= Schemes::CRUD
66
- define_action name, ListMeta, model: model do
70
+ define_node name, ListAction, model: model do
67
71
  options.each{|k, v| run_scheme(k) if v}
68
72
 
69
- define_action_bundle :form, :create, :modify if options[:create] && options[:modify]
70
- # define_action_bundle :decode, :decode_entry, :decode_list, :typahead
73
+ define_node_bundle :form, :create, :modify if options[:create] && options[:modify]
74
+ # define_node_bundle :decode, :decode_entry, :decode_list, :typahead
71
75
 
72
76
  # if ?
73
- define_action :decode_entry, DecodeEntryMeta
74
- define_action :decode_list, DecodeListMeta
75
- define_action :typeahead, TypeAheadMeta
77
+ define_node :decode_entry, DecodeEntryAction
78
+ define_node :decode_list, DecodeListAction
79
+ define_node :typeahead, TypeAheadAction
76
80
  end
77
81
  end
78
82
 
@@ -80,7 +84,7 @@ module Engine2
80
84
  # Many to One
81
85
  #
82
86
  define_scheme :many_to_one do
83
- define_action :list, ManyToOneListMeta do
87
+ define_node :list, ManyToOneListAction do
84
88
  run_scheme :view
85
89
  end
86
90
  end
@@ -89,18 +93,18 @@ module Engine2
89
93
  assoc = model.association_reflections[assoc_name]
90
94
  ::Kernel::raise E2Error.new("Association '#{assoc_name}' not found for model '#{model}'") unless assoc
91
95
 
92
- if self.*.assets[:model] != model && self.*.is_a?(ListMeta)
96
+ if self.*.assets[:model] != model && self.*.is_a?(ListAction)
93
97
  # verify relations ?
94
98
  mdl = assoc[:model]
95
99
  info = mdl.type_info[assoc[:keys].first]
96
100
  options = info[:decode][:search]
97
101
  end
98
102
 
99
- define_action :"#{assoc_name}!" do
103
+ define_node :"#{assoc_name}!" do
100
104
  # iterate over options like in :default ?
101
- define_action :list, DecodeListMeta, assoc: assoc if options[:list]
102
- define_action :typeahead, TypeAheadMeta, assoc: assoc if options[:typeahead]
103
- define_action :decode, DecodeEntryMeta, assoc: assoc do
105
+ define_node :list, DecodeListAction, assoc: assoc if options[:list]
106
+ define_node :typeahead, TypeAheadAction, assoc: assoc if options[:typeahead]
107
+ define_node :decode, DecodeEntryAction, assoc: assoc do
104
108
  run_scheme :many_to_one
105
109
  end if options[:scaffold]
106
110
  end
@@ -110,34 +114,34 @@ module Engine2
110
114
  # * to Many
111
115
  #
112
116
  define_scheme :star_to_many_unlink do
113
- define_action :confirm_unlink, ConfirmMeta do
117
+ define_node :confirm_unlink, ConfirmAction do
114
118
  self.*.message LOCS[:unlink_question]
115
119
  self.*.panel_title LOCS[:confirm_unlink_title]
116
- define_action :unlink, StarToManyUnlinkMeta
120
+ define_node :unlink, StarToManyUnlinkAction
117
121
  end
118
122
  end
119
123
 
120
124
  define_scheme :star_to_many_bulk_unlink do
121
- define_action :confirm_bulk_unlink, ConfirmMeta do
125
+ define_node :confirm_bulk_unlink, ConfirmAction do
122
126
  self.*.message LOCS[:unlink_question]
123
127
  self.*.panel_title LOCS[:confirm_bulk_unlink_title]
124
- define_action :bulk_unlink, StarToManyBulkUnlinkMeta
128
+ define_node :bulk_unlink, StarToManyBulkUnlinkAction
125
129
  end
126
130
  end
127
131
 
128
132
  define_scheme :star_to_many_link do
129
- define_action :link_list, StarToManyLinkListMeta do
133
+ define_node :link_list, StarToManyLinkListAction do
130
134
  run_scheme :view
131
- define_action :link, StarToManyLinkMeta
135
+ define_node :link, StarToManyLinkAction
132
136
  end
133
137
  end
134
138
 
135
139
  define_scheme :star_to_many do |act, assoc, model|
136
140
  options = assoc[:options] || Schemes::LINK
137
- define_action act, StarToManyListMeta, model: model, assoc: assoc do
141
+ define_node act, StarToManyListAction, model: model, assoc: assoc do
138
142
  options.each{|k, v| run_scheme(k) if v}
139
143
 
140
- define_action_bundle :form, :create, :modify if options[:create] && options[:modify]
144
+ define_node_bundle :form, :create, :modify if options[:create] && options[:modify]
141
145
  end
142
146
  end
143
147
 
@@ -145,11 +149,11 @@ module Engine2
145
149
  # arbitrary files per form
146
150
  #
147
151
  define_scheme :file_store do |model, field|
148
- define_action :"#{field}_file_store!", FileStoreMeta do
152
+ define_node :"#{field}_file_store!", FileStoreAction do
149
153
  self.*.model = model
150
154
  self.*.field = field
151
- define_action :download, DownloadFileStoreMeta
152
- define_action :upload, UploadFileStoreMeta
155
+ define_node :download, DownloadFileStoreAction
156
+ define_node :upload, UploadFileStoreAction
153
157
  end
154
158
  end
155
159
 
@@ -157,11 +161,11 @@ module Engine2
157
161
  # blob field in source table
158
162
  #
159
163
  define_scheme :blob_store do |model, field|
160
- define_action :"#{field}_blob_store!", BlobStoreMeta do
164
+ define_node :"#{field}_blob_store!", BlobStoreAction do
161
165
  self.*.model = model
162
166
  self.*.field = field # model.type_info[field][:field]
163
- define_action :download, DownloadBlobStoreMeta
164
- define_action :upload, UploadBlobStoreMeta
167
+ define_node :download, DownloadBlobStoreAction
168
+ define_node :upload, UploadBlobStoreAction
165
169
  end
166
170
  end
167
171
 
@@ -169,29 +173,76 @@ module Engine2
169
173
  # blob field in foreign (one to one) table
170
174
  #
171
175
  define_scheme :foreign_blob_store do |model, field|
172
- define_action :"#{field}_blob_store!", ForeignBlobStoreMeta do
176
+ define_node :"#{field}_blob_store!", ForeignBlobStoreAction do
173
177
  self.*.model = model
174
178
  self.*.field = field # model.type_info[field][:field]
175
- define_action :download, DownloadForeignBlobStoreMeta
176
- define_action :upload, UploadBlobStoreMeta
179
+ define_node :download, DownloadForeignBlobStoreAction
180
+ define_node :upload, UploadBlobStoreAction
177
181
  end
178
182
  end
179
183
 
180
- define_scheme :star_to_many_field do |assoc, field|
181
- define_action :"#{field}!", StarToManyFieldMeta, assoc: assoc do
182
- run_scheme :view
183
- define_action :confirm_unlink, ConfirmMeta do
184
- self.*.message LOCS[:unlink_question]
185
- define_action :unlink, StarToManyFieldUnlinkMeta
184
+ define_scheme :star_to_many_field_view do
185
+ define_node :view, ViewAction do
186
+ action{@action_type = :star_to_many_field_view}
187
+ end
188
+ end
189
+
190
+ define_scheme :star_to_many_field_link do
191
+ define_node :link, StarToManyLinkAction
192
+ end
193
+
194
+ define_scheme :star_to_many_field_unlink do
195
+ define_node :confirm_unlink, ConfirmAction do
196
+ self.*.message LOCS[:unlink_question]
197
+ define_node :unlink, StarToManyUnlinkAction do
198
+ action{@action_type = :star_to_many_field_unlink}
186
199
  end
187
- define_action :link_list, StarToManyFieldLinkListMeta do
188
- run_scheme :view
200
+ end
201
+ end
202
+
203
+ define_scheme :star_to_many_field_link_list do
204
+ define_node :link_list, StarToManyFieldLinkListAction do
205
+ run_scheme :view
206
+ end
207
+ end
208
+
209
+ #
210
+ # *_to_many_field
211
+ #
212
+ define_scheme :star_to_many_field do |assoc, field|
213
+ schemes = assoc[:model].type_info.fetch(field)[:schemes]
214
+ define_node :"#{field}!", StarToManyFieldAction, assoc: assoc do
215
+ schemes.each{|k, v| run_scheme(k) if v}
216
+
217
+ define_node_bundle :form, :star_to_many_field_create, :star_to_many_field_modify if schemes[:star_to_many_field_create] && schemes[:star_to_many_field_modify]
218
+ end
219
+ end
220
+
221
+ define_scheme :star_to_many_field_create do
222
+ define_node :create, CreateAction do
223
+ define_node :approve, StarToManyFieldInsertAction
224
+ end
225
+ end
226
+
227
+ define_scheme :star_to_many_field_modify do
228
+ define_node :modify, ModifyAction do
229
+ action{@action_type = :star_to_many_field_modify}
230
+ define_node :approve, StarToManyFieldUpdateAction
231
+ end
232
+ end
233
+
234
+ define_scheme :star_to_many_field_delete do
235
+ define_node :confirm_delete, ConfirmAction do
236
+ self.*.message LOCS[:delete_question]
237
+ self.*.panel_title LOCS[:confirm_delete_title]
238
+ define_node :delete, DeleteAction do
239
+ action{@action_type = :star_to_many_field_delete}
189
240
  end
190
241
  end
191
242
  end
192
243
 
193
244
  define_scheme :array do |name, model|
194
- define_action name, ArrayListMeta, model: model do
245
+ define_node name, ArrayListAction, model: model do
195
246
  end
196
247
  end
197
248
  end
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Engine2
4
5
  BS_ANIMATION ||= "am-flip-x" # "am-fade"
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Engine2
4
5
 
@@ -215,8 +216,8 @@ module Engine2
215
216
  info[:multiple] = multiple
216
217
  info[:table] = table
217
218
  info[:store] = store
218
- info[:store][:upload] ||= "#{Engine2::app}/store/upload"
219
- info[:store][:files] ||= "#{Engine2::app}/store/files"
219
+ info[:store][:upload] ||= "#{Engine2::SETTINGS[:path]}/store/upload"
220
+ info[:store][:files] ||= "#{Engine2::SETTINGS[:path]}/store/files"
220
221
  info[:transaction] = true
221
222
  end
222
223
  end
@@ -294,14 +295,15 @@ module Engine2
294
295
  end
295
296
  end
296
297
 
297
- def star_to_many_field assoc_name
298
+ def star_to_many_field assoc_name, schemes = Schemes::STMF_LINK
298
299
  assoc = @model.one_to_many_associations[assoc_name] || @model.many_to_many_associations[assoc_name]
299
300
  raise E2Error.new("'*_to_many' association '#{assoc_name}' not found for model '#{@model}'") unless assoc
300
301
  define_field assoc_name, :string do |info|
301
302
  info[:type] = :star_to_many_field
303
+ info[:schemes] = schemes
302
304
  info[:keys] = assoc[:keys]
303
305
  info[:assoc_name] = assoc_name
304
- info[:transaction] = true # ?
306
+ info[:transaction] = true
305
307
  end
306
308
  end
307
309
 
@@ -1,7 +1,8 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Engine2
4
- MAJOR, MINOR, TINY = [1, 0, 4]
5
+ MAJOR, MINOR, TINY = [1, 0, 5]
5
6
  VERSION = [MAJOR, MINOR, TINY].join('.').freeze
6
7
  def self.version
7
8
  VERSION
@@ -3,31 +3,33 @@
3
3
  "description": "engine2",
4
4
  "version": "1.0.0",
5
5
  "scripts": {
6
- "postinstall": "bower install",
6
+ "postinstall": "bower install --allow-root",
7
7
  "dev": "brunch w",
8
8
  "build": "brunch build --production"
9
9
  },
10
10
  "dependencies": {
11
- "angular": "^1.5.8",
12
- "angular-animate": "^1.5.8",
13
- "angular-cookies": "^1.5.8",
14
- "angular-local-storage": "0.1.5",
11
+ "@uirouter/angularjs": "^1.0.5",
12
+ "angular": "^1.6.0",
13
+ "angular-animate": "^1.6.0",
14
+ "angular-cookies": "^1.6.0",
15
+ "angular-load": "^0.4.0",
16
+ "angular-local-storage": "^0.5.0",
15
17
  "angular-motion": "^0.4.0",
16
- "angular-route": "^1.5.8",
17
- "angular-sanitize": "^1.5.8",
18
- "angular-ui-tree": "2.22.1",
18
+ "angular-sanitize": "^1.6.0",
19
+ "angular-ui-tree": "^2.22.0",
19
20
  "bootstrap": "^3.3.0",
20
21
  "bootstrap-additions": "0.3.1",
21
22
  "font-awesome": "~4.7.0",
22
23
  "lodash": "~4.17.0",
23
- "ng-file-upload": "12.2.12"
24
+ "ng-file-upload": "^12.2.0",
25
+ "push.js": "^0.0.13"
24
26
  },
25
27
  "devDependencies": {
26
28
  "auto-reload-brunch": "^2.7.1",
27
29
  "bower": "~1.8.0",
28
30
  "brunch": "^2.9.1",
29
31
  "clean-css-brunch": "^2.0.0",
30
- "coffee-script-brunch": "^2.1.0",
32
+ "coffee-script-brunch": "^2.10.2",
31
33
  "copycat-brunch": "^1.1.0",
32
34
  "css-brunch": "^2.6.1",
33
35
  "javascript-brunch": "^2.0.0",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes