Added My apps page, it show Purchase and installed app
This commit is contained in:
parent
d57537b203
commit
54f10af4d3
29
app/Http/Controllers/Modules/My.php
Normal file
29
app/Http/Controllers/Modules/My.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Modules;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Traits\Modules;
|
||||||
|
use App\Models\Module\Module;
|
||||||
|
use Illuminate\Routing\Route;
|
||||||
|
|
||||||
|
class My extends Controller
|
||||||
|
{
|
||||||
|
use Modules;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$this->checkApiToken();
|
||||||
|
|
||||||
|
$purchased = $this->getMyModules();
|
||||||
|
$modules = $this->getInstalledModules();
|
||||||
|
$installed = Module::all()->pluck('status', 'alias')->toArray();
|
||||||
|
|
||||||
|
return view('modules.my.index', compact('purchased', 'modules', 'installed'));
|
||||||
|
}
|
||||||
|
}
|
48
app/Listeners/Updates/Version126.php
Normal file
48
app/Listeners/Updates/Version126.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Listeners\Updates;
|
||||||
|
|
||||||
|
use App\Events\UpdateFinished;
|
||||||
|
use App\Models\Auth\Role;
|
||||||
|
use App\Models\Auth\Permission;
|
||||||
|
|
||||||
|
class Version126 extends Listener
|
||||||
|
{
|
||||||
|
const ALIAS = 'core';
|
||||||
|
|
||||||
|
const VERSION = '1.2.6';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(UpdateFinished $event)
|
||||||
|
{
|
||||||
|
// Check if should listen
|
||||||
|
if (!$this->check($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create permission
|
||||||
|
$permission = Permission::firstOrCreate([
|
||||||
|
'name' => 'read-modules-my',
|
||||||
|
'display_name' => 'Read Modules My',
|
||||||
|
'description' => 'Read Modules My',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Attach permission to roles
|
||||||
|
$roles = Role::all();
|
||||||
|
|
||||||
|
foreach ($roles as $role) {
|
||||||
|
$allowed = ['admin', 'manager'];
|
||||||
|
|
||||||
|
if (!in_array($role->name, $allowed)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$role->attachPermission($permission);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -23,6 +23,7 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
'App\Listeners\Updates\Version113',
|
'App\Listeners\Updates\Version113',
|
||||||
'App\Listeners\Updates\Version119',
|
'App\Listeners\Updates\Version119',
|
||||||
'App\Listeners\Updates\Version120',
|
'App\Listeners\Updates\Version120',
|
||||||
|
'App\Listeners\Updates\Version126',
|
||||||
],
|
],
|
||||||
'Illuminate\Auth\Events\Login' => [
|
'Illuminate\Auth\Events\Login' => [
|
||||||
'App\Listeners\Auth\Login',
|
'App\Listeners\Auth\Login',
|
||||||
|
@ -78,6 +78,45 @@ trait Modules
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getMyModules($data = [])
|
||||||
|
{
|
||||||
|
$response = $this->getRemote('apps/my', 'GET', $data);
|
||||||
|
|
||||||
|
if ($response && ($response->getStatusCode() == 200)) {
|
||||||
|
return json_decode($response->getBody())->data;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getInstalledModules($data = [])
|
||||||
|
{
|
||||||
|
$company_id = session('company_id');
|
||||||
|
|
||||||
|
$cache = 'installed.' . $company_id . '.module';
|
||||||
|
|
||||||
|
$installed = Cache::get($cache);
|
||||||
|
|
||||||
|
if ($installed) {
|
||||||
|
return $installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
$installed = [];
|
||||||
|
$modules = Module::all();
|
||||||
|
|
||||||
|
foreach ($modules as $module) {
|
||||||
|
$result = $this->getModule($module->alias);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$installed[] = $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Cache::put($cache, $installed, Date::now()->addHour(6));
|
||||||
|
|
||||||
|
return $installed;
|
||||||
|
}
|
||||||
|
|
||||||
public function getPaidModules($data = [])
|
public function getPaidModules($data = [])
|
||||||
{
|
{
|
||||||
$response = $this->getRemote('apps/paid', 'GET', $data);
|
$response = $this->getRemote('apps/paid', 'GET', $data);
|
||||||
|
@ -4,6 +4,7 @@ return [
|
|||||||
|
|
||||||
'title' => 'API Token',
|
'title' => 'API Token',
|
||||||
'api_token' => 'Token',
|
'api_token' => 'Token',
|
||||||
|
'my_apps' => 'My Apps',
|
||||||
'top_paid' => 'Top Paid',
|
'top_paid' => 'Top Paid',
|
||||||
'new' => 'New',
|
'new' => 'New',
|
||||||
'top_free' => 'Top Free',
|
'top_free' => 'Top Free',
|
||||||
@ -49,4 +50,9 @@ return [
|
|||||||
'disable' => 'Disable',
|
'disable' => 'Disable',
|
||||||
'enable' => 'Enable',
|
'enable' => 'Enable',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'my' => [
|
||||||
|
'purchased' => 'Purchased',
|
||||||
|
'installed' => 'Installed',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
@section('new_button')
|
@section('new_button')
|
||||||
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
||||||
|
<span class="new-button"><a href="{{ url('apps/my') }}" class="btn btn-default btn-sm"><span class="fa fa-rocket"></span> {{ trans('modules.my_apps') }}</a></span>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
@section('new_button')
|
@section('new_button')
|
||||||
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
||||||
|
<span class="new-button"><a href="{{ url('apps/my') }}" class="btn btn-default btn-sm"><span class="fa fa-rocket"></span> {{ trans('modules.my_apps') }}</a></span>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
34
resources/views/modules/my/index.blade.php
Normal file
34
resources/views/modules/my/index.blade.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
@extends('layouts.modules')
|
||||||
|
|
||||||
|
@section('title', trans_choice('general.modules', 2))
|
||||||
|
|
||||||
|
@section('new_button')
|
||||||
|
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
||||||
|
<span class="new-button"><a href="{{ url('apps/my') }}" class="btn btn-default btn-sm"><span class="fa fa-rocket"></span> {{ trans('modules.my_apps') }}</a></span>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@include('partials.modules.bar')
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="content-header no-padding-left">
|
||||||
|
<h3>{{ trans('modules.my.purchased') }}</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@foreach ($purchased as $module)
|
||||||
|
@include('partials.modules.item')
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="content-header no-padding-left">
|
||||||
|
<h3>{{ trans('modules.my.installed') }}</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@foreach ($modules as $module)
|
||||||
|
@include('partials.modules.item')
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
@section('new_button')
|
@section('new_button')
|
||||||
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
<span class="new-button"><a href="{{ url('apps/token/create') }}" class="btn btn-success btn-sm"><span class="fa fa-key"></span> {{ trans('modules.api_token') }}</a></span>
|
||||||
|
<span class="new-button"><a href="{{ url('apps/my') }}" class="btn btn-default btn-sm"><span class="fa fa-rocket"></span> {{ trans('modules.my_apps') }}</a></span>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
@ -116,6 +116,7 @@ Route::group(['middleware' => 'language'], function () {
|
|||||||
Route::group(['prefix' => 'apps'], function () {
|
Route::group(['prefix' => 'apps'], function () {
|
||||||
Route::resource('token', 'Modules\Token');
|
Route::resource('token', 'Modules\Token');
|
||||||
Route::resource('home', 'Modules\Home');
|
Route::resource('home', 'Modules\Home');
|
||||||
|
Route::resource('my', 'Modules\My');
|
||||||
Route::get('categories/{alias}', 'Modules\Tiles@categoryModules');
|
Route::get('categories/{alias}', 'Modules\Tiles@categoryModules');
|
||||||
Route::get('paid', 'Modules\Tiles@paidModules');
|
Route::get('paid', 'Modules\Tiles@paidModules');
|
||||||
Route::get('new', 'Modules\Tiles@newModules');
|
Route::get('new', 'Modules\Tiles@newModules');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user