engine2 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +2 -0
- data/Rakefile +138 -0
- data/conf/message.yaml +93 -0
- data/conf/message_pl.yaml +93 -0
- data/engine2.gemspec +34 -0
- data/lib/engine2.rb +34 -0
- data/lib/engine2/action.rb +217 -0
- data/lib/engine2/core.rb +572 -0
- data/lib/engine2/handler.rb +134 -0
- data/lib/engine2/meta.rb +969 -0
- data/lib/engine2/meta/decode_meta.rb +110 -0
- data/lib/engine2/meta/delete_meta.rb +73 -0
- data/lib/engine2/meta/form_meta.rb +144 -0
- data/lib/engine2/meta/infra_meta.rb +292 -0
- data/lib/engine2/meta/link_meta.rb +133 -0
- data/lib/engine2/meta/list_meta.rb +284 -0
- data/lib/engine2/meta/save_meta.rb +63 -0
- data/lib/engine2/meta/view_meta.rb +22 -0
- data/lib/engine2/model.rb +390 -0
- data/lib/engine2/models/Files.rb +38 -0
- data/lib/engine2/models/UserInfo.rb +24 -0
- data/lib/engine2/post_bootstrap.rb +83 -0
- data/lib/engine2/pre_bootstrap.rb +27 -0
- data/lib/engine2/scheme.rb +202 -0
- data/lib/engine2/templates.rb +229 -0
- data/lib/engine2/type_info.rb +342 -0
- data/lib/engine2/version.rb +9 -0
- data/public/assets/javascripts.js +13 -0
- data/public/assets/styles.css +4 -0
- data/public/css/angular-motion.css +1022 -0
- data/public/css/angular-ui-tree.min.css +1 -0
- data/public/css/app.css +196 -0
- data/public/css/bootstrap-additions.css +1560 -0
- data/public/css/bootstrap.min.css +11 -0
- data/public/css/font-awesome.min.css +4 -0
- data/public/favicon.ico +0 -0
- data/public/fonts/FontAwesome.otf +0 -0
- data/public/fonts/fontawesome-webfont.eot +0 -0
- data/public/fonts/fontawesome-webfont.svg +655 -0
- 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 +288 -0
- 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-dark.gif +0 -0
- data/public/img/ajax-loader-light.gif +0 -0
- data/public/img/ajax-loader.gif +0 -0
- data/public/js/angular-animate.js +4115 -0
- data/public/js/angular-cookies.js +322 -0
- data/public/js/angular-local-storage.js +455 -0
- data/public/js/angular-route.js +1022 -0
- data/public/js/angular-sanitize.js +717 -0
- data/public/js/angular-strap.js +4339 -0
- data/public/js/angular-strap.tpl.js +43 -0
- data/public/js/angular-ui-tree.js +1569 -0
- data/public/js/angular.js +30714 -0
- data/public/js/i18n/angular-locale_pl.js +115 -0
- data/public/js/lodash.custom.min.js +97 -0
- data/public/js/ng-file-upload-shim.min.js +2 -0
- data/public/js/ng-file-upload.min.js +3 -0
- data/views/app.coffee +3 -0
- data/views/engine2.coffee +557 -0
- data/views/engine2actions.coffee +849 -0
- data/views/engine2templates.coffee +0 -0
- data/views/fields/blob.slim +22 -0
- data/views/fields/bs_select.slim +10 -0
- data/views/fields/bsselect_picker.slim +18 -0
- data/views/fields/bsselect_picker_opt.slim +22 -0
- data/views/fields/checkbox.slim +11 -0
- data/views/fields/checkbox_buttons.slim +6 -0
- data/views/fields/checkbox_buttons_opt.slim +8 -0
- data/views/fields/currency.slim +10 -0
- data/views/fields/date.slim +21 -0
- data/views/fields/date_range.slim +44 -0
- data/views/fields/date_time.slim +42 -0
- data/views/fields/datetime.slim +42 -0
- data/views/fields/decimal.slim +11 -0
- data/views/fields/decimal_date.slim +22 -0
- data/views/fields/decimal_time.slim +26 -0
- data/views/fields/email.slim +13 -0
- data/views/fields/file_store.slim +61 -0
- data/views/fields/input_text.slim +14 -0
- data/views/fields/integer.slim +11 -0
- data/views/fields/list_bsselect.slim +18 -0
- data/views/fields/list_bsselect_opt.slim +21 -0
- data/views/fields/list_buttons.slim +3 -0
- data/views/fields/list_buttons_opt.slim +5 -0
- data/views/fields/list_select.slim +11 -0
- data/views/fields/list_select_opt.slim +15 -0
- data/views/fields/password.slim +14 -0
- data/views/fields/radio_checkbox.slim +10 -0
- data/views/fields/scaffold.slim +2 -0
- data/views/fields/scaffold_picker.slim +20 -0
- data/views/fields/select_picker.slim +12 -0
- data/views/fields/select_picker_opt.slim +16 -0
- data/views/fields/text_area.slim +10 -0
- data/views/fields/time.slim +22 -0
- data/views/fields/typeahead_picker.slim +25 -0
- data/views/index.slim +44 -0
- data/views/infra/index.slim +5 -0
- data/views/infra/inspect.slim +81 -0
- data/views/modals/close_m.slim +15 -0
- data/views/modals/confirm_m.slim +19 -0
- data/views/modals/empty_m.slim +12 -0
- data/views/modals/menu_m.slim +13 -0
- data/views/modals/yes_no_m.slim +19 -0
- data/views/panels/menu_m.slim +9 -0
- data/views/scaffold/confirm.slim +3 -0
- data/views/scaffold/fields.slim +10 -0
- data/views/scaffold/form.slim +11 -0
- data/views/scaffold/list.slim +42 -0
- data/views/scaffold/message.slim +3 -0
- data/views/scaffold/search.slim +20 -0
- data/views/scaffold/view.slim +18 -0
- data/views/search_fields/bsmselect_picker.slim +25 -0
- data/views/search_fields/bsselect_picker.slim +24 -0
- data/views/search_fields/checkbox.slim +11 -0
- data/views/search_fields/checkbox2.slim +14 -0
- data/views/search_fields/checkbox_buttons.slim +10 -0
- data/views/search_fields/date_range.slim +46 -0
- data/views/search_fields/decimal_date_range.slim +47 -0
- data/views/search_fields/input_text.slim +18 -0
- data/views/search_fields/integer.slim +18 -0
- data/views/search_fields/integer_range.slim +27 -0
- data/views/search_fields/list_bsmselect.slim +24 -0
- data/views/search_fields/list_bsselect.slim +22 -0
- data/views/search_fields/list_buttons.slim +8 -0
- data/views/search_fields/list_select.slim +17 -0
- data/views/search_fields/scaffold_picker.slim +19 -0
- data/views/search_fields/select_picker.slim +17 -0
- data/views/search_fields/typeahead_picker.slim +25 -0
- metadata +327 -0
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
e2-action action="[f + '_blob_store!']"
|
2
|
+
.col-lg-11
|
3
|
+
div ng-init="info = action.meta.info[f]"
|
4
|
+
input [
|
5
|
+
type="hidden"
|
6
|
+
ng-model="action.record[f]"
|
7
|
+
]
|
8
|
+
|
9
|
+
div
|
10
|
+
.progress.progress-striped
|
11
|
+
.progress-bar.progress-bar-success ng-style="{'width': action.progress + '%'}"
|
12
|
+
|
13
|
+
div
|
14
|
+
input [
|
15
|
+
type="file"
|
16
|
+
ng-disabled="info.disabled"
|
17
|
+
ng-file-select="action.select($files)"
|
18
|
+
]
|
19
|
+
|
20
|
+
div ng-if="action.blob_length"
|
21
|
+
a ng-href="{{action.action_info().action_resource}}/download?id={{action.record_id}}"
|
22
|
+
| {{action.file_name}}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.col-lg-7.col-md-12.col-sm-12
|
2
|
+
select [
|
3
|
+
ng-model="action.record[f]"
|
4
|
+
bs-options="v.id as v.value for v in values"
|
5
|
+
select-resource="action.meta.info[f].render.resource"
|
6
|
+
bs-select=""
|
7
|
+
ng-disabled="action.meta.info[f].disabled"
|
8
|
+
class="form-control input-sm"
|
9
|
+
e2-field=""
|
10
|
+
]
|
@@ -0,0 +1,18 @@
|
|
1
|
+
e2-action action="[action.meta.info[f].assoc, 'list']"
|
2
|
+
.col-lg-7.col-md-8.col-sm-12
|
3
|
+
button.btn.btn-default.btn-sm [
|
4
|
+
type="button"
|
5
|
+
ng-init="info = action.meta.info[f]"
|
6
|
+
ng-model="action.selected"
|
7
|
+
bs-options="v.id as v.value for v in action.values"
|
8
|
+
ng-change="action.change()"
|
9
|
+
ng-disabled="info.disabled"
|
10
|
+
ng-class="info.render.class"
|
11
|
+
class="form-control input-sm"
|
12
|
+
|
13
|
+
data-animation="{{::info.render.animation}}"
|
14
|
+
data-placeholder="..."
|
15
|
+
data-html="true"
|
16
|
+
bs-select=""
|
17
|
+
e2-field=""
|
18
|
+
]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
e2-action action="[action.meta.info[f].assoc, 'list']"
|
2
|
+
.col-lg-7.col-md-12.col-sm-12
|
3
|
+
.input-group.input-group-sm
|
4
|
+
button.btn.btn-default.btn-sm [
|
5
|
+
type="button"
|
6
|
+
ng-init="info = action.meta.info[f]"
|
7
|
+
ng-model="action.selected"
|
8
|
+
bs-options="v.id as v.value for v in action.values"
|
9
|
+
ng-change="action.change()"
|
10
|
+
ng-disabled="info.disabled"
|
11
|
+
ng-class="info.render.class"
|
12
|
+
class="form-control"
|
13
|
+
|
14
|
+
data-animation="{{::info.render.animation}}"
|
15
|
+
data-placeholder="..."
|
16
|
+
data-html="true"
|
17
|
+
bs-select=""
|
18
|
+
e2-field=""
|
19
|
+
]
|
20
|
+
.input-group-btn
|
21
|
+
a.btn.btn-default ng-disabled="info.disabled || !action.selected" ng-click="action.reset()"
|
22
|
+
span.glyphicon.glyphicon-remove
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.col-lg-1
|
2
|
+
.checkbox
|
3
|
+
input [
|
4
|
+
ng-init="info = action.meta.info[f]; action.record[f] = action.record[f] || info.render.false_value"
|
5
|
+
type="checkbox"
|
6
|
+
ng-model="action.record[f]"
|
7
|
+
ng-true-value="{{::info.render.true_value}}"
|
8
|
+
ng-false-value="{{::info.render.false_value}}"
|
9
|
+
ng-disabled="info.disabled"
|
10
|
+
e2-field=""
|
11
|
+
]
|
@@ -0,0 +1,6 @@
|
|
1
|
+
.col-lg-12
|
2
|
+
.btn-group.btn-group-sm ng-init="info = action.meta.info[f]; (action.record[f] === undefined) && (action.record[f] = info.render.false_value)" ng-model="action.record[f]" e2-field=""
|
3
|
+
a.btn.btn-default ng-class="action.record[f] === info.render.true_value && 'active'" ng-click="action.record[f] = info.render.true_value" ng-disabled="info.disabled"
|
4
|
+
span.glyphicon.glyphicon-check
|
5
|
+
a.btn.btn-default ng-class="action.record[f] === info.render.false_value && 'active'" ng-click="action.record[f] = info.render.false_value" ng-disabled="info.disabled"
|
6
|
+
span.glyphicon.glyphicon-unchecked
|
@@ -0,0 +1,8 @@
|
|
1
|
+
.col-lg-12
|
2
|
+
.btn-group.btn-group-sm ng-init="info = action.meta.info[f]" ng-model="action.record[f]" e2-field=""
|
3
|
+
a.btn.btn-default ng-class="action.record[f] === info.render.true_value && 'active'" ng-click="action.record[f] = info.render.true_value" ng-disabled="info.disabled"
|
4
|
+
span.glyphicon.glyphicon-check
|
5
|
+
a.btn.btn-default ng-class="action.record[f] === info.render.false_value && 'active'" ng-click="action.record[f] = info.render.false_value" ng-disabled="info.disabled"
|
6
|
+
span.glyphicon.glyphicon-unchecked
|
7
|
+
a.btn.btn-default ng-class="(action.record[f] === null || action.record[f] === undefined) && 'active'" ng-click="action.record[f] = null" ng-disabled="info.disabled"
|
8
|
+
span.glyphicon.glyphicon-off
|
@@ -0,0 +1,21 @@
|
|
1
|
+
.col-lg-3.col-md-3.col-sm-5
|
2
|
+
.input-group.input-group-sm
|
3
|
+
input.btn.btn-default [
|
4
|
+
ng-init="info = action.meta.info[f]"
|
5
|
+
type="text"
|
6
|
+
class="form-control"
|
7
|
+
ng-model="value"
|
8
|
+
ng-disabled="info.disabled"
|
9
|
+
|
10
|
+
data-date-format="{{::info.render.format}}"
|
11
|
+
data-animation="{{::info.render.animation}}"
|
12
|
+
bs-datepicker=""
|
13
|
+
e2-datepicker=""
|
14
|
+
e2-model-format="{{::info.render.model_format}}"
|
15
|
+
data-autoclose="1"
|
16
|
+
|
17
|
+
e2-force-view-value=""
|
18
|
+
e2-field=""
|
19
|
+
]
|
20
|
+
.input-group-btn data-toggle="datepicker"
|
21
|
+
a.btn.btn-default: span.glyphicon.glyphicon-calendar
|
@@ -0,0 +1,44 @@
|
|
1
|
+
.span ng-init="value = value || {}"
|
2
|
+
.col-lg-3.col-md-3.col-sm-5
|
3
|
+
.input-group.input-group-sm
|
4
|
+
input.btn.btn-default [
|
5
|
+
ng-init="info = action.meta.info[f]"
|
6
|
+
type="text"
|
7
|
+
class="form-control"
|
8
|
+
ng-model="value.from"
|
9
|
+
ng-disabled="info.disabled"
|
10
|
+
|
11
|
+
data-date-format="{{::info.render.format}}"
|
12
|
+
data-max-date="{{value.to}}"
|
13
|
+
data-animation="{{::info.render.animation}}"
|
14
|
+
bs-datepicker=""
|
15
|
+
e2-datepicker="from"
|
16
|
+
e2-model-format="{{::info.render.model_format}}"
|
17
|
+
data-autoclose="1"
|
18
|
+
|
19
|
+
e2-field=""
|
20
|
+
]
|
21
|
+
.input-group-btn data-toggle="datepicker"
|
22
|
+
a.btn.btn-default: span.glyphicon.glyphicon-calendar
|
23
|
+
|
24
|
+
.col-lg-3.col-md-3.col-sm-5
|
25
|
+
.input-group.input-group-sm
|
26
|
+
input.btn.btn-default [
|
27
|
+
ng-init="other_date = action.meta.info[f].render.other_date; info = action.meta.info[other_date]"
|
28
|
+
type="text"
|
29
|
+
class="form-control"
|
30
|
+
ng-model="value.to"
|
31
|
+
ng-disabled="info.disabled"
|
32
|
+
|
33
|
+
data-date-format="{{::info.render.format}}"
|
34
|
+
data-min-date="{{value.from}}"
|
35
|
+
data-animation="{{::info.render.animation}}"
|
36
|
+
bs-datepicker=""
|
37
|
+
e2-datepicker="to"
|
38
|
+
e2-model-format="{{::info.render.model_format}}"
|
39
|
+
data-autoclose="1"
|
40
|
+
|
41
|
+
e2-field="{{other_date}}"
|
42
|
+
]
|
43
|
+
.input-group-btn data-toggle="datepicker"
|
44
|
+
a.btn.btn-default: span.glyphicon.glyphicon-calendar
|
@@ -0,0 +1,42 @@
|
|
1
|
+
.span
|
2
|
+
.col-lg-3.col-md-3.col-sm-5
|
3
|
+
.input-group.input-group-sm
|
4
|
+
input.btn.btn-default [
|
5
|
+
ng-init="info = action.meta.info[f]"
|
6
|
+
type="text"
|
7
|
+
class="form-control"
|
8
|
+
ng-model="value"
|
9
|
+
ng-disabled="info.disabled"
|
10
|
+
|
11
|
+
data-date-format="{{::info.render.format}}"
|
12
|
+
data-animation="{{::info.render.animation}}"
|
13
|
+
bs-datepicker=""
|
14
|
+
e2-datepicker=""
|
15
|
+
e2-model-format="{{::info.render.model_format}}"
|
16
|
+
data-autoclose="1"
|
17
|
+
|
18
|
+
e2-field=""
|
19
|
+
]
|
20
|
+
.input-group-btn data-toggle="datepicker"
|
21
|
+
a.btn.btn-default: span.glyphicon.glyphicon-calendar
|
22
|
+
|
23
|
+
.col-lg-3.col-md-3.col-sm-5
|
24
|
+
.input-group.input-group-sm
|
25
|
+
input.btn.btn-default [
|
26
|
+
ng-init="other_time = action.meta.info[f].render.other_time; info = action.meta.info[other_time]"
|
27
|
+
type="text"
|
28
|
+
class="form-control"
|
29
|
+
ng-model="value"
|
30
|
+
ng-disabled="info.disabled"
|
31
|
+
|
32
|
+
data-time-format="{{::info.render.format}}"
|
33
|
+
data-animation="{{::info.render.animation}}"
|
34
|
+
bs-timepicker=""
|
35
|
+
e2-datepicker=""
|
36
|
+
e2-model-format="{{::info.render.model_format}}"
|
37
|
+
data-autoclose="1"
|
38
|
+
|
39
|
+
e2-field="{{other_time}}"
|
40
|
+
]
|
41
|
+
.input-group-btn data-toggle="datepicker"
|
42
|
+
a.btn.btn-default: span.glyphicon.glyphicon-time
|
@@ -0,0 +1,42 @@
|
|
1
|
+
.span ng-init="value = value || {}"
|
2
|
+
.col-lg-3.col-md-3.col-sm-5
|
3
|
+
.input-group.input-group-sm
|
4
|
+
input.btn.btn-default [
|
5
|
+
ng-init="info = action.meta.info[f]"
|
6
|
+
type="text"
|
7
|
+
class="form-control"
|
8
|
+
ng-model="value.value"
|
9
|
+
ng-disabled="info.disabled"
|
10
|
+
|
11
|
+
data-date-format="{{::info.render.date_format}}"
|
12
|
+
data-animation="{{::info.render.animation}}"
|
13
|
+
bs-datepicker=""
|
14
|
+
e2-datepicker="value"
|
15
|
+
e2-model-format="{{:: (info.render.date_model_format + ' ' + info.render.time_model_format)}}"
|
16
|
+
data-autoclose="1"
|
17
|
+
|
18
|
+
e2-force-view-value=""
|
19
|
+
e2-field=""
|
20
|
+
]
|
21
|
+
.input-group-btn
|
22
|
+
a.btn.btn-default: span.glyphicon.glyphicon-calendar data-toggle="datepicker"
|
23
|
+
.col-lg-3.col-md-3.col-sm-5
|
24
|
+
.input-group.input-group-sm
|
25
|
+
input.btn.btn-default [
|
26
|
+
ng-init="info = action.meta.info[f]"
|
27
|
+
type="text"
|
28
|
+
class="form-control"
|
29
|
+
ng-model="value.value"
|
30
|
+
ng-disabled="info.disabled"
|
31
|
+
|
32
|
+
data-time-format="{{::info.render.time_format}}"
|
33
|
+
data-animation="{{::info.render.animation}}"
|
34
|
+
bs-timepicker=""
|
35
|
+
e2-datepicker="value"
|
36
|
+
e2-model-format="{{:: (info.render.date_model_format + ' ' + info.render.time_model_format)}}"
|
37
|
+
data-autoclose="1"
|
38
|
+
|
39
|
+
e2-force-view-value=""
|
40
|
+
]
|
41
|
+
.input-group-btn
|
42
|
+
a.btn.btn-default: span.glyphicon.glyphicon-time data-toggle="datepicker"
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.col-lg-4.col-md-5.col-sm-5
|
2
|
+
.input-group.input-group-sm
|
3
|
+
input [
|
4
|
+
ng-init="info = action.meta.info[f]"
|
5
|
+
type="text"
|
6
|
+
ng-model="action.record[f]"
|
7
|
+
ng-disabled="info.disabled"
|
8
|
+
class="form-control"
|
9
|
+
e2-field=""
|
10
|
+
]
|
11
|
+
span.input-group-addon: span.glyphicon.glyphicon-plus
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.col-lg-3.col-md-3.col-sm-5
|
2
|
+
.input-group.input-group-sm
|
3
|
+
input [
|
4
|
+
ng-init="info = action.meta.info[f]"
|
5
|
+
xe2-decimal-date-picker=""
|
6
|
+
type="text"
|
7
|
+
class="form-control"
|
8
|
+
xng-model="value"
|
9
|
+
ng-model="action.record[f]"
|
10
|
+
ng-disabled="info.disabled"
|
11
|
+
|
12
|
+
bs-datepicker=""
|
13
|
+
data-animation="{{::info.render.animation}}"
|
14
|
+
data-date-format="{{::info.render.format}}"
|
15
|
+
data-model-date-format="yyyyMMdd"
|
16
|
+
data-autoclose="1"
|
17
|
+
data-date-type="string"
|
18
|
+
|
19
|
+
e2-field=""
|
20
|
+
]
|
21
|
+
.input-group-btn data-toggle="datepicker"
|
22
|
+
a.btn.btn-default: span.glyphicon.glyphicon-calendar
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.col-lg-3.col-md-3.col-sm-5
|
2
|
+
.input-group.input-group-sm
|
3
|
+
input [
|
4
|
+
ng-init="info = action.meta.info[f]"
|
5
|
+
xe2-decimal-time-picker="" mode="record"
|
6
|
+
type="text"
|
7
|
+
class="form-control"
|
8
|
+
xng-model="value"
|
9
|
+
ng-model="action.record[f]"
|
10
|
+
ng-disabled="info.disabled"
|
11
|
+
|
12
|
+
bs-timepicker=""
|
13
|
+
data-animation="{{::info.render.animation}}"
|
14
|
+
data-time-format="{{::info.render.format}}"
|
15
|
+
data-model-date-format="HHmmss"
|
16
|
+
data-show-meridian="false"
|
17
|
+
data-show-seconds="true"
|
18
|
+
data-minute-step="1"
|
19
|
+
data-second-step="1"
|
20
|
+
data-autoclose="1"
|
21
|
+
data-time-type="string"
|
22
|
+
|
23
|
+
e2-field=""
|
24
|
+
]
|
25
|
+
.input-group-btn data-toggle="datepicker"
|
26
|
+
a.btn.btn-default: span.glyphicon.glyphicon-time
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/.col-lg-8.col-md-10.col-sm-12
|
2
|
+
div e2-input-cols="{{action.meta.info[f].render.length}}"
|
3
|
+
.input-group.input-group-sm
|
4
|
+
input [
|
5
|
+
ng-init="info = action.meta.info[f]"
|
6
|
+
type="text"
|
7
|
+
ng-model="action.record[f]"
|
8
|
+
maxlength="{{info.render.length}}"
|
9
|
+
class="form-control"
|
10
|
+
ng-disabled="info.disabled"
|
11
|
+
e2-field=""
|
12
|
+
]
|
13
|
+
span.input-group-addon @
|
@@ -0,0 +1,61 @@
|
|
1
|
+
e2-action action="[f + '_file_store!']"
|
2
|
+
.col-lg-11
|
3
|
+
table.table.table-striped.table-condensed.table-hover
|
4
|
+
thead
|
5
|
+
tr
|
6
|
+
th>
|
7
|
+
th Nazwa
|
8
|
+
th Data
|
9
|
+
tbody
|
10
|
+
tr ng-repeat="f in action.files" ng-hide="f.deleted"
|
11
|
+
td
|
12
|
+
.btn-group.btn-group-xs
|
13
|
+
a.btn.btn-default ng-click="action.show_file(f)": span.glyphicon.glyphicon-file
|
14
|
+
a.btn.btn-default ng-click="action.delete_file(f)": span.glyphicon.glyphicon-trash
|
15
|
+
td
|
16
|
+
div ng-if="f.id": a ng-href="{{action.action_info().action_resource}}/download?id={{f.id}}" ng-bind="f.name"
|
17
|
+
div ng-if="!f.id" ng-bind="f.name"
|
18
|
+
|
19
|
+
td ng-bind="f.uploaded"
|
20
|
+
|
21
|
+
div ng-init="info = action.meta.info[f]"
|
22
|
+
input [
|
23
|
+
type="hidden"
|
24
|
+
ng-model="action.record[f]"
|
25
|
+
]
|
26
|
+
|
27
|
+
.progress.progress-striped
|
28
|
+
.progress-bar.progress-bar-success ng-style="{'width': action.progress + '%'}"
|
29
|
+
|
30
|
+
div ng-if="info.render.multiple"
|
31
|
+
input [
|
32
|
+
type="file"
|
33
|
+
ng-disabled="info.disabled"
|
34
|
+
ngf-select="action.select($files)"
|
35
|
+
ngf-multiple="true"
|
36
|
+
]
|
37
|
+
|
38
|
+
div ng-if="!info.render.multiple"
|
39
|
+
input [
|
40
|
+
type="file"
|
41
|
+
ng-disabled="info.disabled"
|
42
|
+
ngf-select="action.select($files)"
|
43
|
+
ngf-multiple="false"
|
44
|
+
]
|
45
|
+
|
46
|
+
|
47
|
+
e2-modal name="confirm_delete" panel-template="confirm_m" title="Usuń"
|
48
|
+
.alert.alert-warning[] Usunąć plik ?
|
49
|
+
|
50
|
+
e2-modal name="show_file" panel-template="close_m" title="Szczegóły"
|
51
|
+
table.table.table-striped.table-condensed.table-hover
|
52
|
+
tbody
|
53
|
+
tr
|
54
|
+
td Nazwa
|
55
|
+
td ng-bind="action.file.name"
|
56
|
+
tr
|
57
|
+
td Mime
|
58
|
+
td ng-bind="action.file.mime"
|
59
|
+
tr
|
60
|
+
td Data
|
61
|
+
td ng-bind="action.file.uploaded"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/.col-lg-8.col-md-9.col-sm-12
|
2
|
+
div e2-input-cols="{{::action.meta.info[f].render.length}}"
|
3
|
+
.input-group.input-group-sm
|
4
|
+
input [
|
5
|
+
ng-init="info = action.meta.info[f]"
|
6
|
+
type="text"
|
7
|
+
ng-model="action.record[f]"
|
8
|
+
maxlength="{{::info.render.length}}"
|
9
|
+
ng-disabled="info.disabled"
|
10
|
+
class="form-control input-sm"
|
11
|
+
ng-class="::info.render.class"
|
12
|
+
e2-field=""
|
13
|
+
]
|
14
|
+
span.input-group-addon: span.glyphicon.glyphicon-pencil
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.col-lg-4.col-md-5.col-sm-5
|
2
|
+
.input-group.input-group-sm
|
3
|
+
input [
|
4
|
+
type="text"
|
5
|
+
ng-model="action.record[f]"
|
6
|
+
ng-disabled="action.meta.info[f].disabled"
|
7
|
+
class="form-control"
|
8
|
+
e2-field=""
|
9
|
+
e2-integer=""
|
10
|
+
]
|
11
|
+
span.input-group-addon: span.glyphicon.glyphicon-cog
|