engine2 1.0.3 → 1.0.4

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.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -117
  3. data/{views → app}/app.coffee +0 -0
  4. data/{public/css → app}/app.css +203 -196
  5. data/{views → app}/engine2.coffee +111 -60
  6. data/{views → app}/engine2actions.coffee +47 -28
  7. data/bower.json +13 -0
  8. data/conf/message.yaml +2 -1
  9. data/conf/message_pl.yaml +2 -1
  10. data/config.coffee +62 -0
  11. data/engine2.gemspec +2 -5
  12. data/lib/engine2.rb +1 -1
  13. data/lib/engine2/action.rb +9 -24
  14. data/lib/engine2/core.rb +9 -8
  15. data/lib/engine2/handler.rb +1 -5
  16. data/lib/engine2/meta.rb +61 -24
  17. data/lib/engine2/meta/array_meta.rb +82 -0
  18. data/lib/engine2/meta/decode_meta.rb +1 -1
  19. data/lib/engine2/meta/infra_meta.rb +21 -26
  20. data/lib/engine2/meta/list_meta.rb +2 -3
  21. data/lib/engine2/model.rb +5 -5
  22. data/lib/engine2/pre_bootstrap.rb +9 -1
  23. data/lib/engine2/scheme.rb +4 -0
  24. data/lib/engine2/type_info.rb +8 -1
  25. data/lib/engine2/version.rb +1 -1
  26. data/package.json +38 -0
  27. data/public/img/ajax-loader.gif +0 -0
  28. data/views/fields/blob.slim +4 -5
  29. data/views/fields/bs_select.slim +2 -2
  30. data/views/fields/bsselect_picker.slim +1 -2
  31. data/views/fields/bsselect_picker_opt.slim +1 -2
  32. data/views/fields/checkbox.slim +1 -1
  33. data/views/fields/checkbox_buttons.slim +1 -1
  34. data/views/fields/checkbox_buttons_opt.slim +1 -1
  35. data/views/fields/currency.slim +2 -2
  36. data/views/fields/date.slim +0 -1
  37. data/views/fields/date_range.slim +0 -1
  38. data/views/fields/date_time.slim +0 -1
  39. data/views/fields/datetime.slim +0 -2
  40. data/views/fields/decimal.slim +0 -1
  41. data/views/fields/decimal_date.slim +0 -1
  42. data/views/fields/decimal_time.slim +0 -1
  43. data/views/fields/email.slim +1 -2
  44. data/views/fields/file_store.slim +1 -1
  45. data/views/fields/input_text.slim +1 -2
  46. data/views/fields/integer.slim +1 -1
  47. data/views/fields/list_bsselect.slim +1 -2
  48. data/views/fields/list_bsselect_opt.slim +2 -3
  49. data/views/fields/list_buttons.slim +1 -1
  50. data/views/fields/list_buttons_opt.slim +1 -1
  51. data/views/fields/list_select.slim +1 -2
  52. data/views/fields/list_select_opt.slim +2 -3
  53. data/views/fields/password.slim +1 -2
  54. data/views/fields/radio_checkbox.slim +1 -1
  55. data/views/fields/scaffold.slim +1 -1
  56. data/views/fields/scaffold_picker.slim +1 -2
  57. data/views/fields/select_picker.slim +1 -2
  58. data/views/fields/select_picker_opt.slim +1 -2
  59. data/views/fields/text_area.slim +0 -1
  60. data/views/fields/time.slim +0 -1
  61. data/views/fields/typeahead_picker.slim +1 -2
  62. data/views/index.slim +4 -8
  63. data/views/scaffold/fields.slim +4 -4
  64. data/views/scaffold/form.slim +1 -7
  65. data/views/scaffold/form_collapse.slim +19 -0
  66. data/views/scaffold/form_tabs.slim +9 -0
  67. data/views/scaffold/list.slim +1 -12
  68. data/views/scaffold/search.slim +2 -9
  69. data/views/scaffold/search_collapse.slim +26 -0
  70. data/views/scaffold/search_tabs.slim +15 -0
  71. data/views/scaffold/view.slim +5 -15
  72. data/views/scaffold/view_collapse.slim +22 -0
  73. data/views/scaffold/view_tabs.slim +11 -0
  74. data/views/search_fields/bsmselect_picker.slim +1 -2
  75. data/views/search_fields/bsselect_picker.slim +1 -2
  76. data/views/search_fields/checkbox.slim +3 -3
  77. data/views/search_fields/checkbox2.slim +5 -5
  78. data/views/search_fields/checkbox_buttons.slim +2 -2
  79. data/views/search_fields/date_range.slim +0 -2
  80. data/views/search_fields/decimal_date_range.slim +5 -5
  81. data/views/search_fields/input_text.slim +2 -2
  82. data/views/search_fields/integer.slim +1 -1
  83. data/views/search_fields/integer_range.slim +2 -2
  84. data/views/search_fields/list_bsmselect.slim +1 -1
  85. data/views/search_fields/list_bsselect.slim +0 -1
  86. data/views/search_fields/list_buttons.slim +2 -2
  87. data/views/search_fields/list_select.slim +1 -2
  88. data/views/search_fields/scaffold_picker.slim +1 -2
  89. data/views/search_fields/select_picker.slim +1 -2
  90. data/views/search_fields/typeahead_picker.slim +1 -2
  91. metadata +29 -103
  92. data/public/assets/javascripts.js +0 -13
  93. data/public/assets/styles.css +0 -4
  94. data/public/css/angular-motion.css +0 -1022
  95. data/public/css/angular-ui-tree.min.css +0 -1
  96. data/public/css/bootstrap-additions.css +0 -1560
  97. data/public/css/bootstrap.min.css +0 -11
  98. data/public/css/font-awesome.min.css +0 -4
  99. data/public/fonts/FontAwesome.otf +0 -0
  100. data/public/fonts/fontawesome-webfont.eot +0 -0
  101. data/public/fonts/fontawesome-webfont.svg +0 -655
  102. data/public/fonts/fontawesome-webfont.ttf +0 -0
  103. data/public/fonts/fontawesome-webfont.woff +0 -0
  104. data/public/fonts/fontawesome-webfont.woff2 +0 -0
  105. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  106. data/public/fonts/glyphicons-halflings-regular.svg +0 -288
  107. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  108. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  109. data/public/fonts/glyphicons-halflings-regular.woff2 +0 -0
  110. data/public/images/file.png +0 -0
  111. data/public/images/folder-closed.png +0 -0
  112. data/public/images/folder.png +0 -0
  113. data/public/images/node-closed-2.png +0 -0
  114. data/public/images/node-closed-light.png +0 -0
  115. data/public/images/node-closed.png +0 -0
  116. data/public/images/node-opened-2.png +0 -0
  117. data/public/images/node-opened-light.png +0 -0
  118. data/public/images/node-opened.png +0 -0
  119. data/public/img/ajax-loader-light.gif +0 -0
  120. data/public/js/angular-animate.js +0 -4147
  121. data/public/js/angular-cookies.js +0 -322
  122. data/public/js/angular-local-storage.js +0 -455
  123. data/public/js/angular-route.js +0 -1025
  124. data/public/js/angular-sanitize.js +0 -717
  125. data/public/js/angular-strap.js +0 -4339
  126. data/public/js/angular-strap.tpl.js +0 -43
  127. data/public/js/angular-ui-tree.js +0 -1569
  128. data/public/js/angular.js +0 -30868
  129. data/public/js/i18n/angular-locale_pl.js +0 -115
  130. data/public/js/lodash.custom.min.js +0 -99
  131. data/public/js/ng-file-upload-shim.min.js +0 -2
  132. data/public/js/ng-file-upload.min.js +0 -3
  133. data/views/engine2templates.coffee +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c81c9b9a3857540db437d0bc5ad18bab4e420a28
4
- data.tar.gz: 543048567b1754a90c6c286c6860181882aecd46
3
+ metadata.gz: 6174073612b4abd1d1a7c2fefbbf071874c2c566
4
+ data.tar.gz: 081dee914669d77bb0a9e32d13c219612aa79d75
5
5
  SHA512:
6
- metadata.gz: fc5faef135f2d9e1115016345988b2eb562e2aa2cec1fc106286fc79d70c43a73da84f580aa37583816af3b2d40e28104341cb0f0fcb9491232e1841bc01088d
7
- data.tar.gz: f6d800d24a201d967d91af602fd46918e73263f9fbd1572c525b80eada313b53967e19f010311e8be87666d06bc6485f721ff4502ef0f04b98540e5f6a1a250c
6
+ metadata.gz: 5631fd58edca95f2c3966ccc240a29b0089c78e7a80b9d3a7e5e239e2a001e0a02f7baa9ed6cdff6a0d98f061022f02d0768282513b457bf6e9fd180c8adf96e
7
+ data.tar.gz: bcc3a19a71996a4c2e8f5f2d511354dc1085de8bdd5eacce667cbe1f24a91587dee04892fb22d51276f7a152a4b21c72681e90f379731ad2f1d546f9c5940294
data/Rakefile CHANGED
@@ -1,60 +1,3 @@
1
- DIR = Dir.pwd
2
- VIEWS = DIR + "/views"
3
- PUBLIC = DIR + "/public"
4
- COFFEE_FILES = ["app", "engine2", "engine2actions"]
5
-
6
- desc "Compile JS"
7
- task :compile_js do
8
- require 'coffee-script'
9
- require 'uglifier'
10
- COFFEE_FILES.each do |cf|
11
- out = CoffeeScript.compile(open("#{VIEWS}/#{cf}.coffee", "r:UTF-8"))
12
- out = Uglifier.new(
13
- # mangle: false
14
- mangle: {except: %w|
15
- $injector
16
- $window
17
- $rootScope
18
- $scope
19
- $compile
20
- $routeProvider
21
- $compileProvider
22
- $locationProvider
23
- $location
24
- $route
25
- $parse
26
- $templateCache
27
- $resource
28
- $attrs
29
- $element
30
- $http
31
- $cookies
32
- $sanitize
33
- $timeout
34
- $httpProvider
35
- $logProvider
36
- $q
37
- $upload
38
- $dropdown
39
- $modal
40
- E2
41
- E2Snippets
42
- E2Actions
43
- E2ActionsX
44
- $e2Scaffold
45
- $e2Modal
46
- localStorageServiceProvider
47
- localStorageService
48
- $dateParser
49
- $dateFormatter
50
- $filter
51
- e2HttpInterceptor
52
- |}
53
- ).compile(out)
54
- open("#{PUBLIC}/js/#{cf}.js", "w") << out
55
- end
56
- end
57
-
58
1
  desc "Compile SLIM"
59
2
  task :compile_slim do
60
3
  require 'slim'
@@ -67,7 +10,7 @@ task :compile_slim do
67
10
  end
68
11
  end
69
12
 
70
- open("#{PUBLIC}/js/engine2templates.js", "wb") << <<-EOF
13
+ open("app/engine2templates.js", "wb") << <<-EOF
71
14
  angular.module('Engine2').run(['$templateCache', function($templateCache) {
72
15
  #{slims.join("\n")}
73
16
  }]);
@@ -75,64 +18,7 @@ EOF
75
18
  end
76
19
 
77
20
  desc "Compile"
78
- task :compile => [:compile_js, :compile_slim] do
79
- end
80
-
81
- desc "Clean"
82
- task :clean do
83
- (COFFEE_FILES + ["engine2templates"]).each do |js|
84
- File.delete "#{PUBLIC}/js/#{js}.js"
85
- end
86
- end
87
-
88
- desc "Assets Js"
89
- task :assets_js do
90
- require 'uglifier'
91
- # jquery-builder.cmd -m -v 2.0.3 -e ajax,deprecated,effects,offset > jquery-custom.min.js
92
- # lodash category=array,collection,object,seq,lang plus=template
93
-
94
- js_files = %w[
95
- ng-file-upload-shim.min.js
96
- angular.js
97
- i18n/angular-locale_pl.js
98
- angular-route.js
99
- angular-sanitize.js
100
- angular-animate.js
101
- angular-cookies.js
102
- angular-strap.js
103
- angular-strap.tpl.js
104
- ng-file-upload.min.js
105
- angular-ui-tree.js
106
- angular-local-storage.js
107
- lodash.custom.min.js
108
- ]
109
-
110
- out = js_files.map{|js| open("#{PUBLIC}/js/#{js}", "r:UTF-8").read}.join("")
111
-
112
- out = Uglifier.new(output: {comments: :none}, mangle: true).compile(out)
113
-
114
- open("#{PUBLIC}/assets/javascripts.js", "wb") << out
115
- end
116
-
117
- desc "Assets Css"
118
- task :assets_css do
119
- require 'yui/compressor'
120
-
121
- css_files = %w[
122
- bootstrap-additions.css
123
- angular-motion.css
124
- angular-ui-tree.min.css
125
- font-awesome.min.css
126
- ]
127
-
128
- out = css_files.map{|css|open("#{PUBLIC}/css/#{css}", "r:UTF-8").read}.join("")
129
-
130
- out = YUI::CssCompressor.new(java: "#{ENV['JAVA_HOME']}/bin/java").compress(out)
131
- open("#{PUBLIC}/assets/styles.css", "wb") << out
132
-
21
+ task :compile => [:compile_slim] do
133
22
  end
134
23
 
135
- desc "Assets"
136
- task :assets => [:assets_js, :assets_css] do
137
- # File.delete *Dir["#{Dir.pwd}/public/assets/*"]
138
- end
24
+ task :default => [:compile]
File without changes
@@ -1,196 +1,203 @@
1
- @media screen and (min-width: 1200px) {
2
- .modal-large .modal-dialog {
3
- width: 900px;
4
- }
5
-
6
- .modal-huge .modal-dialog {
7
- width: 1180px;
8
- }
9
- }
10
-
11
- @media screen and (min-width: 900px) {
12
-
13
- .modal-medium .modal-dialog {
14
- width: 800px;
15
- }
16
-
17
-
18
- .modal-form .modal-dialog {
19
- width: 860px;
20
- }
21
-
22
- /* .modal-large .modal-dialog {
23
- width: 840px;
24
- }
25
- */
26
- }
27
-
28
- .modal-form .modal-dialog {
29
- /* width: 40%;*/
30
- }
31
-
32
- .modal-small .modal-dialog {
33
- /* width: 30%; */
34
- }
35
-
36
- .modal-large .modal-dialog {
37
- /* width: 60%;*/
38
- }
39
-
40
- .modal-huge .modal-dialog {
41
- /* width: 80%;*/
42
- }
43
-
44
- .loader {
45
- visibility: hidden;
46
- }
47
-
48
- tr.tr_hover {
49
- cursor: pointer;
50
- cursor: hand;
51
- }
52
-
53
- .control-label {
54
- font-weight:normal;
55
- }
56
-
57
- /*.modal-backdrop{
58
- position:fixed;
59
- top:0;
60
- right:0;
61
- bottom:0;
62
- left:0;
63
- background-color:#000000;
64
- }*/
65
-
66
- /*.btn-group{
67
- white-space:nowrap;
68
- }
69
-
70
- button {
71
- white-space:normal;
72
- }
73
- */
74
-
75
- /*.modal-backdrop {
76
- from strap docs
77
- z-index: 1040;
78
- bottom: 0px;
79
- }
80
- */
81
-
82
- /*.modal-backdrop{
83
- bottom:0;
84
- }
85
- */
86
- /*.modal-backdrop.fade.in {
87
- opacity: .7
88
- }
89
- */
90
- .popover {
91
- max-width: 600px;
92
- }
93
-
94
- /*.btn-group ul.dropdown-menu li a {
95
- text-decoration: none;
96
- }
97
- */
98
-
99
- /*
100
-
101
- /* tab animations */
102
- /*.tab-pane.am-fade {
103
- -webkit-animation-duration: .6s;
104
- animation-duration: .6s;
105
- -webkit-animation-timing-function: ease;
106
- animation-timing-function: ease;
107
- -webkit-animation-fill-mode: backwards;
108
- animation-fill-mode: backwards;
109
- opacity: 1;
110
- }
111
- .tab-pane.am-fade.active-remove {
112
- display: none!important;
113
- }
114
- .tab-pane.am-fade.active-add {
115
- -webkit-animation-name: fadeIn;
116
- animation-name: fadeIn;
117
- }*/
118
-
119
- /* nested nav bar */
120
- .dropdown-submenu{
121
- position:relative;
122
- }
123
-
124
- .dropdown-submenu > .dropdown-menu
125
- {
126
- top:0;
127
- left:100%;
128
- margin-top:-6px;
129
- margin-left:-1px;
130
- -webkit-border-radius:0 6px 6px 6px;
131
- -moz-border-radius:0 6px 6px 6px;
132
- border-radius:0 6px 6px 6px;
133
- }
134
-
135
- .dropdown-submenu:hover > .dropdown-menu{
136
- display:block;
137
- }
138
-
139
- .dropdown-submenu > a:after{
140
- display:block;
141
- content:" ";
142
- float:right;
143
- width:0;
144
- height:0;
145
- border-color:transparent;
146
- border-style:solid;
147
- border-width:5px 0 5px 5px;
148
- border-left-color:#cccccc;
149
- margin-top:5px;
150
- margin-right:-10px;
151
- }
152
-
153
- .dropdown-submenu:hover > a:after{
154
- border-left-color:#ffffff;
155
- }
156
-
157
- .dropdown-submenu .pull-left{
158
- float:none;
159
- }
160
-
161
- .dropdown-submenu.pull-left > .dropdown-menu{
162
- left:-100%;
163
- margin-left:10px;
164
- -webkit-border-radius:6px 0 6px 6px;
165
- -moz-border-radius:6px 0 6px 6px;
166
- border-radius:6px 0 6px 6px;
167
- }
168
-
169
- /* date/time pickers */
170
- /*.datepicker.dropdown-menu {
171
- width:250px;
172
- height:270px;
173
- }
174
-
175
- .datepicker.dropdown-menu tbody {
176
- height:180px;
177
- }
178
-
179
- .datepicker.dropdown-menu.datepicker-mode-1 tbody button,.datepicker.dropdown-menu.datepicker-mode-2 tbody button {
180
- height:65px;
181
- }
182
-
183
- .datepicker.dropdown-menu button,.timepicker.dropdown-menu button {
184
- outline:0;
185
- border:0;
186
- }
187
-
188
- .datepicker.dropdown-menu tbody button,.timepicker.dropdown-menu tbody button {
189
- padding:6px;
190
- }
191
-
192
- .timepicker.dropdown-menu {
193
- padding:0 4px;
194
- }*/
195
-
196
- a[ng-click] {cursor:pointer;}
1
+ @media screen and (min-height: 1200px) {
2
+ .modal .modal-body {
3
+ max-height: 1000px;
4
+ overflow-y: auto;
5
+ }
6
+ }
7
+
8
+ @media screen and (min-width: 1200px) {
9
+ .modal-large .modal-dialog {
10
+ width: 900px;
11
+ }
12
+
13
+ .modal-huge .modal-dialog {
14
+ width: 1180px;
15
+ }
16
+ }
17
+
18
+ @media screen and (min-width: 900px) {
19
+
20
+ .modal-medium .modal-dialog {
21
+ width: 800px;
22
+ }
23
+
24
+
25
+ .modal-form .modal-dialog {
26
+ width: 860px;
27
+ }
28
+
29
+ /* .modal-large .modal-dialog {
30
+ width: 840px;
31
+ }
32
+ */
33
+ }
34
+
35
+ .modal-form .modal-dialog {
36
+ /* width: 40%;*/
37
+ }
38
+
39
+ .modal-small .modal-dialog {
40
+ /* width: 30%; */
41
+ }
42
+
43
+ .modal-large .modal-dialog {
44
+ /* width: 60%;*/
45
+ }
46
+
47
+ .modal-huge .modal-dialog {
48
+ /* width: 80%;*/
49
+ }
50
+
51
+ .loader {
52
+ visibility: hidden;
53
+ }
54
+
55
+ tr.tr_hover {
56
+ cursor: pointer;
57
+ cursor: hand;
58
+ }
59
+
60
+ .control-label {
61
+ font-weight:normal;
62
+ }
63
+
64
+ /*.modal-backdrop{
65
+ position:fixed;
66
+ top:0;
67
+ right:0;
68
+ bottom:0;
69
+ left:0;
70
+ background-color:#000000;
71
+ }*/
72
+
73
+ /*.btn-group{
74
+ white-space:nowrap;
75
+ }
76
+
77
+ button {
78
+ white-space:normal;
79
+ }
80
+ */
81
+
82
+ /*.modal-backdrop {
83
+ from strap docs
84
+ z-index: 1040;
85
+ bottom: 0px;
86
+ }
87
+ */
88
+
89
+ /*.modal-backdrop{
90
+ bottom:0;
91
+ }
92
+ */
93
+ /*.modal-backdrop.fade.in {
94
+ opacity: .7
95
+ }
96
+ */
97
+ .popover {
98
+ max-width: 600px;
99
+ }
100
+
101
+ /*.btn-group ul.dropdown-menu li a {
102
+ text-decoration: none;
103
+ }
104
+ */
105
+
106
+ /*
107
+
108
+ /* tab animations */
109
+ /*.tab-pane.am-fade {
110
+ -webkit-animation-duration: .6s;
111
+ animation-duration: .6s;
112
+ -webkit-animation-timing-function: ease;
113
+ animation-timing-function: ease;
114
+ -webkit-animation-fill-mode: backwards;
115
+ animation-fill-mode: backwards;
116
+ opacity: 1;
117
+ }
118
+ .tab-pane.am-fade.active-remove {
119
+ display: none!important;
120
+ }
121
+ .tab-pane.am-fade.active-add {
122
+ -webkit-animation-name: fadeIn;
123
+ animation-name: fadeIn;
124
+ }*/
125
+
126
+ /* nested nav bar */
127
+ .dropdown-submenu{
128
+ position:relative;
129
+ }
130
+
131
+ .dropdown-submenu > .dropdown-menu
132
+ {
133
+ top:0;
134
+ left:100%;
135
+ margin-top:-6px;
136
+ margin-left:-1px;
137
+ -webkit-border-radius:0 6px 6px 6px;
138
+ -moz-border-radius:0 6px 6px 6px;
139
+ border-radius:0 6px 6px 6px;
140
+ }
141
+
142
+ .dropdown-submenu:hover > .dropdown-menu{
143
+ display:block;
144
+ }
145
+
146
+ .dropdown-submenu > a:after{
147
+ display:block;
148
+ content:" ";
149
+ float:right;
150
+ width:0;
151
+ height:0;
152
+ border-color:transparent;
153
+ border-style:solid;
154
+ border-width:5px 0 5px 5px;
155
+ border-left-color:#cccccc;
156
+ margin-top:5px;
157
+ margin-right:-10px;
158
+ }
159
+
160
+ .dropdown-submenu:hover > a:after{
161
+ border-left-color:#ffffff;
162
+ }
163
+
164
+ .dropdown-submenu .pull-left{
165
+ float:none;
166
+ }
167
+
168
+ .dropdown-submenu.pull-left > .dropdown-menu{
169
+ left:-100%;
170
+ margin-left:10px;
171
+ -webkit-border-radius:6px 0 6px 6px;
172
+ -moz-border-radius:6px 0 6px 6px;
173
+ border-radius:6px 0 6px 6px;
174
+ }
175
+
176
+ /* date/time pickers */
177
+ /*.datepicker.dropdown-menu {
178
+ width:250px;
179
+ height:270px;
180
+ }
181
+
182
+ .datepicker.dropdown-menu tbody {
183
+ height:180px;
184
+ }
185
+
186
+ .datepicker.dropdown-menu.datepicker-mode-1 tbody button,.datepicker.dropdown-menu.datepicker-mode-2 tbody button {
187
+ height:65px;
188
+ }
189
+
190
+ .datepicker.dropdown-menu button,.timepicker.dropdown-menu button {
191
+ outline:0;
192
+ border:0;
193
+ }
194
+
195
+ .datepicker.dropdown-menu tbody button,.timepicker.dropdown-menu tbody button {
196
+ padding:6px;
197
+ }
198
+
199
+ .timepicker.dropdown-menu {
200
+ padding:0 4px;
201
+ }*/
202
+
203
+ a[ng-click] {cursor:pointer;}