engine2 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -117
- data/{views → app}/app.coffee +0 -0
- data/{public/css → app}/app.css +203 -196
- data/{views → app}/engine2.coffee +111 -60
- data/{views → app}/engine2actions.coffee +47 -28
- data/bower.json +13 -0
- data/conf/message.yaml +2 -1
- data/conf/message_pl.yaml +2 -1
- data/config.coffee +62 -0
- data/engine2.gemspec +2 -5
- data/lib/engine2.rb +1 -1
- data/lib/engine2/action.rb +9 -24
- data/lib/engine2/core.rb +9 -8
- data/lib/engine2/handler.rb +1 -5
- data/lib/engine2/meta.rb +61 -24
- data/lib/engine2/meta/array_meta.rb +82 -0
- data/lib/engine2/meta/decode_meta.rb +1 -1
- data/lib/engine2/meta/infra_meta.rb +21 -26
- data/lib/engine2/meta/list_meta.rb +2 -3
- data/lib/engine2/model.rb +5 -5
- data/lib/engine2/pre_bootstrap.rb +9 -1
- data/lib/engine2/scheme.rb +4 -0
- data/lib/engine2/type_info.rb +8 -1
- data/lib/engine2/version.rb +1 -1
- data/package.json +38 -0
- data/public/img/ajax-loader.gif +0 -0
- data/views/fields/blob.slim +4 -5
- data/views/fields/bs_select.slim +2 -2
- data/views/fields/bsselect_picker.slim +1 -2
- data/views/fields/bsselect_picker_opt.slim +1 -2
- data/views/fields/checkbox.slim +1 -1
- data/views/fields/checkbox_buttons.slim +1 -1
- data/views/fields/checkbox_buttons_opt.slim +1 -1
- data/views/fields/currency.slim +2 -2
- data/views/fields/date.slim +0 -1
- data/views/fields/date_range.slim +0 -1
- data/views/fields/date_time.slim +0 -1
- data/views/fields/datetime.slim +0 -2
- data/views/fields/decimal.slim +0 -1
- data/views/fields/decimal_date.slim +0 -1
- data/views/fields/decimal_time.slim +0 -1
- data/views/fields/email.slim +1 -2
- data/views/fields/file_store.slim +1 -1
- data/views/fields/input_text.slim +1 -2
- data/views/fields/integer.slim +1 -1
- data/views/fields/list_bsselect.slim +1 -2
- data/views/fields/list_bsselect_opt.slim +2 -3
- data/views/fields/list_buttons.slim +1 -1
- data/views/fields/list_buttons_opt.slim +1 -1
- data/views/fields/list_select.slim +1 -2
- data/views/fields/list_select_opt.slim +2 -3
- data/views/fields/password.slim +1 -2
- data/views/fields/radio_checkbox.slim +1 -1
- data/views/fields/scaffold.slim +1 -1
- data/views/fields/scaffold_picker.slim +1 -2
- data/views/fields/select_picker.slim +1 -2
- data/views/fields/select_picker_opt.slim +1 -2
- data/views/fields/text_area.slim +0 -1
- data/views/fields/time.slim +0 -1
- data/views/fields/typeahead_picker.slim +1 -2
- data/views/index.slim +4 -8
- data/views/scaffold/fields.slim +4 -4
- data/views/scaffold/form.slim +1 -7
- data/views/scaffold/form_collapse.slim +19 -0
- data/views/scaffold/form_tabs.slim +9 -0
- data/views/scaffold/list.slim +1 -12
- data/views/scaffold/search.slim +2 -9
- data/views/scaffold/search_collapse.slim +26 -0
- data/views/scaffold/search_tabs.slim +15 -0
- data/views/scaffold/view.slim +5 -15
- data/views/scaffold/view_collapse.slim +22 -0
- data/views/scaffold/view_tabs.slim +11 -0
- data/views/search_fields/bsmselect_picker.slim +1 -2
- data/views/search_fields/bsselect_picker.slim +1 -2
- data/views/search_fields/checkbox.slim +3 -3
- data/views/search_fields/checkbox2.slim +5 -5
- data/views/search_fields/checkbox_buttons.slim +2 -2
- data/views/search_fields/date_range.slim +0 -2
- data/views/search_fields/decimal_date_range.slim +5 -5
- data/views/search_fields/input_text.slim +2 -2
- data/views/search_fields/integer.slim +1 -1
- data/views/search_fields/integer_range.slim +2 -2
- data/views/search_fields/list_bsmselect.slim +1 -1
- data/views/search_fields/list_bsselect.slim +0 -1
- data/views/search_fields/list_buttons.slim +2 -2
- data/views/search_fields/list_select.slim +1 -2
- data/views/search_fields/scaffold_picker.slim +1 -2
- data/views/search_fields/select_picker.slim +1 -2
- data/views/search_fields/typeahead_picker.slim +1 -2
- metadata +29 -103
- data/public/assets/javascripts.js +0 -13
- data/public/assets/styles.css +0 -4
- data/public/css/angular-motion.css +0 -1022
- data/public/css/angular-ui-tree.min.css +0 -1
- data/public/css/bootstrap-additions.css +0 -1560
- data/public/css/bootstrap.min.css +0 -11
- data/public/css/font-awesome.min.css +0 -4
- data/public/fonts/FontAwesome.otf +0 -0
- data/public/fonts/fontawesome-webfont.eot +0 -0
- data/public/fonts/fontawesome-webfont.svg +0 -655
- data/public/fonts/fontawesome-webfont.ttf +0 -0
- data/public/fonts/fontawesome-webfont.woff +0 -0
- data/public/fonts/fontawesome-webfont.woff2 +0 -0
- data/public/fonts/glyphicons-halflings-regular.eot +0 -0
- data/public/fonts/glyphicons-halflings-regular.svg +0 -288
- data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/public/fonts/glyphicons-halflings-regular.woff +0 -0
- data/public/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/public/images/file.png +0 -0
- data/public/images/folder-closed.png +0 -0
- data/public/images/folder.png +0 -0
- data/public/images/node-closed-2.png +0 -0
- data/public/images/node-closed-light.png +0 -0
- data/public/images/node-closed.png +0 -0
- data/public/images/node-opened-2.png +0 -0
- data/public/images/node-opened-light.png +0 -0
- data/public/images/node-opened.png +0 -0
- data/public/img/ajax-loader-light.gif +0 -0
- data/public/js/angular-animate.js +0 -4147
- data/public/js/angular-cookies.js +0 -322
- data/public/js/angular-local-storage.js +0 -455
- data/public/js/angular-route.js +0 -1025
- data/public/js/angular-sanitize.js +0 -717
- data/public/js/angular-strap.js +0 -4339
- data/public/js/angular-strap.tpl.js +0 -43
- data/public/js/angular-ui-tree.js +0 -1569
- data/public/js/angular.js +0 -30868
- data/public/js/i18n/angular-locale_pl.js +0 -115
- data/public/js/lodash.custom.min.js +0 -99
- data/public/js/ng-file-upload-shim.min.js +0 -2
- data/public/js/ng-file-upload.min.js +0 -3
- data/views/engine2templates.coffee +0 -0
data/views/fields/date_time.slim
CHANGED
data/views/fields/datetime.slim
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
.col-lg-3.col-md-3.col-sm-5
|
3
3
|
.input-group.input-group-sm
|
4
4
|
input.btn.btn-default [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
type="text"
|
7
6
|
class="form-control"
|
8
7
|
ng-model="value.value"
|
@@ -23,7 +22,6 @@
|
|
23
22
|
.col-lg-3.col-md-3.col-sm-5
|
24
23
|
.input-group.input-group-sm
|
25
24
|
input.btn.btn-default [
|
26
|
-
ng-init="info = action.meta.info[f]"
|
27
25
|
type="text"
|
28
26
|
class="form-control"
|
29
27
|
ng-model="value.value"
|
data/views/fields/decimal.slim
CHANGED
data/views/fields/email.slim
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
/.col-lg-8.col-md-10.col-sm-12
|
2
|
-
div e2-input-cols="{{
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
.input-group.input-group-sm
|
4
4
|
input [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
type="text"
|
7
6
|
ng-model="action.record[f]"
|
8
7
|
maxlength="{{info.render.length}}"
|
@@ -1,8 +1,7 @@
|
|
1
1
|
/.col-lg-8.col-md-9.col-sm-12
|
2
|
-
div e2-input-cols="{{::
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
.input-group.input-group-sm
|
4
4
|
input [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
type="text"
|
7
6
|
ng-model="action.record[f]"
|
8
7
|
maxlength="{{::info.render.length}}"
|
data/views/fields/integer.slim
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
/.col-lg-7.col-md-8.col-sm-12
|
2
|
-
div e2-input-cols="{{::
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
button.btn.btn-default.btn-sm [
|
4
4
|
type="button"
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
ng-model="action.record[f]"
|
7
6
|
bs-options="v[0] as v[1] for v in info.render.list"
|
8
7
|
data-html="true"
|
@@ -1,9 +1,8 @@
|
|
1
1
|
/.col-lg-7.col-md-8.col-sm-12
|
2
|
-
div e2-input-cols="{{::
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
.input-group.input-group-sm
|
4
4
|
button.btn.btn-default [
|
5
5
|
type="button"
|
6
|
-
ng-init="info = action.meta.info[f]"
|
7
6
|
ng-model="action.record[f]"
|
8
7
|
bs-options="v[0] as v[1] for v in info.render.list"
|
9
8
|
data-html="true"
|
@@ -17,5 +16,5 @@ div e2-input-cols="{{::action.meta.info[f].render.length}}"
|
|
17
16
|
bs-select=""
|
18
17
|
]
|
19
18
|
.input-group-btn
|
20
|
-
a.btn.btn-default ng-disabled="
|
19
|
+
a.btn.btn-default ng-disabled="info.disabled || action.record[f] == null" ng-click="action.record[f] = null"
|
21
20
|
span.glyphicon.glyphicon-remove
|
@@ -1,3 +1,3 @@
|
|
1
1
|
.col-lg-12
|
2
|
-
.btn-group.btn-group-sm ng-
|
2
|
+
.btn-group.btn-group-sm ng-model="action.record[f]" e2-field=""
|
3
3
|
a.btn.btn-default ng-class="action.record[f] == v[0] && 'active'" ng-click="action.record[f] = v[0]" ng-repeat="v in info.render.list" ng-bind-html="v[1]" ng-disabled="info.disabled"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
.col-lg-12
|
2
|
-
.btn-group.btn-group-sm ng-
|
2
|
+
.btn-group.btn-group-sm ng-model="action.record[f]" e2-field=""
|
3
3
|
a.btn.btn-default ng-class="action.record[f] == v[0] && 'active'" ng-click="action.record[f] = v[0]" ng-repeat="v in info.render.list" ng-bind-html="v[1]" ng-disabled="info.disabled"
|
4
4
|
a.btn.btn-default ng-disabled="action.record[f] == null || info.disabled" ng-click="action.record[f] = null"
|
5
5
|
span.glyphicon.glyphicon-remove
|
@@ -1,7 +1,6 @@
|
|
1
1
|
/.col-lg-7.col-md-8.col-sm-12
|
2
|
-
div e2-input-cols="{{::
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
select.btn.btn-default.btn-sm [
|
4
|
-
ng-init="info = action.meta.info[f]"
|
5
4
|
ng-model="action.record[f]"
|
6
5
|
ng-options="v[0] as v[1] for v in info.render.list"
|
7
6
|
ng-disabled="info.disabled"
|
@@ -1,8 +1,7 @@
|
|
1
1
|
/.col-lg-7.col-md-8.col-sm-12
|
2
|
-
div e2-input-cols="{{::
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
.input-group.input-group-sm
|
4
4
|
select.btn.btn-default.btn-sm [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
ng-model="action.record[f]"
|
7
6
|
ng-options="v[0] as v[1] for v in info.render.list"
|
8
7
|
ng-disabled="info.disabled"
|
@@ -11,5 +10,5 @@ div e2-input-cols="{{::action.meta.info[f].render.length}}"
|
|
11
10
|
e2-field=""
|
12
11
|
]
|
13
12
|
.input-group-btn
|
14
|
-
a.btn.btn-default ng-disabled="
|
13
|
+
a.btn.btn-default ng-disabled="info.disabled || action.record[f] == null" ng-click="action.record[f] = null"
|
15
14
|
span.glyphicon.glyphicon-remove
|
data/views/fields/password.slim
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
/.col-lg-8.col-md-9.col-sm-12
|
2
|
-
div e2-input-cols="{{::
|
2
|
+
div e2-input-cols="{{::info.render.length}}"
|
3
3
|
.input-group.input-group-sm
|
4
4
|
input [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
type="password"
|
7
6
|
ng-model="action.record[f]"
|
8
7
|
maxlength="{{::info.render.length}}"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.col-lg-3
|
2
2
|
.btn-group.btn-group-sm [
|
3
|
-
ng-init="
|
3
|
+
ng-init="action.record[f] = action.record[f] || info.render.false_value"
|
4
4
|
ng-model="action.record[f]"
|
5
5
|
bs-buttons-radio=""
|
6
6
|
e2-field=""
|
data/views/fields/scaffold.slim
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
.col-lg-10.col-md-10.col-sm-10
|
2
|
-
e2-action action="
|
2
|
+
e2-action action="info.assoc"
|
@@ -1,8 +1,7 @@
|
|
1
|
-
e2-action action="[
|
1
|
+
e2-action action="[info.assoc, 'decode']"
|
2
2
|
.col-lg-6.col-md-6.col-sm-8
|
3
3
|
.input-group.input-group-sm
|
4
4
|
a.btn.btn-default [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
ng-disabled="info.disabled"
|
7
6
|
class="form-control"
|
8
7
|
ng-click="!info.disabled && action.open()"
|
@@ -1,7 +1,6 @@
|
|
1
|
-
e2-action action="[
|
1
|
+
e2-action action="[info.assoc, 'list']"
|
2
2
|
.col-lg-7.col-md-8.col-sm-12
|
3
3
|
select.btn.btn-default.btn-sm [
|
4
|
-
ng-init="info = action.meta.info[f]"
|
5
4
|
ng-model="action.selected"
|
6
5
|
ng-options="v.id as v.value for v in action.values"
|
7
6
|
ng-change="action.change()"
|
@@ -1,8 +1,7 @@
|
|
1
|
-
e2-action action="[
|
1
|
+
e2-action action="[info.assoc, 'list']"
|
2
2
|
.col-lg-7.col-md-12.col-sm-12
|
3
3
|
.input-group.input-group-sm
|
4
4
|
select.btn.btn-default.btn-sm [
|
5
|
-
ng-init="info = action.meta.info[f]"
|
6
5
|
ng-model="action.selected"
|
7
6
|
ng-options="v.id as v.value for v in action.values"
|
8
7
|
ng-change="action.change()"
|
data/views/fields/text_area.slim
CHANGED
data/views/fields/time.slim
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
e2-action action="[
|
1
|
+
e2-action action="[info.assoc, 'typeahead']"
|
2
2
|
.col-lg-7.col-md-8.col-sm-12
|
3
3
|
.input-group.input-group-sm
|
4
4
|
input.btn.btn-default [
|
5
5
|
type="text"
|
6
|
-
ng-init="info = action.meta.info[f]"
|
7
6
|
ng-model="action.decode"
|
8
7
|
bs-options="v.value for v in action.load($viewValue)"
|
9
8
|
ng-keypress="action.key_pressed = true"
|
data/views/index.slim
CHANGED
@@ -3,15 +3,11 @@ html
|
|
3
3
|
head
|
4
4
|
title App
|
5
5
|
meta http-equiv="x-ua-compatible" content="IE=edge"
|
6
|
-
link rel="stylesheet" href="css/bootstrap.min.css"
|
7
|
-
link rel="stylesheet" href="assets/styles.css"
|
8
|
-
link rel="stylesheet" href="css/app.css"
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
script type="text/javascript" src="
|
13
|
-
script type="text/javascript" src="
|
14
|
-
script type="text/javascript" src="js/app.js"
|
7
|
+
link rel="stylesheet" href="engine2vendor.css"
|
8
|
+
link rel="stylesheet" href="engine2app.css"
|
9
|
+
script type="text/javascript" src="engine2vendor.js"
|
10
|
+
script type="text/javascript" src="engine2.js"
|
15
11
|
|
16
12
|
body ng-app="app"
|
17
13
|
e2-action ng-controller="AppController"
|
data/views/scaffold/fields.slim
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
div
|
2
|
-
.form-group ng-class="action.errors[f] && 'has-error'" ng-repeat="f in form_field_list track by $index" ng-if="!action.meta.info[f].hidden"
|
3
|
-
label.control-label ng-class="
|
2
|
+
.form-group ng-class="action.errors[f] && 'has-error'" ng-repeat="f in form_field_list track by $index" ng-if="!action.meta.info[f].hidden" ng-init="info = action.meta.info[f]"
|
3
|
+
label.control-label ng-class="info.render.label_width || 'col-sm-3 col-md-3 col-lg-3'" for="{{f}}" ng-bind="::info.loc"
|
4
4
|
.col-sm-9.col-md-9.col-lg-9
|
5
5
|
.row
|
6
|
-
e2-include template="
|
6
|
+
e2-include template="info.render.template"
|
7
7
|
.row
|
8
8
|
.col-sm-12
|
9
9
|
small.text-danger ng-repeat="e in action.errors[f] track by $index" ng-bind="e"
|
10
|
-
div ng-if="
|
10
|
+
div ng-if="info.hr": hr
|
data/views/scaffold/form.slim
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
form.form-horizontal role="form"
|
2
|
-
span ng-
|
2
|
+
span ng-init="form_field_list = action.meta.fields" ng-if="true"
|
3
3
|
e2-include template="action.meta.panel.field_template"
|
4
|
-
span ng-if="::action.meta.tabs"
|
5
|
-
div bs-tabs="" bs-active-pane="action.activeTab" ng-init="action.activeTab = 0"
|
6
|
-
div ng-repeat="t in ::action.meta.tabs track by $index" title="{{::t.loc}}" bs-pane=""
|
7
|
-
div ng-if="!t.lazy || $index == action.activeTab" ng-init="form_field_list = t.fields"
|
8
|
-
br
|
9
|
-
e2-include template="action.meta.panel.field_template"
|
10
4
|
|
11
5
|
span ng-if="action.alert": .alert.alert-danger[] {{action.alert}}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
form.form-horizontal role="form"
|
2
|
+
span ng-if="true"
|
3
|
+
div.panel-group[
|
4
|
+
bs-collapse=""
|
5
|
+
role="tablist"
|
6
|
+
data-allow-multiple="true"
|
7
|
+
aria-multiselectable="true"
|
8
|
+
ng-init="action.activeTab = [0]"
|
9
|
+
ng-model="action.activeTab"
|
10
|
+
]
|
11
|
+
div.panel.panel-default ng-repeat="t in ::action.meta.tabs track by $index"
|
12
|
+
div.panel-heading role="tab"
|
13
|
+
h4.panel-title
|
14
|
+
a bs-collapse-toggle="" ng-click="" ng-bind="::t.loc"
|
15
|
+
div.panel-collapse role="tabpanel" bs-collapse-target="" ng-init="form_field_list = t.fields"
|
16
|
+
div.panel-body
|
17
|
+
e2-include template="action.meta.panel.field_template"
|
18
|
+
|
19
|
+
span ng-if="action.alert": .alert.alert-danger[] {{action.alert}}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
form.form-horizontal role="form"
|
2
|
+
span ng-if="true"
|
3
|
+
div bs-tabs="" bs-active-pane="action.activeTab" ng-init="action.activeTab = 0"
|
4
|
+
div ng-repeat="t in ::action.meta.tabs track by $index" title="{{::t.loc}}" bs-pane=""
|
5
|
+
div ng-if="!t.lazy || $index == action.activeTab" ng-init="form_field_list = t.fields"
|
6
|
+
br
|
7
|
+
e2-include template="action.meta.panel.field_template"
|
8
|
+
|
9
|
+
span ng-if="action.alert": .alert.alert-danger[] {{action.alert}}
|
data/views/scaffold/list.slim
CHANGED
@@ -2,18 +2,7 @@ div
|
|
2
2
|
e2-include template="action.meta.panel.search_template" ng-if="action.ui_state.search_active"
|
3
3
|
.panel.panel-default
|
4
4
|
.panel-body
|
5
|
-
table.table.table-striped.table-condensed.table-hover
|
6
|
-
thead
|
7
|
-
tr
|
8
|
-
th
|
9
|
-
div e2-button-set="action.meta.menus.menu"
|
10
|
-
th ng-repeat="f in action.meta.fields"
|
11
|
-
a> ng-if="action.meta.info[f].sort" ng-click="action.order(f)": strong ng-bind="::action.meta.info[f].loc"
|
12
|
-
span ng-show="action.ui.order == f"
|
13
|
-
span.glyphicon ng-class="action.ui.asc ? 'glyphicon-chevron-up' : 'glyphicon-chevron-down'"
|
14
|
-
span ng-if="!action.meta.info[f].sort" ng-bind="::action.meta.info[f].loc"
|
15
|
-
tbody e2-table-body=""
|
16
|
-
|
5
|
+
table.table.table-striped.table-condensed.table-hover e2-table-body=""
|
17
6
|
span ng-if="action.ui.pagination_active"
|
18
7
|
ul.pagination.pagination-md
|
19
8
|
li ng-class="!action.prev_active() && 'disabled'"
|
data/views/scaffold/search.slim
CHANGED
@@ -1,15 +1,8 @@
|
|
1
1
|
.panel.panel-default
|
2
2
|
.panel-body
|
3
3
|
form
|
4
|
-
span ng-if="
|
5
|
-
|
6
|
-
e2-include template="action.meta.info[f].render.template"
|
7
|
-
span ng-if="::action.meta.tabs"
|
8
|
-
div bs-tabs="" ng-init="action.ui_state.search_tab = (action.ui_state.search_tab + 0) <= 0 ? 0 : action.ui_state.search_tab" bs-active-pane="action.ui_state.search_tab"
|
9
|
-
div ng-repeat="t in ::action.meta.tabs track by $index" title="{{::t.loc}}" bs-pane=""
|
10
|
-
br
|
11
|
-
span ng-repeat="f in t.fields track by $index" ng-if="!action.meta.info[f].hidden_search"
|
12
|
-
e2-include template="action.meta.info[f].render.template"
|
4
|
+
span ng-repeat="f in action.meta.search_fields track by $index" ng-if="!action.meta.info[f].hidden_search" ng-init="info = action.meta.info[f]"
|
5
|
+
e2-include template="info.render.template"
|
13
6
|
|
14
7
|
.btn-group.btn-group-sm.pull-right
|
15
8
|
button.btn.btn-default ng-click="action.load_new()"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.panel.panel-default
|
2
|
+
.panel-body
|
3
|
+
form
|
4
|
+
div.panel-group[
|
5
|
+
bs-collapse=""
|
6
|
+
role="tablist"
|
7
|
+
data-allow-multiple="true"
|
8
|
+
aria-multiselectable="true"
|
9
|
+
ng-init="action.ui_state.search_tab = (action.ui_state.search_tab + 0) <= 0 ? [0] : action.ui_state.search_tab"
|
10
|
+
ng-model="action.ui_state.search_tab"
|
11
|
+
]
|
12
|
+
div.panel.panel-default ng-repeat="t in ::action.meta.tabs track by $index"
|
13
|
+
div.panel-heading role="tab"
|
14
|
+
h4.panel-title
|
15
|
+
a bs-collapse-toggle="" ng-click="" ng-bind="::t.loc"
|
16
|
+
div.panel-collapse role="tabpanel" bs-collapse-target="" ng-init="form_field_list = t.fields"
|
17
|
+
div.panel-body
|
18
|
+
span ng-repeat="f in t.fields track by $index" ng-if="!action.meta.info[f].hidden_search" ng-init="info = action.meta.info[f]"
|
19
|
+
e2-include template="info.render.template"
|
20
|
+
|
21
|
+
.btn-group.btn-group-sm.pull-right
|
22
|
+
button.btn.btn-default ng-click="action.load_new()"
|
23
|
+
span ng-bind="::action.meta.loc.search"
|
24
|
+
span.glyphicon.glyphicon-zoom-in<
|
25
|
+
button.btn.btn-default ng-click="action.search_reset()"
|
26
|
+
span.glyphicon.glyphicon-asterisk
|
@@ -0,0 +1,15 @@
|
|
1
|
+
.panel.panel-default
|
2
|
+
.panel-body
|
3
|
+
form
|
4
|
+
div bs-tabs="" ng-init="action.ui_state.search_tab = (action.ui_state.search_tab + 0) <= 0 ? 0 : action.ui_state.search_tab" bs-active-pane="action.ui_state.search_tab"
|
5
|
+
div ng-repeat="t in ::action.meta.tabs track by $index" title="{{::t.loc}}" bs-pane=""
|
6
|
+
br
|
7
|
+
span ng-repeat="f in t.fields track by $index" ng-if="!action.meta.info[f].hidden_search" ng-init="info = action.meta.info[f]"
|
8
|
+
e2-include template="info.render.template"
|
9
|
+
|
10
|
+
.btn-group.btn-group-sm.pull-right
|
11
|
+
button.btn.btn-default ng-click="action.load_new()"
|
12
|
+
span ng-bind="::action.meta.loc.search"
|
13
|
+
span.glyphicon.glyphicon-zoom-in<
|
14
|
+
button.btn.btn-default ng-click="action.search_reset()"
|
15
|
+
span.glyphicon.glyphicon-asterisk
|
data/views/scaffold/view.slim
CHANGED
@@ -1,18 +1,8 @@
|
|
1
1
|
div
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
div ng-bind-html="action.view_cell(action.record, f)"
|
8
|
-
span ng-if="::action.meta.tabs"
|
9
|
-
div bs-tabs="" bs-active-pane="action.activeTab" ng-init="action.activeTab = 0"
|
10
|
-
div ng-repeat="t in ::action.meta.tabs" title="{{::t.loc}}" bs-pane=""
|
11
|
-
br
|
12
|
-
table.table.table-striped.table-condensed.table-hover
|
13
|
-
tr ng-repeat="f in t.fields" ng-hide="::action.meta.info[f].hidden"
|
14
|
-
td ng-bind="::action.meta.info[f].loc"
|
15
|
-
td
|
16
|
-
div ng-bind-html="action.view_cell(action.record, f)"
|
2
|
+
table.table.table-striped.table-condensed.table-hover
|
3
|
+
tr ng-repeat="f in action.meta.fields track by $index" ng-hide="::action.meta.info[f].hidden"
|
4
|
+
td ng-bind="::action.meta.info[f].loc"
|
5
|
+
td
|
6
|
+
div ng-bind-html="action.view_cell(action.record, f)"
|
17
7
|
|
18
8
|
span ng-if="::action.alert": .alert.alert-danger ng-bind="action.alert"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
div
|
2
|
+
div.panel-group[
|
3
|
+
bs-collapse=""
|
4
|
+
role="tablist"
|
5
|
+
data-allow-multiple="true"
|
6
|
+
aria-multiselectable="true"
|
7
|
+
ng-init="action.activeTab = [0]"
|
8
|
+
ng-model="action.activeTab"
|
9
|
+
]
|
10
|
+
div.panel.panel-default ng-repeat="t in ::action.meta.tabs track by $index"
|
11
|
+
div.panel-heading role="tab"
|
12
|
+
h4.panel-title
|
13
|
+
a bs-collapse-toggle="" ng-click="" ng-bind="::t.loc"
|
14
|
+
div.panel-collapse role="tabpanel" bs-collapse-target=""
|
15
|
+
div.panel-body
|
16
|
+
table.table.table-striped.table-condensed.table-hover
|
17
|
+
tr ng-repeat="f in t.fields" ng-hide="::action.meta.info[f].hidden"
|
18
|
+
td ng-bind="::action.meta.info[f].loc"
|
19
|
+
td
|
20
|
+
div ng-bind-html="action.view_cell(action.record, f)"
|
21
|
+
|
22
|
+
span ng-if="action.alert": .alert.alert-danger[] {{action.alert}}
|