@extends('admin.layouts.master')
@push('css')
@endpush
@section('page-title')
@include('admin.components.page-title',['title' => __($page_title)])
@endsection
@section('breadcrumb')
@include('admin.components.breadcrumb',['breadcrumbs' => [
[
'name' => __("Dashboard"),
'url' => setRoute("admin.dashboard"),
]
], 'active' => __("Languages")])
@endsection
@section('content')
<div class="table-area">
<div class="table-wrapper">
@includeUnless($languages->where("status",1)->count(),'admin.components.alerts.warning',['message' => __("There is no default language in your system. System will automatically select English as a default language.")])
<div class="table-header">
<h5 class="title">{{ __($page_title) }}</h5>
<div class="table-btn-area">
@include('admin.components.link.add-default',[
'href' => "#language-add",
'class' => "py-2 px-4 modal-btn",
'text' => __("Add New"),
'permission' => "admin.languages.store",
])
@include('admin.components.link.custom',[
'href' => "#language-import",
'class' => "btn--base py-2 px-4 bg--info modal-btn",
'icon' => "fas fa-upload me-1",
'text' => __("Import"),
'permission' => "admin.languages.import",
])
@if (language_file_exists())
@include('admin.components.link.custom',[
'text' => __("Download"),
'icon' => "fas fa-download me-1",
'permission' => "admin.languages.download",
'href' => setRoute('admin.languages.download'),
'class' => "btn--base py-2 px-4 bg--primary",
])
@endif
</div>
</div>
<div class="table-responsive">
<table class="custom-table">
<thead>
<tr>
<th>{{ __("Name") }}</th>
<th>{{ __("Code") }}</th>
<th>{{ __("Direction") }}</th>
<th>{{ __("Status") }}</th>
<th></th>
</tr>
</thead>
<tbody>
@forelse ($languages as $item)
<tr data-item="{{ $item->editData }}">
<td>{{ $item->name }}</td>
<td>{{ $item->code }}</td>
<td class="text-uppercase">{{ $item->dir }}</td>
<td>
@include('admin.components.form.switcher',[
'name' => 'status',
'value' => $item->status,
'options' => [__('Default') => 1,__('Selectable') => 0],
'onload' => true,
'data_target' => $item->id,
])
</td>
<td>
@include('admin.components.link.info-default',[
'href' => setRoute('admin.languages.info',$item->code),
'permission' => "admin.languages.info",
])
@include('admin.components.link.edit-default',[
'class' => "edit-modal-button",
'permission' => "admin.languages.update",
])
@if (language_const()::NOT_REMOVABLE != $item->code)
@include('admin.components.link.delete-default',[
'class' => "delete-modal-button",
'permission' => "admin.languages.delete",
])
@endif
</td>
</tr>
@empty
@include('admin.components.alerts.empty',['colspan' => 4])
@endforelse
</tbody>
</table>
</div>
</div>
</div>
{{-- Language Add --}}
@include('admin.components.modals.language.add')
{{-- Language Edit --}}
@include('admin.components.modals.language.edit')
{{-- Import Language --}}
@include('admin.components.modals.language.import',compact("languages"))
@endsection
@push('script')
<script>
$(".delete-modal-button").click(function() {
var oldData = JSON.parse($(this).parents("tr").attr("data-item"));
var actionRoute = "{{ setRoute('admin.languages.delete') }}";
var target = oldData.id;
var message = `{{ __("Are you sure to delete this language?") }}`;
openDeleteModal(actionRoute,target,message);
});
// Switcher
switcherAjax("{{ setRoute('admin.languages.status.update') }}");
</script>
@endpush
Get access token to initiates payment transaction.
generate-token
| Parameter | Type | Comments |
|---|---|---|
| client_id | string | Enter merchant API client/primary key |
| secret_id | string | Enter merchant API secret key |
| env | string | Enter merchant API environment |
| merchant_id | string | Enter merchant API merchant id |
Request Example (guzzle)
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $base_url. 'v1/generate-token', [
'headers' => [
'accept' => 'application/json',
'content-type' => 'application/json',
],
'form_params' => [
'client_id' => '$client_id',
'secret_id' => 'secret_id',
'env' => 'env',
'merchant_id' => 'merchant_id',
],
]);
echo $response->getBody();
**Response: SUCCESS (200 OK)**
{
"message": {
"success": [
"Successfully token is generated"
]
},
"data": {
"token":"eyJpdiI6InpkczhjTjhQdVhUL2lKQ0pSUUx6aUE9PSIsInZhbHVlIjoiVGVBTVBDTXltbjNZcEIvdEJveGpTSno3TU5NRUtnVkhCZ1pHTFNCUnZGQ2UxMnYxN202cEE1YVRDTEFsc0ZERExoTjdtL0dTL2xoU3QzeUJJOExiMUx5T0w1L0llUXhTUkU1cWVLWEdEbEplb0dKNXcwbTNRM0VxdkUwYzZuNFdtNkhMQ0pRZysyNWkvdzBxSlBoSVBSOGFTekNnR2RXNHVtcG9lMGZOTmNCcm1hR3c5Sk9KTnB4Y3ltZDl6cm90MThrR21Ca3B1azc3bXRiQ0J6SW96UVo1elNkU1ZqeE05bTcwWGp1MEUxWlJFdnNWTmpSbnVpeW92b2U4dXZkUGgyb1VmK0luaGdyaFlsVTZlcVpVRnZlTG1DeFF6Ykk2T2h6Z3JzbnIyNHpNdHowSE5JdDR0Y0pZT20zUm1XYW8iLCJtYWMiOiJlY2M4NGE1OGUzYzkzYzk0YzljNmVmNjE0YWI0ZDIwOGI3NDQ2YWEyY2ZhNzc0NzE4ZmY1ZmYyMz
IyZmQzNDY1IiwidGFnIjoiIn0=",
},
"type": "success"
}
**Response: ERROR (400 FAILED)**
{
"message": {
"error": [
"Invalid credentials."
]
},
"data": null,
"type": "error"
}