v2 first commit

This commit is contained in:
denisdulici
2019-11-16 10:21:14 +03:00
parent 5b23e9c2c4
commit 6d50fa8442
3075 changed files with 3451681 additions and 65594 deletions

View File

@ -0,0 +1,48 @@
@extends('layouts.modules')
@section('title', trans('modules.api_key'))
@section('content')
<div class="card">
{!! Form::open([
'route' => 'apps.api-key.store',
'id' => 'app',
'@submit.prevent' => 'onSubmit',
'files' => true,
'role' => 'form',
'class' => 'form-loading-button'
]) !!}
<div class="card-body">
<div class="col-md-12">
<div class="form-group required {{ $errors->has('api_key') ? 'has-error' : ''}}">
{!! Form::label('api_key', trans('modules.api_key'), ['class' => 'form-control-label']) !!}
<div class="input-group input-group-merge">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-key"></i>
</span>
</div>
{!! Form::text('api_key', setting('apps.api_key', null), ['class' => 'form-control', 'required' => 'required', 'placeholder' => trans('general.form.enter', ['field' => trans('modules.api_key')])]) !!}
</div>
{!! $errors->first('api_key', '<p class="help-block">:message</p>') !!}
</div>
<p class="mb-0 mt--3">
<small>{!! trans('modules.api_key_link') !!}</small>
</p>
</div>
</div>
<div class="card-footer">
<div class="float-right">
{{ Form::saveButtons('apps/home') }}
</div>
</div>
{!! Form::close() !!}
</div>
@endsection
@push('scripts_start')
<script src="{{ asset('public/js/apps.js?v=' . version('short')) }}"></script>
@endpush

View File

@ -3,76 +3,61 @@
@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> &nbsp;{{ 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-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
<span class="new-button"><a href="{{ route('apps.api-key.create') }}" class="btn btn-white btn-sm header-button-top"><span class="fa fa-key"></span> &nbsp;{{ trans('modules.api_key') }}</a></span>
<span class="new-button"><a href="{{ route('apps.my.index') }}" class="btn btn-white btn-sm header-button-bottom"><span class="fa fa-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
@endsection
@section('content')
@include('partials.modules.bar')
<div class="row">
@if ($pre_sale)
<div class="col-md-12">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.pre_sale') }}</h3>
<h2 class="text-primary">{{ trans('modules.pre_sale') }}</h2>
<div class="row">
@if ($pre_sale->data)
@foreach ($pre_sale->data as $module)
@include('partials.modules.pre_sale')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@if ($pre_sale->data)
@foreach ($pre_sale->data as $module)
@include('partials.modules.pre_sale')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@endif
@if ($paid)
<div class="col-md-12">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.top_paid') }}</h3>
<h2 class="text-primary">{{ trans('modules.top_paid') }}</h2>
<div class="row">
@if ($paid->data)
@foreach ($paid->data as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@if ($paid->data)
@foreach ($paid->data as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@endif
@if ($new)
<div class="col-md-12">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.new') }}</h3>
<h2 class="text-primary">{{ trans('modules.new') }}</h2>
<div class="row">
@if ($new->data)
@foreach ($new->data as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@if ($new->data)
@foreach ($new->data as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@endif
@if ($free)
<div class="col-md-12">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.top_free') }}</h3>
<h2 class="text-primary">{{ trans('modules.top_free') }}</h2>
<div class="row">
@if ($free->data)
@foreach ($free->data as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@if ($free->data)
@foreach ($free->data as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@endif
</div>
@endsection
@endsection

View File

@ -3,46 +3,33 @@
@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> &nbsp;{{ 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-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
<span class="new-button"><a href="{{ route('apps.api-key.create') }}" class="btn btn-white btn-sm"><span class="fa fa-key"></span> &nbsp;{{ trans('modules.api_key') }}</a></span>
<span class="new-button"><a href="{{ route('apps.my.index') }}" class="btn btn-white btn-sm"><span class="fa fa-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
@endsection
@section('content')
@include('partials.modules.bar')
<div class="row module">
<div class="row">
<div class="col-md-12">
<div class="col-md-12 no-padding-left">
<div class="box box-success">
<div class="box-body">
<div class="card">
<div class="card-body">
@if ($documentation)
{!! $documentation->body !!}
@else
{{ trans('general.na') }}
@endif
</div>
<div class="card-footer">
<div class="row">
<div class="col-md-12">
<div class="text-left">
<a href="{{ url($back) }}" class="btn btn-white btn-md text-left">&laquo; {{ trans('modules.back') }}</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12 no-padding-left">
<ul class="pager nomargin">
<li class="previous"><a href="{{ url($back) }}" class="btn btn-default btn-sm">&laquo; {{ trans('modules.back') }}</a></li>
</ul>
</div>
</div>
</div>
@endsection
@push('stylesheet')
<style type="text/css">
.row.module h1 {
margin: 0;
font-size: 24px !important;
}
.row.module img {
width: 100%;
max-width: 900px;
}
</style>
@endpush

View File

@ -3,27 +3,36 @@
@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> &nbsp;{{ 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-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
<span class="new-button">
<a href="{{ route('apps.api-key.create') }}" class="btn btn-white btn-sm header-button-top">
<span class="fa fa-key"></span> &nbsp;{{ trans('modules.api_key') }}
</a>
</span>
<span class="new-button">
<a href="{{ route('apps.my.index') }}" class="btn btn-white btn-sm header-button-bottom">
<span class="fa fa-user"></span> &nbsp;{{ trans('modules.my_apps') }}
</a>
</span>
@endsection
@section('content')
@include('partials.modules.bar')
<div class="row module">
<div class="col-md-12">
<div class="col-md-8 no-padding-left">
<div class="content-header no-padding-left">
<h3>{{ $module->name }}</h3>
</div>
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="active"><a href="#description" data-toggle="tab" aria-expanded="true">{{ trans('general.description') }}</a></li>
</ul>
<div class="row">
<div class="col-md-8">
<h3>{{ $module->name }}</h3>
<div class="nav-wrapper">
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
<li class="nav-item">
<a class="nav-link mb-sm-2 mb-md-0 active" href="#description" data-toggle="tab" aria-selected="false">{{ trans('general.description') }}</a>
</li>
</ul>
</div>
<div class="card shadow">
<div class="card-body">
<div class="tab-content">
<div class="tab-pane active" id="description">
<div class="tab-pane fade show active" id="description">
{!! $module->description !!}
@if($module->screenshots || $module->video)
@ -31,24 +40,24 @@
<div class="carousel-inner">
@if($module->video)
@php
if (strpos($module->video->link, '=') !== false) {
$code = explode('=', $module->video->link);
$code[1]= str_replace('&list', '', $code[1]);
if (strpos($module->video->link, '=') !== false) {
$code = explode('=', $module->video->link);
$code[1]= str_replace('&list', '', $code[1]);
if (empty($status)) {
$status = 5;
} else {
$status = 1;
}
if (empty($status)) {
$status = 5;
} else {
$status = 1;
}
@endphp
<div class="item @if($status == 5) {{ 'active' }} @endif">
<iframe width="100%" height="410px" src="https://www.youtube-nocookie.com/embed/{{ $code[1] }}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<div class="item @if($status == 5) {{ 'active' }} @endif">
<iframe width="100%" height="410px" src="https://www.youtube-nocookie.com/embed/{{ $code[1] }}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<div class="image-description text-center">
{{ $module->name }}
<div class="image-description text-center">
{{ $module->name }}
</div>
</div>
</div>
@php } @endphp
@endif
@ -67,14 +76,14 @@
<div class="carousel-navigation-message">
@if (($module->video && (count($module->screenshots) > 1)) || (!$module->video && (count($module->screenshots) > 1)))
<a href="#carousel-screenshot-generic" class="left carousel-control" role="button" data-slide="prev">
<i class="fa fa-chevron-left"></i>
<span class="sr-only">{{ trans('pagination.previous') }}</span>
</a>
<a href="#carousel-screenshot-generic" class="right carousel-control" role="button" data-slide="next">
<i class="fa fa-chevron-right"></i>
<span class="sr-only">{{ trans('pagination.next') }}</span>
</a>
<a href="#carousel-screenshot-generic" class="left carousel-control" role="button" data-slide="prev">
<i class="fa fa-chevron-left"></i>
<span class="sr-only">{{ trans('pagination.previous') }}</span>
</a>
<a href="#carousel-screenshot-generic" class="right carousel-control" role="button" data-slide="next">
<i class="fa fa-chevron-right"></i>
<span class="sr-only">{{ trans('pagination.next') }}</span>
</a>
@endif()
</div>
</div>
@ -84,18 +93,15 @@
</div>
</div>
</div>
<div class="col-md-4">
<div class="content-header no-padding-left">
<h3>{{ trans_choice('general.actions', 1) }}</h3>
</div>
<div class="box box-success">
<div class="box-body">
<div id="countdown-pre-sale"></div>
<div class="text-center action">
<div style="margin: 10px; font-size: 24px;">
</div>
<div class="col-md-4">
<h3>{{ trans_choice('general.actions', 1) }}</h3>
<div class="card">
<div class="card-body">
<div id="countdown-pre-sale"></div>
<div class="text-center">
<strong>
<div class="text-xl">
@if ($module->price == '0.0000')
{{ trans('modules.free') }}
@else
@ -109,145 +115,92 @@
{!! $module->price_suffix !!}
@endif
</div>
</div>
</strong>
</div>
<!-- /.box-body -->
</div>
<div class="box-footer">
@permission('create-modules-item')
<div class="card-footer">
@permission('create-modules-item')
@if ($module->install)
<a href="#" class="btn btn-warning btn-block" disabled="disabled">
{{ trans('modules.pre_sale') }}
</a>
<a href="#" class="btn btn-warning btn-block" disabled="disabled">
{{ trans('modules.pre_sale') }}
</a>
@else
<a href="{{ $module->action_url }}" class="btn btn-warning btn-block" target="_blank">
{{ trans('modules.pre_sale') }}
</a>
<a href="{{ $module->action_url }}" class="btn btn-warning btn-block" target="_blank">
{{ trans('modules.pre_sale') }}
</a>
@endif
@endpermission
@endpermission
@if ($module->purchase_faq)
</br>
@if ($module->purchase_faq)
<br>
<div class="text-center">
<a href="#" id="button-purchase-faq">{{ trans('modules.tab.faq')}}</a>
<a href="#" @click="onShowFaq" id="button-purchase-faq">{{ trans('modules.tab.faq')}}</a>
</div>
@endif
</div>
</div>
<h3>{{ trans('modules.about') }}</h3>
<div class="card">
<table class="table">
<tbody>
@if ($module->vendor_name)
<tr>
<th>{{ trans_choice('general.developers', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/vendors/' . $module->vendor->slug) }}">{{ $module->vendor_name }}</a></td>
</tr>
@endif
</div>
<!-- /.box-footer -->
</div>
<!-- /.box -->
<div class="content-header no-padding-left">
<h3>{{ trans('modules.about') }}</h3>
</div>
<div class="box box-success">
<div class="box-body">
<table class="table table-striped">
<tbody>
@if ($module->vendor_name)
<tr>
<th>{{ trans_choice('general.developers', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/vendors/' . $module->vendor->slug) }}">{{ $module->vendor_name }}</a></td>
</tr>
@endif
@if ($module->version)
<tr>
<th>{{ trans('footer.version') }}</th>
<td class="text-right">{{ $module->version }}</td>
</tr>
@endif
@if ($module->created_at)
<tr>
<th>{{ trans('modules.added') }}</th>
<td class="text-right">{{ Date::parse($module->created_at)->format($date_format) }}</td>
</tr>
@endif
@if ($module->updated_at)
<tr>
<th>{{ trans('modules.updated') }}</th>
<td class="text-right">{{ Date::parse($module->updated_at)->diffForHumans() }}</td>
</tr>
@endif
@if ($module->compatibility)
<tr>
<th>{{ trans('modules.compatibility') }}</th>
<td class="text-right">{{ $module->compatibility }}</td>
</tr>
@endif
@if ($module->category)
<tr>
<th>{{ trans_choice('general.categories', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/categories/' . $module->category->slug) }}">{{ $module->category->name }}</a></td>
</tr>
@endif
</tbody>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
@if ($module->version)
<tr>
<th>{{ trans('footer.version') }}</th>
<td class="text-right">{{ $module->version }}</td>
</tr>
@endif
@if ($module->created_at)
<tr>
<th>{{ trans('modules.added') }}</th>
<td class="text-right">@date($module->created_at)</td>
</tr>
@endif
@if ($module->updated_at)
<tr>
<th>{{ trans('modules.updated') }}</th>
<td class="text-right">{{ Date::parse($module->updated_at)->diffForHumans() }}</td>
</tr>
@endif
@if ($module->compatibility)
<tr>
<th>{{ trans('modules.compatibility') }}</th>
<td class="text-right">{{ $module->compatibility }}</td>
</tr>
@endif
@if ($module->category)
<tr>
<th>{{ trans_choice('general.categories', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/categories/' . $module->category->slug) }}">{{ $module->category->name }}</a></td>
</tr>
@endif
</tbody>
</table>
</div>
</div>
</div>
@if ($module->purchase_faq)
{!! $module->purchase_faq !!}
<akaunting-modal :show="faq.show">
<template #modal-content>
{!! $module->purchase_faq !!}
</template>
</akaunting-modal>
@endif
@endsection
@push('js')
<script src="{{ asset('public/js/lightbox/ekko-lightbox.js') }}"></script>
<script src="{{ asset('public/js/jquery/countdown/jquery.plugin.js') }}"></script>
<script src="{{ asset('public/js/jquery/countdown/jquery.countdown.js') }}"></script>
@if (language()->getShortCode() != 'en')
<script src="{{ asset('public/js/jquery/countdown/jquery.countdown-' . language()->getShortCode() . '.js') }}"></script>
@endif
@endpush
@push('css')
<link rel="stylesheet" href="{{ asset('public/css/ekko-lightbox.css') }}">
<link rel="stylesheet" href="{{ asset('public/css/countdown.css') }}">
@endpush
@push('stylesheet')
<style type="text/css">
.nav-tabs-custom img {
display: block;
max-width: 100%;
height: auto;
}
.text-center.action {
border-top: 1px solid #f4f4f4;
margin-top: 10px;
}
</style>
@endpush
@push('scripts')
@push('scripts_start')
<script type="text/javascript">
$(document).ready(function() {
$('.carousel').carousel({
interval: false,
keyboard: true
});
$('#countdown-pre-sale').countdown({
until: new Date({{ (int) $module->pre_sale_date->year }}, {{ (int) $module->pre_sale_date->month }} - 1, {{ (int) $module->pre_sale_date->day }})
});
});
$(document).on('click', '[data-toggle="lightbox"]', function(e) {
e.preventDefault();
$(this).ekkoLightbox();
});
@if ($module->purchase_faq)
$(document).on('click', '#button-purchase-faq', function (e) {
$('.app-faq-modal').modal('show');
});
@endif
var app_slug = "{{ $module->slug }}";
</script>
<script src="{{ asset('public/js/modules/item.js?v=' . version('short')) }}"></script>
@endpush

View File

@ -3,67 +3,101 @@
@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> &nbsp;{{ 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-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
<span class="new-button">
<a href="{{ route('apps.api-key.create') }}" class="btn btn-white btn-sm header-button-top">
<span class="fa fa-key"></span> &nbsp;{{ trans('modules.api_key') }}
</a>
</span>
<span class="new-button">
<a href="{{ route('apps.my.index') }}" class="btn btn-white btn-sm header-button-bottom">
<span class="fa fa-user"></span> &nbsp;{{ trans('modules.my_apps') }}
</a>
</span>
@endsection
@section('content')
@include('partials.modules.bar')
<div class="row module">
<div class="col-md-12">
<div class="col-md-8 no-padding-left">
<div class="content-header no-padding-left">
<h3>{{ $module->name }}</h3>
<div class="pull-right rating">
@for($i = 1; $i <= $module->vote; $i++)
<i class="fa fa-star fa-lg"></i>
@endfor
@for($i = $module->vote; $i < 5; $i++)
<i class="fa fa-star-o fa-lg"></i>
@endfor
<div class="row">
<div class="col-md-8">
<div class="row">
<div class="col-md-6">
<div class="float-left">
<h3>{{ $module->name }}</h3>
</div>
</div>
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="active"><a href="#description" data-toggle="tab" aria-expanded="true">{{ trans('general.description') }}</a></li>
@if ($module->installation)
<li class=""><a href="#installation" data-toggle="tab" aria-expanded="false">{{ trans('modules.tab.installation') }}</a></li>
@endif
@if ($module->faq)
<li class=""><a href="#faq" data-toggle="tab" aria-expanded="false">{{ trans('modules.tab.faq') }}</a></li>
@endif
@if ($module->changelog)
<li class=""><a href="#changelog" data-toggle="tab" aria-expanded="false">{{ trans('modules.tab.changelog') }}</a></li>
@endif
<li><a href="#review" data-toggle="tab" aria-expanded="false">{{ trans('modules.tab.reviews') }} @if ($module->total_review) ({{ $module->total_review }}) @endif</a></li>
</ul>
<div class="col-md-6">
<div class="float-right">
@for($i = 1; $i <= $module->vote; $i++)
<i class="fa fa-star fa-sm text-yellow"></i>
@endfor
@for($i = $module->vote; $i < 5; $i++)
<i class="fa fa-star-o fa-sm"></i>
@endfor
</div>
</div>
</div>
<div class="nav-wrapper pt-0">
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
<li class="nav-item">
<a class="nav-link mb-sm-2 mb-md-0 active" href="#description" data-toggle="tab" aria-selected="false">
{{ trans('general.description') }}
</a>
</li>
@if ($module->installation)
<li class="nav-item">
<a class="nav-link mb-sm-2 mb-md-0" href="#installation" data-toggle="tab" aria-selected="false">
{{ trans('modules.tab.installation') }}
</a>
</li>
@endif
@if ($module->faq)
<li class="nav-item">
<a class="nav-link mb-sm-2 mb-md-0" href="#faq" data-toggle="tab" aria-selected="false">
{{ trans('modules.tab.faq') }}
</a>
</li>
@endif
@if ($module->changelog)
<li class="nav-item">
<a class="nav-link mb-sm-2 mb-md-0" href="#changelog" data-toggle="tab" aria-selected="false">
{{ trans('modules.tab.changelog') }}
</a>
</li>
@endif
<li class="nav-item">
<a class="nav-link mb-sm-2 mb-md-0" href="#review" data-toggle="tab" aria-selected="false">
{{ trans('modules.tab.reviews') }} @if ($module->total_review) ({{ $module->total_review }}) @endif
</a>
</li>
</ul>
</div>
<div class="card">
<div class="card-body">
<div class="tab-content">
<div class="tab-pane active" id="description">
<div class="tab-pane fade show active" id="description">
{!! $module->description !!}
@if($module->screenshots || $module->video)
<div id="carousel-screenshot-generic" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-inner">
<div class="carousel-item" data-ride="carousel">
@if($module->video)
@php
if (strpos($module->video->link, '=') !== false) {
$code = explode('=', $module->video->link);
$code[1]= str_replace('&list', '', $code[1]);
if (strpos($module->video->link, '=') !== false) {
$code = explode('=', $module->video->link);
$code[1]= str_replace('&list', '', $code[1]);
if (empty($status)) {
$status = 5;
} else {
$status = 1;
}
if (empty($status)) {
$status = 5;
} else {
$status = 1;
}
@endphp
<div class="item @if($status == 5) {{ 'active' }} @endif">
<div class="carousel-item @if($status == 5) {{ 'active' }} @endif">
<iframe width="100%" height="410px" src="https://www.youtube-nocookie.com/embed/{{ $code[1] }}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<div class="image-description text-center">
{{ $module->name }}
</div>
@ -71,82 +105,82 @@
@php } @endphp
@endif
@foreach($module->screenshots as $screenshot)
@php if (empty($status)) { $status = 5; } else { $status = 1; } @endphp
<div class="item @if($status == 5) {{ 'active' }} @endif">
<a href="{{ $screenshot->path_string }}" data-toggle="lightbox" data-gallery="{{ $module->slug}}">
<img class="img-fluid d-block w-100" src="{{ $screenshot->path_string }}" alt="{{ $screenshot->alt_attribute }}">
</a>
@foreach($module->screenshots as $screenshot)
@php if (empty($status)) { $status = 5; } else { $status = 1; } @endphp
<div class="carousel-item @if($status == 5) {{ 'active' }} @endif">
<a href="{{ $screenshot->path_string }}" data-toggle="lightbox" data-gallery="{{ $module->slug}}">
<img class="d-block w-100" src="{{ $screenshot->path_string }}" alt="{{ $screenshot->alt_attribute }}">
</a>
<div class="image-description text-center">
{{ $screenshot->description }}
</div>
</div>
@endforeach
<div class="carousel-navigation-message">
@if (($module->video && (count($module->screenshots) > 1)) || (!$module->video && (count($module->screenshots) > 1)))
<a href="#carousel-screenshot-generic" class="left carousel-control" role="button" data-slide="prev">
<i class="fa fa-chevron-left"></i>
<span class="sr-only">{{ trans('pagination.previous') }}</span>
</a>
<a href="#carousel-screenshot-generic" class="right carousel-control" role="button" data-slide="next">
<i class="fa fa-chevron-right"></i>
<span class="sr-only">{{ trans('pagination.next') }}</span>
</a>
@endif()
</div>
</div>
<div class="image-description text-center">
{{ $screenshot->description }}
</div>
</div>
@endforeach
</div>
</div>
@endif
</div>
@if ($module->installation)
<div class="tab-pane" id="installation">
{!! $module->installation !!}
</div>
@endif
@if ($module->faq)
<div class="tab-pane" id="faq">
{!! $module->faq !!}
</div>
@endif
@if ($module->changelog)
<div class="tab-pane" id="changelog">
{!! $module->changelog !!}
</div>
@endif
<div class="tab-pane" id="review">
<div id="reviews" class="clearfix">
@if ($module->installation)
<div class="tab-pane fade" id="installation">
{!! $module->installation !!}
</div>
@endif
@if ($module->faq)
<div class="tab-pane fade" id="faq">
{!! $module->faq !!}
</div>
@endif
@if ($module->changelog)
<div class="tab-pane fade" id="changelog">
{!! $module->changelog !!}
</div>
@endif
<div class="tab-pane fade" id="review">
<div id="reviews" class="clearfix" v-html="reviews">
@if(!$module->reviews)
{{ trans('modules.reviews.na') }}
<div class="text-center">
<strong>
{{ trans('modules.reviews.na') }}
</strong>
</div>
@endif
</div>
<hr>
@if (!empty($module->review_action))
<a href="{{ $module->review_action }}" class="btn btn-success" target="_blank">
{{ trans('modules.reviews.button.add') }}
</a>
@endif
</div>
</div>
<div class="card-footer pb-0 px-0 mt-4">
<div class="row">
<div class="col-md-12 text-right">
@if (!empty($module->review_action))
<a href="{{ $module->review_action }}" class="btn btn-success" target="_blank">
{{ trans('modules.reviews.button.add') }}
</a>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="content-header no-padding-left">
<h3>{{ trans_choice('general.actions', 1) }}</h3>
</div>
<div class="col-md-4">
<h3>{{ trans_choice('general.actions', 1) }}</h3>
<div class="box box-success">
<div class="box-body">
<div class="text-center">
<div style="margin: 10px; font-size: 24px;">
<div class="card">
<div class="card-body">
<div class="text-center">
<strong>
<div class="text-xl">
@if ($module->price == '0.0000')
{{ trans('modules.free') }}
@else
{!! $module->price_prefix !!}
@if (isset($module->special_price))
<del>{{ $module->price }}</del>
{{ $module->special_price }}
@ -156,297 +190,115 @@
{!! $module->price_suffix !!}
@endif
</div>
</div>
</strong>
</div>
<!-- /.box-body -->
</div>
<div class="box-footer">
@if ($installed)
@permission('delete-modules-item')
<div class="card-footer">
@if ($installed)
@permission('delete-modules-item')
<a href="{{ url('apps/' . $module->slug . '/uninstall') }}" class="btn btn-block btn-danger">{{ trans('modules.button.uninstall') }}</a>
@endpermission
@permission('update-modules-item')
@endpermission
@permission('update-modules-item')
@if ($enable)
<a href="{{ url('apps/' . $module->slug . '/disable') }}" class="btn btn-block btn-warning">{{ trans('modules.button.disable') }}</a>
@else
<a href="{{ url('apps/' . $module->slug . '/enable') }}" class="btn btn-block btn-success">{{ trans('modules.button.enable') }}</a>
@endif
@endpermission
@else
@permission('create-modules-item')
@endpermission
@else
@permission('create-modules-item')
@if ($module->install)
<a href="{{ $module->action_url }}" class="btn btn-success btn-block" id="install-module">
{{ trans('modules.install') }}
</a>
<a href="{{ $module->action_url }}" class="btn btn-success btn-block" id="install-module">
{{ trans('modules.install') }}
</a>
@else
<a href="{{ $module->action_url }}" class="btn btn-success btn-block" target="_blank">
{{ trans('modules.buy_now') }}
</a>
<a href="{{ $module->action_url }}" class="btn btn-success btn-block" target="_blank">
{{ trans('modules.buy_now') }}
</a>
@endif
@endpermission
@endpermission
@endif
@if ($module->purchase_faq)
<div class="text-center mt-3">
<a href="#" @click="onShowFaq" id="button-purchase-faq">{{ trans('modules.tab.faq')}}</a>
</div>
@endif
</div>
</div>
<h3>{{ trans('modules.about') }}</h3>
<div class="card">
<table class="table table-fixed">
<tbody>
@if ($module->vendor_name)
<tr>
<th>{{ trans_choice('general.developers', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/vendors/' . $module->vendor->slug) }}">{{ $module->vendor_name }}</a></td>
</tr>
@endif
@if ($module->purchase_faq)
</br>
<div class="text-center">
<a href="#" id="button-purchase-faq">{{ trans('modules.tab.faq')}}</a>
</div>
@if ($module->version)
<tr>
<th>{{ trans('footer.version') }}</th>
<td class="text-right">{{ $module->version }}</td>
</tr>
@endif
</div>
<!-- /.box-footer -->
</div>
<!-- /.box -->
<div class="content-header no-padding-left">
<h3>{{ trans('modules.about') }}</h3>
</div>
<div class="box box-success">
<div class="box-body">
<table class="table table-striped">
<tbody>
@if ($module->vendor_name)
<tr>
<th>{{ trans_choice('general.developers', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/vendors/' . $module->vendor->slug) }}">{{ $module->vendor_name }}</a></td>
</tr>
@endif
@if ($module->version)
<tr>
<th>{{ trans('footer.version') }}</th>
<td class="text-right">{{ $module->version }}</td>
</tr>
@endif
@if ($module->created_at)
<tr>
<th>{{ trans('modules.added') }}</th>
<td class="text-right">{{ Date::parse($module->created_at)->format($date_format) }}</td>
</tr>
@endif
@if ($module->updated_at)
<tr>
<th>{{ trans('modules.updated') }}</th>
<td class="text-right">{{ Date::parse($module->updated_at)->diffForHumans() }}</td>
</tr>
@endif
@if ($module->compatibility)
<tr>
<th>{{ trans('modules.compatibility') }}</th>
<td class="text-right">{{ $module->compatibility }}</td>
</tr>
@endif
@if ($module->category)
<tr>
<th>{{ trans_choice('general.categories', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/categories/' . $module->category->slug) }}">{{ $module->category->name }}</a></td>
</tr>
@endif
<tr>
<th>{{ trans('modules.documentation') }}</th>
<td class="text-right">
@if ($module->documentation)
<a href="{{ url('apps/docs/' . $module->slug) }}">{{ trans('modules.view') }}</a></td>
@else
{{ trans('general.na') }}
@endif
</tr>
</tbody>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
@if ($module->created_at)
<tr>
<th>{{ trans('modules.added') }}</th>
<td class="text-right long-module-detail">@date($module->created_at)</td>
</tr>
@endif
@if ($module->updated_at)
<tr>
<th>{{ trans('modules.updated') }}</th>
<td class="text-right">{{ Date::parse($module->updated_at)->diffForHumans() }}</td>
</tr>
@endif
@if ($module->compatibility)
<tr>
<th>{{ trans('modules.compatibility') }}</th>
<td class="text-right">{{ $module->compatibility }}</td>
</tr>
@endif
@if ($module->category)
<tr>
<th>{{ trans_choice('general.categories', 1) }}</th>
<td class="text-right"><a href="{{ url('apps/categories/' . $module->category->slug) }}">{{ $module->category->name }}</a></td>
</tr>
@endif
<tr>
<th>{{ trans('modules.documentation') }}</th>
@if ($module->documentation)
<td class="text-right">
<a class="font-weight-bold" href="{{ url('apps/docs/' . $module->slug) }}">{{ trans('modules.view') }}</a>
</td>
@else
<th class="text-right">{{ trans('general.na') }}</th>
@endif
</tr>
</tbody>
</table>
</div>
</div>
</div>
@if ($module->purchase_faq)
{!! $module->purchase_faq !!}
<akaunting-modal :show="faq">
<template #modal-content>
{!! $module->purchase_faq !!}
</template>
</akaunting-modal>
@endif
@endsection
@push('js')
<script src="{{ asset('public/js/lightbox/ekko-lightbox.js') }}"></script>
@endpush
@push('css')
<link rel="stylesheet" href="{{ asset('public/css/ekko-lightbox.css') }}">
@endpush
@push('style')
<style type="text/css">
.nav-tabs-custom img {
display: block;
max-width: 100%;
height: auto;
}
</style>
@endpush
@push('scripts')
@push('scripts_start')
<script type="text/javascript">
var step = new Array();
var total = 0;
var path = '';
$(document).ready(function() {
$('.carousel').carousel({
interval: false,
keyboard: true
});
@if($module->reviews)
getReviews('', '1');
@endif
$('#install-module').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
path = $(this).attr('href');
startInstallation();
$.ajax({
url: '{{ url("apps/steps") }}',
type: 'post',
dataType: 'json',
data: {name: '{{ $module->name }}', version: '{{ $module->version }}'},
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
success: function(json) {
if (json['errorr']) {
$('#progress-bar').addClass('progress-bar-danger');
$('#progress-text').html('<div class="text-danger">' + json['error'] + '</div>');
}
if (json['step']) {
step = json['step'];
total = step.length;
next();
}
}
});
});
});
$(document).on('click', '#reviews .pagination li a', function (e) {
e.preventDefault();
e.stopPropagation();
path = $(this).attr('href');
page = $(this).data('page');
getReviews(path, page);
});
$(document).on('click', '[data-toggle="lightbox"]', function(e) {
e.preventDefault();
$(this).ekkoLightbox();
});
function next() {
data = step.shift();
if (data) {
$('#progress-bar').css('width', (100 - (step.length / total) * 100) + '%');
$('#progress-text').html('<span class="text-info">' + data['text'] + '</span>');
setTimeout(function() {
$.ajax({
url: data.url,
type: 'post',
dataType: 'json',
data: {path: path, version: '{{ $module->version }}'},
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
success: function(json) {
if (json['errors']) {
$('#progress-bar').addClass('progress-bar-danger');
$('#progress-text').html('<div class="text-danger">' + json['errors'] + '</div>');
}
if (json['success']) {
$('#progress-bar').removeClass('progress-bar-danger');
$('#progress-bar').addClass('progress-bar-success');
}
if (json['data']['path']) {
path = json['data']['path'];
}
if (!json['errors'] && !json['installed']) {
next();
}
if (json['installed']) {
window.location = json['installed'];
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
}, 800);
}
}
function startInstallation() {
$('#modal-installation').remove();
modal = '<div class="modal fade" id="modal-installation" style="display: none;">';
modal += ' <div class="modal-dialog">';
modal += ' <div class="modal-content">';
modal += ' <div class="modal-header">';
modal += ' <h4 class="modal-title">{{ trans('modules.installation.header') }}</h4>';
modal += ' </div>';
modal += ' <div class="modal-body">';
modal += ' <p></p>';
modal += ' <p>';
modal += ' <div class="progress">';
modal += ' <div id="progress-bar" class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%">';
modal += ' <span class="sr-only">{{ trans('modules.installation.start', ['module' => $module->name]) }}</span>';
modal += ' </div>';
modal += ' </div>';
modal += ' <div id="progress-text"></div>';
modal += ' </p>';
modal += ' </div>';
modal += ' </div>';
modal += ' </div>';
modal += '</div>';
$('body').append(modal);
$('#modal-installation').modal('show');
}
function getReviews(path, page) {
$.ajax({
url: '{{ url("apps/" . $module->slug . "/reviews") }}',
type: 'post',
dataType: 'json',
data: {path: path, page: page},
headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
beforeSend: function() {
$('#reviews').append('<div id="loading" class="text-center"><i class="fa fa-spinner fa-spin fa-5x checkout-spin"></i></div>');
},
complete : function() {
$('#loading').remove();
},
success: function(json) {
if (json['success']) {
$('#reviews #review-items').remove();
$('#reviews').append(json['html']);
}
}
});
}
@if ($module->purchase_faq)
$(document).on('click', '#button-purchase-faq', function (e) {
$('.app-faq-modal').modal('show');
});
@endif
var app_slug = "{{ $module->slug }}";
</script>
<script src="{{ asset('public/js/modules/item.js?v=' . version('short')) }}"></script>
@endpush

View File

@ -3,40 +3,36 @@
@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> &nbsp;{{ 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-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
<span class="new-button"><a href="{{ route('apps.api-key.create') }}" class="btn btn-white btn-sm"><span class="fa fa-key"></span> &nbsp;{{ trans('modules.api_key') }}</a></span>
<span class="new-button"><a href="{{ route('apps.my.index') }}" class="btn btn-white btn-sm"><span class="fa fa-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
@endsection
@section('content')
@include('partials.modules.bar')
<h2 class="text-primary">{{ trans('modules.my.purchased') }}</h2>
<div class="row">
<div class="col-md-12">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.my.purchased') }}</h3>
</div>
@if ($purchased)
@foreach ($purchased as $module)
@include('partials.modules.item')
@endforeach
@else
@if ($purchased)
@foreach ($purchased as $module)
@include('partials.modules.item')
@endforeach
@else
<div class="col-md-12">
@include('partials.modules.no_apps')
@endif
</div>
<div class="col-md-12">
<div class="content-header no-padding-left">
<h3>{{ trans('modules.my.installed') }}</h3>
</div>
@if ($modules)
@foreach ($modules as $module)
@include('partials.modules.item')
@endforeach
@else
@include('partials.modules.no_apps')
@endif
</div>
@endif
</div>
@endsection
<h2 class="text-primary">{{ trans('modules.my.installed') }}</h2>
<div class="row">
@if ($modules)
@foreach ($modules as $module)
@include('partials.modules.item')
@endforeach
@else
<div class="col-md-12">
@include('partials.modules.no_apps')
</div>
@endif
</div>
@endsection

View File

@ -3,19 +3,14 @@
@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> &nbsp;{{ 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-user"></span> &nbsp;{{ trans('modules.my_apps') }}</a></span>
<span class="new-button"><a href="{{ route('apps.api-key.create') }}" class="btn btn-white btn-sm"><span class="fa fa-key"></span> &nbsp;{{ trans('modules.api_key') }}</a></span>
<span class="new-button"><a href="{{ route('apps.my.index') }}" class="btn btn-white btn-sm"><span class="fa fa-user"></span> &nbsp;{{ 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>{{ $title }}</h3>
</div>
<h2 class="text-primary">{{ $title }}</h2>
<div class="row">
@if ($modules)
@foreach ($modules->data as $module)
@if ($module->status_type == 'pre_sale')
@ -24,19 +19,24 @@
@include('partials.modules.item')
@endif
@endforeach
<div class="col-md-12 no-padding-left">
<ul class="pager nomargin">
@if ($modules->current_page < $modules->last_page)
<li class="next"><a href="{{ url(request()->path()) }}?page={{ $modules->current_page + 1 }}" class="btn btn-default btn-sm">{{ trans('pagination.next') }}</a></li>
@endif
</div>
<div class="row justify-content-center mb-4">
<div class="col-md-6 text-left">
@if ($modules->current_page > 1)
<li class="previous"><a href="{{ url(request()->path()) }}?page={{ $modules->current_page - 1 }}" class="btn btn-default btn-sm">{{ trans('pagination.previous') }}</a></li>
<a href="{{ url(request()->path()) }}?page={{ $modules->current_page - 1 }}" class="btn btn-white btn-sm">{{ trans('pagination.previous') }}</a>
@endif
</ul>
</div>
<div class="col-md-6 text-right">
@if ($modules->current_page < $modules->last_page)
<a href="{{ url(request()->path()) }}?page={{ $modules->current_page + 1 }}" class="btn btn-white btn-sm">{{ trans('pagination.next') }}</a>
@endif
</div>
</div>
@else
@include('partials.modules.no_apps')
<div class="col-md-12">
@include('partials.modules.no_apps')
</div>
@endif
</div>
</div>
@endsection

View File

@ -1,32 +0,0 @@
@extends('layouts.modules')
@section('title', trans('modules.title'))
@section('content')
<div class="box box-success">
{!! Form::open(['url' => 'apps/token', 'files' => true, 'role' => 'form', 'class' => 'form-loading-button']) !!}
<div class="box-body">
<div class="col-md-12">
<div class="form-group required {{ $errors->has('api_token') ? 'has-error' : ''}}">
{!! Form::label('api_token', trans('modules.api_token'), ['class' => 'control-label']) !!}
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-key"></i></span>
{!! Form::text('api_token', setting('general.api_token', null), ['class' => 'form-control', 'required' => 'required', 'placeholder' => trans('general.form.enter', ['field' => trans('modules.api_token')])]) !!}
</div>
{!! $errors->first('api_token', '<p class="help-block">:message</p>') !!}
</div>
<p>
{!! trans('modules.token_link') !!}
</p>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
{{ Form::saveButtons('apps/home') }}
</div>
{!! Form::close() !!}
</div>
@endsection