OfflinePayment add new and vue issue solved.

This commit is contained in:
Cüneyt Şentürk 2020-02-19 12:23:24 +03:00
parent 9c84d267fc
commit e39823f2b7
6 changed files with 14201 additions and 148588 deletions

View File

@ -11,6 +11,7 @@ use Modules\OfflinePayments\Http\Requests\SettingDelete as DRequest;
class Settings extends Controller class Settings extends Controller
{ {
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
* *
@ -34,34 +35,34 @@ class Settings extends Controller
{ {
$methods = json_decode(setting('offline-payments.methods'), true); $methods = json_decode(setting('offline-payments.methods'), true);
if (isset($request['update_code'])) { if (!empty($request->get('update_code', null))) {
foreach ($methods as $key => $method) { foreach ($methods as $key => $method) {
if ($method['code'] != $request['update_code']) { if ($method['code'] != $request->get('update_code')) {
continue; continue;
} }
$method = explode('.', $request['update_code']); $method = explode('.', $request->get('update_code'));
$methods[$key] = [ $methods[$key] = [
'code' => 'offline-payments.' . $request['code'] . '.' . $method[2], 'code' => 'offline-payments.' . $request->get('code') . '.' . $method[2],
'name' => $request['name'], 'name' => $request->get('name'),
'customer' => $request['customer'], 'customer' => $request->get('customer'),
'order' => $request['order'], 'order' => $request->get('order'),
'description' => $request['description'], 'description' => $request->get('description'),
]; ];
} }
$message = trans('messages.success.updated', ['type' => $request['name']]); $message = trans('messages.success.updated', ['type' => $request['name']]);
} else { } else {
$methods[] = [ $methods[] = [
'code' => 'offline-payments.' . $request['code'] . '.' . (count($methods) + 1), 'code' => 'offline-payments.' . $request->get('code') . '.' . (count($methods) + 1),
'name' => $request['name'], 'name' => $request->get('name'),
'customer' => $request['customer'], 'customer' => $request->get('customer'),
'order' => $request['order'], 'order' => $request->get('order'),
'description' => $request['description'], 'description' => $request->get('description'),
]; ];
$message = trans('messages.success.added', ['type' => $request['name']]); $message = trans('messages.success.added', ['type' => $request->get('name')]);
} }
setting()->set('offline-payments.methods', json_encode($methods)); setting()->set('offline-payments.methods', json_encode($methods));
@ -95,7 +96,7 @@ class Settings extends Controller
{ {
$data = []; $data = [];
$code = $request['code']; $code = $request->get('code');
$methods = json_decode(setting('offline-payments.methods'), true); $methods = json_decode(setting('offline-payments.methods'), true);
@ -132,7 +133,7 @@ class Settings extends Controller
*/ */
public function destroy(DRequest $request) public function destroy(DRequest $request)
{ {
$code = $request['code']; $code = $request->get('code');
$methods = json_decode(setting('offline-payments.methods'), true); $methods = json_decode(setting('offline-payments.methods'), true);
@ -156,7 +157,8 @@ class Settings extends Controller
$message = trans('messages.success.deleted', ['type' => $remove['name']]); $message = trans('messages.success.deleted', ['type' => $remove['name']]);
flash($message)->success(); // because it show nofitication.
//flash($message)->success();
return response()->json([ return response()->json([
'errors' => false, 'errors' => false,

View File

@ -12,6 +12,11 @@ import Global from './../../../../../resources/assets/js/mixins/global';
import Form from './../../../../../resources/assets/js/plugins/form'; import Form from './../../../../../resources/assets/js/plugins/form';
import DashboardPlugin from './../../../../../resources/assets/js/plugins/dashboard-plugin';
// plugin setup
Vue.use(DashboardPlugin);
const app = new Vue({ const app = new Vue({
el: '#app', el: '#app',
@ -21,15 +26,7 @@ const app = new Vue({
data() { data() {
return { return {
form: new Form('offline-payments'), form: new Form('offline-payment'),
confirm: {
code: '',
title: '',
message: '',
button_cancel: '',
button_delete: '',
show: false
},
} }
}, },
@ -58,47 +55,73 @@ const app = new Vue({
// Actions > Delete // Actions > Delete
confirmDelete(code, title, message, button_cancel, button_delete) { confirmDelete(code, title, message, button_cancel, button_delete) {
this.confirm.code = code; let confirm = {
this.confirm.title = title; code: code,
this.confirm.message = message; url: url,
this.confirm.button_cancel = button_cancel; title: title,
this.confirm.button_delete = button_delete; message: message,
this.confirm.show = true; button_cancel: button_cancel,
button_delete: button_delete,
show: true
};
this.component = Vue.component('add-new-component', (resolve, reject) => {
resolve({
template : '<div id="dynamic-component"><akaunting-modal v-if="confirm.show" :show="confirm.show" :title="confirm.title" :message="confirm.message" :button_cancel="confirm.button_cancel" :button_delete="confirm.button_delete" @confirm="onDelete" @cancel="cancelDelete"></akaunting-modal></div>',
mixins: [
Global
],
data: function () {
return {
confirm: confirm,
}
}, },
cancelDelete() { methods: {
this.confirm.code = ''; // Delete action post
this.confirm.title = ''; async onDelete() {
this.confirm.message = ''; let promise = Promise.resolve(axios({
this.confirm.show = false;
},
onDelete() {
axios({
method: 'DELETE', method: 'DELETE',
url: 'settings/delete', url: 'settings/delete',
data: { data: {
code: this.confirm.code code: this.confirm.code
} }
}) }));
.then(response => {
promise.then(response => {
var type = (response.data.success) ? 'success' : 'warning';
if (response.data.success) { if (response.data.success) {
if (response.data.redirect) { if (response.data.redirect) {
window.location.href = response.data.redirect; //window.location.href = response.data.redirect;
} }
document.getElementById('method-' + this.confirm.code).remove(); document.getElementById('method-' + this.confirm.code).remove();
this.confirm.code = '';
this.confirm.title = '';
this.confirm.message = '';
this.confirm.show = false; this.confirm.show = false;
} }
this.$notify({
message: response.data.message,
timeout: 5000,
icon: 'fas fa-bell',
type
});
}) })
.catch(error => { .catch(error => {
this.success = false; this.success = false;
}); });
},
// Close modal empty default value
cancelDelete() {
this.confirm.show = false;
},
}
})
});
} }
} }
}); });

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,7 @@
</div> </div>
{!! Form::open([ {!! Form::open([
'id' => 'offline-payments', 'id' => 'offline-payment',
'route' => 'offline-payments.settings.update', 'route' => 'offline-payments.settings.update',
'@submit.prevent' => 'onSubmit', '@submit.prevent' => 'onSubmit',
'@keydown' => 'form.errors.clear($event.target.name)', '@keydown' => 'form.errors.clear($event.target.name)',
@ -106,17 +106,6 @@
</div> </div>
</div> </div>
</div> </div>
<akaunting-modal
:show="confirm.show"
:title="confirm.title"
:message="confirm.message"
:button_cancel="confirm.button_cancel"
:button_delete="confirm.button_delete"
v-if='confirm.show'
@confirm='onDelete'
@cancel="cancelDelete">
</akaunting-modal>
@endsection @endsection
@push('scripts_start') @push('scripts_start')

View File

@ -1,15 +0,0 @@
{
"name": "akaunting/offlinepayment",
"description": "",
"authors": [
{
"name": "Akaunting",
"email": "info@akaunting.com"
}
],
"autoload": {
"psr-4": {
"Modules\\OfflinePayment\\": ""
}
}
}

14111
modules/OfflinePayments/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff