diff --git a/app/Http/Requests/Common/Report.php b/app/Http/Requests/Common/Report.php
index 0609c666c..d8f131fda 100644
--- a/app/Http/Requests/Common/Report.php
+++ b/app/Http/Requests/Common/Report.php
@@ -18,10 +18,6 @@ class Report extends FormRequest
'name' => 'required|string',
'description' => 'required|string',
'class' => 'required|string',
- 'group' => 'required|string',
- 'period' => 'required|string',
- 'basis' => 'required|string',
- 'chart' => 'required|string',
];
}
}
diff --git a/resources/assets/js/components/AkauntingSelect.vue b/resources/assets/js/components/AkauntingSelect.vue
index 00a035229..9417a06c0 100644
--- a/resources/assets/js/components/AkauntingSelect.vue
+++ b/resources/assets/js/components/AkauntingSelect.vue
@@ -281,6 +281,10 @@
+
+
diff --git a/resources/assets/js/plugins/form.js b/resources/assets/js/plugins/form.js
index 2fc637f90..0e04d91d9 100644
--- a/resources/assets/js/plugins/form.js
+++ b/resources/assets/js/plugins/form.js
@@ -42,6 +42,20 @@ export default class Form {
continue;
}
+ if (form_element.getAttribute('data-field')) {
+ if (!this[form_element.getAttribute('data-field')]) {
+ var field = {};
+
+ this[form_element.getAttribute('data-field')] = field;
+ }
+
+ if (!this[form_element.getAttribute('data-field')][name]) {
+ this[form_element.getAttribute('data-field')][name] = '';
+ }
+
+ continue;
+ }
+
if (type == 'radio') {
if (!this[name]) {
this[name] = (form_element.getAttribute('value') ? 1 : 0) || 0;
diff --git a/resources/assets/js/views/common/reports.js b/resources/assets/js/views/common/reports.js
index 5f1b68e36..bcd084f29 100644
--- a/resources/assets/js/views/common/reports.js
+++ b/resources/assets/js/views/common/reports.js
@@ -28,28 +28,54 @@ const app = new Vue({
data: function () {
return {
form: new Form('report'),
- bulk_action: new BulkAction('reports')
+ bulk_action: new BulkAction('reports'),
+ report_fields: '',
}
},
methods: {
onChangeClass(class_name) {
- axios.get(url + '/common/reports/groups', {
+ axios.get(url + '/common/reports/fields', {
params: {
class: class_name
}
})
.then(response => {
- let options = response.data.data;
+ let form = this.form;
+ let html = response.data.html;
- this.$children.forEach(select => {
- if (select.name == 'group') {
- select.selectOptions = options;
- }
+ this.report_fields = Vue.component('add-new-component', (resolve, reject) => {
+ resolve({
+ template : '
' + html + '
',
+
+ mixins: [
+ Global
+ ],
+
+ created: function() {
+ this.form = form;
+ },
+
+ data: function () {
+ return {
+ form: {},
+ }
+ },
+
+ watch: {
+ form: function (form) {
+ this.$emit("change", form);
+ }
+ },
+ })
});
})
.catch(error => {
});
+ },
+
+ onChangeReportFields(event) {
+ this.form = event;
}
}
});
diff --git a/resources/views/common/reports/create.blade.php b/resources/views/common/reports/create.blade.php
index 8187819f7..05a8055da 100644
--- a/resources/views/common/reports/create.blade.php
+++ b/resources/views/common/reports/create.blade.php
@@ -22,7 +22,9 @@
{{ Form::textareaGroup('description', trans('general.description'), null, null, ['rows' => '3', 'required' => 'required']) }}
-
+ {{ Form::hidden('report', 'invalid', ['data-field' => 'settings']) }}
+
+
diff --git a/resources/views/partials/form/checkbox_group.blade.php b/resources/views/partials/form/checkbox_group.blade.php
index b746f6226..f1af46eeb 100644
--- a/resources/views/partials/form/checkbox_group.blade.php
+++ b/resources/views/partials/form/checkbox_group.blade.php
@@ -12,7 +12,7 @@
{{ Form::checkbox($name, $item->$id, null, [
'id' => 'checkbox-' . $name . '-' . $item->$id,
'class' => 'custom-control-input',
- 'v-model' => !empty($attributes['v-model']) ? $attributes['v-model'] : 'form.' . $name
+ 'v-model' => !empty($attributes['v-model']) ? $attributes['v-model'] : !empty($attributes['data-field']) ? 'form.' . $attributes['data-field'] . '.'. $name : 'form.' . $name
]) }}