engine2 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/conf/message.yaml +2 -1
- data/conf/message_pl.yaml +2 -1
- data/lib/engine2/action.rb +18 -3
- data/lib/engine2/core.rb +10 -0
- data/lib/engine2/model.rb +5 -1
- data/lib/engine2/models/UserInfo.rb +1 -1
- data/lib/engine2/version.rb +1 -1
- data/public/__sinatra__/404.png +0 -0
- data/public/__sinatra__/500.png +0 -0
- data/views/engine2.coffee +1 -1
- data/views/engine2actions.coffee +2 -2
- data/views/infra/inspect.slim +2 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee392cd291e6908be3d724216be1ad7f79ece1e1
|
4
|
+
data.tar.gz: 5a198484207426f1596052de6542fe27730fabf1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0273154703273cbdb46f21a26049dad06ad12924e9e1f10c15fc278b1bbb79f7569e821e7fe1c4db9a93a26d519bc7c716115bf76528bee4c2bf5155cfacccbe
|
7
|
+
data.tar.gz: e53351d9d0af5d5da010f94f28c2a5f73277cc1c92400c56d473d78d595ec3f272db23ef603724440891a2b39f2a2d1c7f7efce7bd048a4946be2bcb56428fa3
|
data/conf/message.yaml
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
:default_time_format: HH:mm:ss
|
7
7
|
:default_time_model_format: HH:mm:ss
|
8
8
|
|
9
|
+
:error: Error
|
9
10
|
:no_entry: Entry doesnt exist
|
10
11
|
:decode_selected: selected
|
11
12
|
|
@@ -38,7 +39,7 @@
|
|
38
39
|
:confirm_bulk_unlink: Detach selected
|
39
40
|
:confirm_bulk_unlink_title: <span class='glyphicon glyphicon-minus'></span> Confirmation
|
40
41
|
:debug_info: Debug info
|
41
|
-
:show_meta:
|
42
|
+
:show_meta: Metainfo
|
42
43
|
# :meta: Meta
|
43
44
|
:view_title: <span class='glyphicon glyphicon-book'></span> Details
|
44
45
|
:create_title: <span class='glyphicon glyphicon-pencil'></span> Create
|
data/conf/message_pl.yaml
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
:default_time_format: HH:mm:ss
|
7
7
|
:default_time_model_format: HH:mm:ss
|
8
8
|
|
9
|
+
:error: Błąd
|
9
10
|
:no_entry: Wpis nie istnieje
|
10
11
|
:decode_selected: wybranych
|
11
12
|
|
@@ -38,7 +39,7 @@
|
|
38
39
|
:confirm_bulk_unlink: Odłącz zaznacznone
|
39
40
|
:confirm_bulk_unlink_title: <span class='glyphicon glyphicon-minus'></span> Potwierdzenie
|
40
41
|
:debug_info: Debug info
|
41
|
-
:show_meta:
|
42
|
+
:show_meta: Metainfo
|
42
43
|
# :meta: Meta
|
43
44
|
:view_title: <span class='glyphicon glyphicon-book'></span> Szczegóły
|
44
45
|
:create_title: <span class='glyphicon glyphicon-pencil'></span> Utwórz
|
data/lib/engine2/action.rb
CHANGED
@@ -4,7 +4,7 @@ module Engine2
|
|
4
4
|
class Action < BasicObject
|
5
5
|
ACCESS_FORBIDDEN ||= ->h{false}
|
6
6
|
attr_reader :parent, :name, :number, :actions, :recheck_access
|
7
|
-
attr_reader :meta_proc
|
7
|
+
attr_reader :meta_proc, :meta_proc_chained
|
8
8
|
|
9
9
|
class << self
|
10
10
|
attr_accessor :count
|
@@ -21,12 +21,21 @@ module Engine2
|
|
21
21
|
|
22
22
|
def * &blk
|
23
23
|
if blk
|
24
|
-
|
25
|
-
|
24
|
+
@meta_proc = if meta_proc = @meta_proc
|
25
|
+
@meta_proc_chained = true
|
26
|
+
::Kernel::lambda do |obj|
|
27
|
+
obj.instance_eval(&meta_proc)
|
28
|
+
obj.instance_eval(&blk)
|
29
|
+
end
|
30
|
+
else
|
31
|
+
blk
|
32
|
+
end
|
26
33
|
end
|
27
34
|
@meta
|
28
35
|
end
|
29
36
|
|
37
|
+
alias :meta :*
|
38
|
+
|
30
39
|
def access! &blk
|
31
40
|
::Kernel.raise E2Error.new("Access for action #{name} already defined") if @access_block
|
32
41
|
@access_block = blk
|
@@ -59,6 +68,12 @@ module Engine2
|
|
59
68
|
action
|
60
69
|
end
|
61
70
|
|
71
|
+
def define_action_meta name, meta_class = DummyMeta, assets = {}, &blk
|
72
|
+
define_action name, meta_class, assets do
|
73
|
+
self.* &blk
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
62
77
|
def undefine_action name
|
63
78
|
::Kernel.raise E2Error.new("No action #{name} defined") unless @actions[name]
|
64
79
|
@actions.delete(name)
|
data/lib/engine2/core.rb
CHANGED
@@ -285,6 +285,7 @@ module E2Model
|
|
285
285
|
|
286
286
|
def ensure_primary_key
|
287
287
|
pk = @model.primary_keys
|
288
|
+
raise Engine2::E2Error.new("No primary key defined for model #{model}") unless pk && pk.all?
|
288
289
|
|
289
290
|
if opts_select = @opts[:select]
|
290
291
|
sel_pk = []
|
@@ -456,15 +457,24 @@ module Engine2
|
|
456
457
|
@boot_blk = blk
|
457
458
|
end
|
458
459
|
|
460
|
+
def self.model_boot &blk
|
461
|
+
@model_boot_blk = blk
|
462
|
+
end
|
463
|
+
|
459
464
|
def self.bootstrap app = APP_LOCATION
|
460
465
|
require 'engine2/pre_bootstrap'
|
461
466
|
t = Time.now
|
462
467
|
Action.count = 0
|
463
468
|
SCHEMES.clear
|
464
469
|
|
470
|
+
Sequel::DATABASES.each do |db|
|
471
|
+
db.models.each{|n, m| Object.send(:remove_const, n) if Object.const_defined?(n)} unless db == E2DB || db == DUMMYDB
|
472
|
+
end
|
473
|
+
|
465
474
|
load "#{app}/boot.rb"
|
466
475
|
|
467
476
|
Sequel::DATABASES.each &:load_schema_cache_from_file
|
477
|
+
@model_boot_blk.() if @model_boot_blk
|
468
478
|
load 'engine2/models/Files.rb'
|
469
479
|
load 'engine2/models/UserInfo.rb'
|
470
480
|
Dir["#{app}/models/*"].each{|m| load m}
|
data/lib/engine2/model.rb
CHANGED
@@ -46,6 +46,8 @@ module Engine2
|
|
46
46
|
|
47
47
|
type_info do
|
48
48
|
schema = @model.db_schema
|
49
|
+
@model.primary_keys.each{|pk| (schema[pk]||={})[:primary_key] = true} if @model.primary_key
|
50
|
+
|
49
51
|
schema.each_pair do |name, db_info|
|
50
52
|
@info[name] = {otype: db_info[:type]}
|
51
53
|
|
@@ -66,7 +68,7 @@ module Engine2
|
|
66
68
|
when :datetime
|
67
69
|
datetime_field name, LOCS[:default_date_format], LOCS[:default_time_format], LOCS[:default_date_model_format], LOCS[:default_time_model_format]
|
68
70
|
when :decimal
|
69
|
-
size, scale = db_info[:column_size], db_info[:scale]
|
71
|
+
size, scale = db_info[:column_size], db_info[:scale].to_i
|
70
72
|
unless size && scale
|
71
73
|
db_info[:db_type] =~ /decimal\((\d+),(\d+)\)/i
|
72
74
|
size, scale = $1.to_i, $2.to_i
|
@@ -75,6 +77,8 @@ module Engine2
|
|
75
77
|
decimal_field name, size, scale
|
76
78
|
when :blob
|
77
79
|
blob_field name, 100000
|
80
|
+
when nil
|
81
|
+
# ignore nil type
|
78
82
|
else
|
79
83
|
p db_info
|
80
84
|
raise E2Error.new("Unknown column type: #{db_info[:type].inspect} for #{name}")
|
data/lib/engine2/version.rb
CHANGED
Binary file
|
Binary file
|
data/views/engine2.coffee
CHANGED
@@ -554,4 +554,4 @@ angular.module('Engine2', ['ngRoute', 'ngSanitize', 'ngAnimate', 'ngCookies', 'm
|
|
554
554
|
link: (scope, elem, attr, controller) ->
|
555
555
|
controller.$parsers.unshift (v) ->
|
556
556
|
vs = v.toString()
|
557
|
-
if vs.match(/^\-?\d+$/) then parseInt(vs) else null
|
557
|
+
if vs.match(/^\-?\d+$/) then parseInt(vs) else (if scope.action.query? then null else vs)
|
data/views/engine2actions.coffee
CHANGED
@@ -26,7 +26,7 @@ angular.module('Engine2')
|
|
26
26
|
constructor: (response, scope, parent, element, action_info) ->
|
27
27
|
@find_action_info = (name, raise = true) ->
|
28
28
|
act = response.actions[name]
|
29
|
-
throw "Undefined action '#{name}' for action #{@action_info().name} (under #{@parent()
|
29
|
+
throw "Undefined action '#{name}' for action #{@action_info().name} (under #{@parent()?.action_info().action_resource})" if raise && !act
|
30
30
|
act
|
31
31
|
|
32
32
|
_.each response.actions, (act, nm) -> act.name = nm
|
@@ -307,7 +307,7 @@ angular.module('Engine2')
|
|
307
307
|
@ui_state = {}
|
308
308
|
@load_state()
|
309
309
|
|
310
|
-
delete @query.order unless _.includes(@meta.fields, @query.order)
|
310
|
+
delete @query.order unless @meta.info[@query.order]?.sort # _.includes(@meta.fields, @query.order)
|
311
311
|
_.each @query.search, ((sv, sn) => delete @query.search[sn] unless _.includes(@meta.search_fields, sn))
|
312
312
|
|
313
313
|
_.each @meta.info, (info, name) =>
|
data/views/infra/inspect.slim
CHANGED
@@ -3,7 +3,7 @@ e2-action action="'inspect'"
|
|
3
3
|
br
|
4
4
|
div title="API" bs-pane=""
|
5
5
|
.row
|
6
|
-
.col-lg-
|
6
|
+
.col-lg-5
|
7
7
|
.panel.panel-default
|
8
8
|
.panel-body
|
9
9
|
script type="text/ng-template" id="nodes_renderer.html"
|
@@ -18,7 +18,7 @@ e2-action action="'inspect'"
|
|
18
18
|
ol ui-tree-nodes="" ng-model="action.tree.actions"
|
19
19
|
li ng-repeat="node in action.tree.actions" ui-tree-node="" data-collapsed="true" ng-include="'nodes_renderer.html'" ng-init="stack = []"
|
20
20
|
|
21
|
-
.col-lg-
|
21
|
+
.col-lg-7
|
22
22
|
.panel.panel-default
|
23
23
|
.panel-body
|
24
24
|
div bs-tabs="" bs-active-pane="actionTab" ng-init="actionTab = 0"
|
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.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lopex
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,6 +184,8 @@ files:
|
|
184
184
|
- lib/engine2/templates.rb
|
185
185
|
- lib/engine2/type_info.rb
|
186
186
|
- lib/engine2/version.rb
|
187
|
+
- public/__sinatra__/404.png
|
188
|
+
- public/__sinatra__/500.png
|
187
189
|
- public/assets/javascripts.js
|
188
190
|
- public/assets/styles.css
|
189
191
|
- public/css/angular-motion.css
|