engine2 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58f23892775f4ae41feaedf7b372844c6524e8088262d51dd7b91e23ccd136c0
4
- data.tar.gz: 3a9350c94bee76c210976c9f06edde30bfb3fec3c0ac56941f40889a193d3f7f
3
+ metadata.gz: c0f307b0744d535f88e5d14eb1dd02369f0e4968514f6588f2de2c36227ebade
4
+ data.tar.gz: 9591533bcbb1f6dd0725ea9a4b9a28962bdc592ddb2f39def774e68542267f4c
5
5
  SHA512:
6
- metadata.gz: 73eb8d90f5701a83888592a80d33874db321756f2b003c3a0359ed2a456d317d38e4c11c307760ed98a708725135b6f03b92d06e2fc2bc2759351ecd8705a939
7
- data.tar.gz: a8000d44c3092297f5a50c29ed4e4007e7f1190aefa34cc528b0e7c5375c3d1a0b7bf17321227a159c3585aee49eaf5d13120de7c884fad66e217f255a87d4ae
6
+ metadata.gz: c0084179549f50cea923512513d748a01bd68df8210b18d13ed941cc2742b8a35dc4bfeb0d39105008f3fb0cb8870354680e380e56131704ce9340f35ba7be1a
7
+ data.tar.gz: c75817e746bf7e47313bbd8b5e61e3b6e04e2ae79e5c3b40cea82947af0386b13346f3eda78b73f924412c26a76565449bbc59b6e4d6157303c7135660929895
@@ -197,6 +197,9 @@ angular.module('Engine2')
197
197
  panel_menu_cancel: ->
198
198
  @panel_close()
199
199
 
200
+ panel_menu_close: ->
201
+ @panel_close()
202
+
200
203
  websocket_connect: ->
201
204
  l = $location
202
205
  ws_meta = @meta.websocket
@@ -244,6 +247,7 @@ angular.module('Engine2')
244
247
  @tree = actions: [name: 'api', number: 0, access: true]
245
248
  @invoke_action('models')
246
249
  @invoke_action('environment')
250
+ @local_storage = localStorageService
247
251
 
248
252
  open: (stack, node, collapsed, expand) ->
249
253
  tree = @tree
@@ -52,6 +52,7 @@
52
52
  :save: Save
53
53
  :approve: Approve
54
54
  :cancel: Cancel
55
+ :close: Close
55
56
 
56
57
  :inspect_modal: Inspect
57
58
 
@@ -52,6 +52,7 @@
52
52
  :save: Zapisz
53
53
  :approve: Zatwierdź
54
54
  :cancel: Anuluj
55
+ :close: Zamknij
55
56
 
56
57
  :inspect_modal: Inspekcja
57
58
 
@@ -10,10 +10,12 @@ exports.config =
10
10
  "angular-motion": ["dist/angular-motion.css"]
11
11
  "angular-ui-tree": ["dist/angular-ui-tree.css"]
12
12
  "fork-awesome": ["css/fork-awesome.css"]
13
+ "ui-select": ["dist/select.css"]
13
14
 
14
15
  modules:
15
16
  definition: 'commonjs'
16
17
  wrapper: false
18
+ nameCleaner: (path) -> path
17
19
 
18
20
  paths:
19
21
  public: 'public'
@@ -42,7 +44,7 @@ exports.config =
42
44
  on: ["ng-annotate-brunch"]
43
45
 
44
46
  uglify:
45
- mangle: true
47
+ mangle: false
46
48
  compress:
47
49
  global_defs:
48
50
  DEBUG: false
@@ -18,14 +18,14 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_dependency "sequel", '~> 5'
20
20
  if defined? JRUBY_VERSION
21
- spec.add_dependency 'jdbc-sqlite3', '~> 3.8'
21
+ spec.add_dependency 'jdbc-sqlite3', '~> 3.0'
22
22
  else
23
23
  spec.add_dependency 'sqlite3', '~> 1.3'
24
24
  end
25
25
  spec.add_dependency "sinatra", '~> 2.0'
26
- spec.add_dependency 'slim', '~> 3.0'
26
+ spec.add_dependency 'slim', '~> 4.0'
27
27
  spec.add_dependency 'faye-websocket', '~> 0.10'
28
28
 
29
29
  spec.add_development_dependency "bundler", "~> 1.11"
30
- spec.add_development_dependency "rake", "~> 11"
30
+ spec.add_development_dependency "rake", "~> 12"
31
31
  end
@@ -18,10 +18,13 @@ module Engine2
18
18
  cls.http_method http_method
19
19
  end
20
20
 
21
- def inherit
22
- Class.new self do
21
+ def inherit &blk
22
+ cls = Class.new self do
23
23
  action_type superclass.action_type
24
24
  end
25
+
26
+ cls.instance_eval &blk if block_given?
27
+ cls
25
28
  end
26
29
  end
27
30
 
@@ -46,9 +49,19 @@ module Engine2
46
49
  raise E2Error.new("Static action required") if dynamic?
47
50
  end
48
51
 
52
+ def check_anonymous_action_class name
53
+ raise E2Error.new("Defining method '#{name}'' for named class '#{self.class}', consider using #inherit") if self.class.name
54
+ end
55
+
56
+ def define_method name, &blk
57
+ check_anonymous_action_class name
58
+ self.class.class_eval{define_method name, &blk}
59
+ end
60
+
49
61
  def define_invoke &blk
50
62
  check_static_action
51
- self.class.class_eval{define_method :invoke, &blk}
63
+ define_method :invoke, &blk
64
+ # self.class.class_eval{define_method :invoke, &blk}
52
65
  end
53
66
 
54
67
  def invoke! handler
@@ -154,6 +167,10 @@ module Engine2
154
167
  def split_keys id
155
168
  Sequel::split_keys(id)
156
169
  end
170
+
171
+ def join_keys id
172
+ Sequel::join_keys(id)
173
+ end
157
174
  end
158
175
 
159
176
  module ActionWebSocketSupport
@@ -901,7 +918,7 @@ module Engine2
901
918
  records = hash[node_name].to_a
902
919
  unless records.empty?
903
920
  action = node.parent[:"#{assoc_name}!"][node_name].approve.*
904
- parent_id = Sequel::join_keys(record.primary_key_values)
921
+ parent_id = join_keys(record.primary_key_values)
905
922
  records.each do |arec|
906
923
  rec = action.allocate_record(handler, arec)
907
924
  action.validate_and_approve(handler, rec, parent_id, false)
@@ -1099,7 +1116,7 @@ module Engine2
1099
1116
  panel_title "#{LOCS[:view_title]} - #{LOCS[assets[:model].table_name]}"
1100
1117
  panel[:backdrop] = true
1101
1118
 
1102
- menu(:panel_menu).option :cancel, icon: "remove"
1119
+ menu(:panel_menu).option :close, icon: "remove"
1103
1120
  node.parent.*.menu(:item_menu).option node.name, icon: "file", button_loc: false
1104
1121
  end
1105
1122
 
@@ -11,7 +11,16 @@ module Engine2
11
11
  entries.select{|e|e[name] == value}
12
12
  },
13
13
  string: lambda{|entries, name, value, type_info, hash|
14
- entries.select{|e|e[name].to_s[value]}
14
+ if type_info[:type] == :list_select
15
+ if type_info[:multiselect]
16
+ entries.select{|e|value.include?(e[name].to_s)}
17
+ else
18
+ entries.select{|e|e[name].to_s == value}
19
+ end
20
+ else
21
+ entries.select{|e|e[name].to_s[value]}
22
+ end
23
+
15
24
  },
16
25
  boolean: lambda{|*args| DefaultFilters[:exact].(*args)},
17
26
  integer: lambda{|entries, name, value, type_info, hash|
@@ -34,6 +43,10 @@ module Engine2
34
43
  []
35
44
  end
36
45
 
46
+ def page_frame handler, entries
47
+ entries
48
+ end
49
+
37
50
  def invoke handler
38
51
  params = handler.params
39
52
  # if params[:initial] || params[:refresh]
@@ -54,7 +67,7 @@ module Engine2
54
67
  entries = list_search(entries, handler, search)
55
68
  end
56
69
 
57
- {entries: entries.drop(page).take(per_page), count: entries.size}
70
+ {entries: page_frame(handler, entries[page, per_page]), count: entries.size}
58
71
  end
59
72
 
60
73
  def list_search entries, handler, search
@@ -22,7 +22,7 @@ module Engine2
22
22
  unsupported_association assoc[:type]
23
23
  end
24
24
 
25
- if assoc[:cascade] || from_assoc == assoc.associated_class.table_name
25
+ if assoc[:delete] == :cascade || from_assoc == assoc.associated_class.table_name
26
26
  ds.delete
27
27
  else
28
28
  raise Sequel::DestroyFailed.new("#{LOCS[:delete_restricted]}: #{name}") unless ds.empty?
@@ -251,7 +251,7 @@ module Engine2
251
251
  panel_title "#{:wrench.icon} Inspect"
252
252
  panel_class "modal-huge"
253
253
  panel[:backdrop] = true
254
- menu(:panel_menu).option :cancel, icon: "remove"
254
+ menu(:panel_menu).option :close, icon: "remove"
255
255
  end
256
256
  end
257
257
 
@@ -164,7 +164,7 @@ module Engine2
164
164
  action_type :star_to_many_list
165
165
  def pre_run
166
166
  super
167
- menu(:panel_menu).option_at 0, :cancel, icon: "remove"
167
+ menu(:panel_menu).option_at 0, :close, icon: "remove"
168
168
  panel_title "#{:list.icon} #{LOCS[assets[:assoc][:name]]}"
169
169
  end
170
170
 
@@ -208,13 +208,14 @@ module Engine2
208
208
 
209
209
  def post_run
210
210
  super
211
+ nd = node.parent.nodes[:decode_entry]
211
212
  request do |h|
212
- if h.initial? && nd = node.parent.nodes[:decode_entry]
213
+ if h.initial?
213
214
  action = nd.*
214
- rec = action.invoke_decode(h, [[h.params[:parent_id]]]).first
215
+ rec = action.invoke_decode(h, [split_keys(h.params[:parent_id])]).first
215
216
  panel_title "#{static.panel[:title]} - #{action.meta[:decode_fields].map{|f|rec[f]}.join(action.meta[:separator])}"
216
217
  end
217
- end
218
+ end if nd
218
219
  end
219
220
  end
220
221
 
@@ -241,7 +242,7 @@ module Engine2
241
242
  def list_context query, handler
242
243
  changes = handler.param_to_json(:changes)
243
244
  model = assets[:model]
244
- unlinked = changes[:unlink].to_a + changes[:delete].to_a + changes[:modify].to_a.map{|m|Sequel::join_keys(model.primary_keys.map{|k|m[k]})}
245
+ unlinked = changes[:unlink].to_a + changes[:delete].to_a + changes[:modify].to_a.map{|m|join_keys(model.primary_keys.map{|k|m[k]})}
245
246
  linked = changes[:link]
246
247
  query = super(query, handler)
247
248
 
@@ -141,6 +141,10 @@ class Symbol
141
141
  def q col
142
142
  col.qualify self
143
143
  end
144
+
145
+ def loc
146
+ Engine2::LOCS[self]
147
+ end
144
148
  end
145
149
 
146
150
  module Faye
@@ -199,6 +203,10 @@ module E2Model
199
203
  module InstanceMethods
200
204
  attr_accessor :skip_save_refresh, :validate_fields
201
205
 
206
+ def key? key
207
+ @values.key? key
208
+ end
209
+
202
210
  def has_primary_key?
203
211
  pk = self.pk
204
212
  pk.is_a?(Array) ? !pk.all?{|k|k.nil?} : !pk.nil?
@@ -36,11 +36,4 @@ module Sequel
36
36
  end
37
37
  end if defined?(JDBC::AS400)
38
38
 
39
- module SchemaCaching
40
- def load_schema_cache(file)
41
- @schemas = Marshal.load(File.read(file, mode: 'rb'))
42
- nil
43
- end
44
- end
45
-
46
39
  end if defined? JRUBY_VERSION
@@ -33,6 +33,14 @@ module Engine2
33
33
  SCHEMES.builtin.clear
34
34
  SCHEMES.instance_eval do
35
35
 
36
+ define_scheme :confirm do |name, action, options|
37
+ define_node :"confirm_#{name}", ConfirmAction do
38
+ self.*.panel_title options[:title]
39
+ self.*.message options[:message]
40
+ define_node name, action
41
+ end
42
+ end
43
+
36
44
  define_scheme :view do |name = :view|
37
45
  define_node name, ViewAction
38
46
  end
@@ -50,19 +58,13 @@ module Engine2
50
58
  end
51
59
 
52
60
  define_scheme :delete do
53
- define_node :confirm_delete, ConfirmAction do
54
- self.*.message LOCS[:delete_question]
55
- self.*.panel_title LOCS[:confirm_delete_title]
56
- define_node :delete, DeleteAction
57
- end
61
+ run_scheme :confirm, :delete, DeleteAction,
62
+ message: LOCS[:delete_question], title: LOCS[:confirm_delete_title]
58
63
  end
59
64
 
60
65
  define_scheme :bulk_delete do
61
- define_node :confirm_bulk_delete, ConfirmAction do
62
- self.*.message LOCS[:delete_question]
63
- self.*.panel_title LOCS[:confirm_bulk_delete_title]
64
- define_node :bulk_delete, BulkDeleteAction
65
- end
66
+ run_scheme :confirm, :bulk_delete, BulkDeleteAction,
67
+ message: LOCS[:delete_question], title: LOCS[:confirm_bulk_delete_title]
66
68
  end
67
69
 
68
70
  define_scheme :default do |name, model, options|
@@ -114,19 +116,13 @@ module Engine2
114
116
  # * to Many
115
117
  #
116
118
  define_scheme :star_to_many_unlink do
117
- define_node :confirm_unlink, ConfirmAction do
118
- self.*.message LOCS[:unlink_question]
119
- self.*.panel_title LOCS[:confirm_unlink_title]
120
- define_node :unlink, StarToManyUnlinkAction
121
- end
119
+ run_scheme :confirm, :unlink, StarToManyUnlinkAction,
120
+ message: LOCS[:unlink_question], title: LOCS[:confirm_unlink_title]
122
121
  end
123
122
 
124
123
  define_scheme :star_to_many_bulk_unlink do
125
- define_node :confirm_bulk_unlink, ConfirmAction do
126
- self.*.message LOCS[:unlink_question]
127
- self.*.panel_title LOCS[:confirm_bulk_unlink_title]
128
- define_node :bulk_unlink, StarToManyBulkUnlinkAction
129
- end
124
+ run_scheme :confirm, :bulk_unlink, StarToManyBulkUnlinkAction,
125
+ message: LOCS[:unlink_question], title: LOCS[:confirm_bulk_unlink_title]
130
126
  end
131
127
 
132
128
  define_scheme :star_to_many_link do
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Engine2
5
- MAJOR, MINOR, TINY = [1, 0, 6]
5
+ MAJOR, MINOR, TINY = [1, 0, 7]
6
6
  VERSION = [MAJOR, MINOR, TINY].join('.').freeze
7
7
  def self.version
8
8
  VERSION
@@ -10,21 +10,21 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@uirouter/angularjs": "^1.0.5",
13
- "angular": "^1.6.0",
14
- "angular-animate": "^1.6.0",
15
- "angular-cookies": "^1.6.0",
13
+ "angular": "^1.7.5",
14
+ "angular-animate": "^1.7.5",
15
+ "angular-cookies": "^1.7.5",
16
16
  "angular-drag-and-drop-lists": "^2.1.0",
17
17
  "angular-load": "^0.5.0",
18
18
  "angular-local-storage": "^0.7.0",
19
19
  "angular-motion": "^0.4.0",
20
- "angular-sanitize": "^1.6.0",
20
+ "angular-sanitize": "^1.7.5",
21
21
  "angular-ui-tree": "^2.22.0",
22
22
  "bootstrap": "^3.3.0",
23
23
  "bootstrap-additions": "0.3.1",
24
- "fork-awesome": "^1.0.1",
25
- "lodash": "~4.17.0",
24
+ "fork-awesome": "^1.1.5",
25
+ "lodash": "^4.17.11",
26
26
  "ng-file-upload": "^12.2.0",
27
- "push.js": "^1.0.1",
27
+ "push.js": "^1.0.8",
28
28
  "ui-select": "^0.19.8"
29
29
  },
30
30
  "devDependencies": {
@@ -89,6 +89,14 @@ e2-action action="'inspect'"
89
89
  .panel-body
90
90
  pre ng-bind="action.environment | json"
91
91
 
92
+ div title="Local storage" bs-pane=""
93
+ .panel.panel-default
94
+ .panel-body
95
+ pre ng-bind="action.local_storage | json"
96
+ pre ng-bind="action.local_storage.keys() | json"
97
+ a.btn.btn-default ng-click="action.local_storage.clearAll()"
98
+ | Clear
99
+
92
100
  div title="Diagnostics" bs-pane=""
93
101
  .panel.panel-default
94
102
  .panel-body
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engine2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - lopex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-25 00:00:00.000000000 Z
11
+ date: 2018-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '4.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '4.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faye-websocket
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '11'
103
+ version: '12'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '11'
110
+ version: '12'
111
111
  description: Tree based routing framework with scaffolding support
112
112
  email:
113
113
  - lopx@gazeta.pl
@@ -248,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
248
248
  version: '0'
249
249
  requirements: []
250
250
  rubyforge_project:
251
- rubygems_version: 3.0.0.beta1
251
+ rubygems_version: 2.7.6
252
252
  signing_key:
253
253
  specification_version: 4
254
254
  summary: Tree based routing framework with scaffolding support