akaunting 3.0 (the last dance)
This commit is contained in:
@ -0,0 +1,45 @@
|
||||
@props(['module', 'installed', 'enable'])
|
||||
|
||||
@if ($installed)
|
||||
@can('delete-modules-item')
|
||||
<a href="{{ route('apps.app.uninstall', $module->slug) }}" class="bg-red text-white rounded-md text-sm text-center w-1/2 py-2 truncate">
|
||||
{{ trans('modules.button.uninstall') }}
|
||||
</a>
|
||||
@endcan
|
||||
|
||||
@can('update-modules-item')
|
||||
@if ($enable)
|
||||
<a href="{{ route('apps.app.disable', $module->slug) }}" class="bg-orange rounded-md text-white w-1/2 text-center text-sm py-2 truncate">
|
||||
{{ trans('modules.button.disable') }}
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ route('apps.app.enable', $module->slug) }}" class="bg-green rounded-md text-white text-sm text-center w-1/2 py-2 truncate">
|
||||
{{ trans('modules.button.enable') }}
|
||||
</a>
|
||||
@endif
|
||||
@endcan
|
||||
@else
|
||||
@can('create-modules-item')
|
||||
@if ($module->install)
|
||||
@if (! empty($module->isPurchase) && (! empty($module->purchase_type) && $module->purchase_type == 'monthly'))
|
||||
<x-tooltip message="{!! trans('modules.can_not_install', ['app' => $module->name]) !!}" placement="right">
|
||||
<x-button disabled="disabled">
|
||||
{{ trans('modules.install') }}
|
||||
</x-button>
|
||||
</x-tooltip>
|
||||
@else
|
||||
<button type="button"
|
||||
@click="onInstall('{{ $module->action_url }}', '{{ $module->slug }}', '{!! str_replace("'", "\'", $module->name) !!}', '{{ $module->version }}')"
|
||||
class="bg-green hover:bg-green-700 rounded-md text-white text-sm text-center w-full py-2 truncate"
|
||||
id="install-module"
|
||||
>
|
||||
{{ trans('modules.install') }}
|
||||
</button>
|
||||
@endif
|
||||
@else
|
||||
<a href="{{ $module->action_url }}" class="bg-green hover:bg-green-700 rounded-md text-white text-sm text-center w-full py-2 truncate" target="_blank">
|
||||
{{ trans('modules.use_app') }}
|
||||
</a>
|
||||
@endif
|
||||
@endcan
|
||||
@endif
|
@ -0,0 +1,5 @@
|
||||
@props(['module'])
|
||||
|
||||
<div class="font-thin text-sm">
|
||||
{!! $module->changelog !!}
|
||||
</div>
|
@ -0,0 +1,7 @@
|
||||
@props(['module'])
|
||||
|
||||
<div class="font-thin text-sm">
|
||||
<div class="app-documentation flex flex-col gap-4 py-4">
|
||||
{!! $module->description !!}
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,7 @@
|
||||
@props(['module'])
|
||||
|
||||
<div class="font-thin text-sm">
|
||||
<div class="app-documentation flex flex-col gap-4 py-4">
|
||||
{!! $module->documentation->body !!}
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,29 @@
|
||||
@props(['module'])
|
||||
|
||||
<div class="flex flex-col gap-20">
|
||||
@foreach ($module->call_to_actions as $cta)
|
||||
<div @class([
|
||||
'flex flex-col',
|
||||
'lg:flex-row-reverse' => $cta->position == 'left',
|
||||
'lg:flex-row' => $cta->position != 'left',
|
||||
'justify-between gap-12'
|
||||
])
|
||||
>
|
||||
<div class="w-full lg:w-1/2 flex flex-col gap-6 justify-center">
|
||||
<h2 class="font-bold text-3xl">
|
||||
{{ $cta->title }}
|
||||
</h2>
|
||||
|
||||
<div class="flex flex-col gap-4 divide-y">
|
||||
<div class="font-thin text-sm leading-6 tracking-widest">
|
||||
{{ $cta->description }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full lg:w-1/2">
|
||||
<img src="{{ $cta->thumb->path_string }}" alt="{{ $cta->thumb->alt_attribute }}" />
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
@ -0,0 +1,5 @@
|
||||
@props(['module'])
|
||||
|
||||
<div class="font-thin text-sm">
|
||||
{!! $module->installation !!}
|
||||
</div>
|
@ -0,0 +1,59 @@
|
||||
@props(['module'])
|
||||
|
||||
@if ($module->price != '0.0000')
|
||||
<div class="flex gap-2 items-baseline">
|
||||
{!! $module->price_prefix !!}
|
||||
|
||||
<div x-show="price_type == true">
|
||||
@if (! empty($module->is_discount))
|
||||
<del class="text-red">
|
||||
{!! $module->yearly_per_monthly_price !!}
|
||||
</del>
|
||||
|
||||
<span class="text-5xl font-bold text-purple">
|
||||
{!! $module->yearly_per_monthly_special_price !!}
|
||||
</span>
|
||||
@else
|
||||
<span class="text-5xl font-bold text-purple">
|
||||
{!! $module->yearly_per_monthly_price !!}
|
||||
</span>
|
||||
@endif
|
||||
|
||||
<div class="text-center text-sm mt-3 mb--2">
|
||||
<span style="height: 18px;display: block;"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div x-show="price_type == false">
|
||||
@if (! empty($module->is_discount))
|
||||
<del class="text-red">
|
||||
{!! $module->monthly_price !!}
|
||||
</del>
|
||||
|
||||
<span class="text-5xl font-bold text-purple">
|
||||
{!! $module->monthly_special_price !!}
|
||||
</span>
|
||||
@else
|
||||
<span class="text-5xl font-bold text-purple">
|
||||
{!! $module->monthly_price !!}
|
||||
</span>
|
||||
@endif
|
||||
|
||||
<div class="text-center text-sm mt-3 mb--2">
|
||||
<span style="font-size: 12px;">
|
||||
<span class="text-danger">*</span> {!! trans('modules.information_monthly') !!}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! $module->price_suffix !!}
|
||||
|
||||
<span class="font-thin">
|
||||
{{ trans('modules.per_month') }}
|
||||
</span>
|
||||
</div>
|
||||
@else
|
||||
<span class="text-4xl font-bold text-purple">
|
||||
{{ trans('modules.free') }}
|
||||
</span>
|
||||
@endif
|
@ -0,0 +1,36 @@
|
||||
@props(['module'])
|
||||
|
||||
@php
|
||||
$releases = $module->app_releases;
|
||||
@endphp
|
||||
|
||||
<div id="releases" class="clearfix js-releases-content" v-if="releases.status" v-html="releases.html"></div>
|
||||
|
||||
<div id="releases" class="clearfix js-releases-content" v-else>
|
||||
<x-layouts.modules.releases :releases="$releases" />
|
||||
</div>
|
||||
|
||||
@if (! empty($releases->current_page != $releases->last_page))
|
||||
@stack('pagination_start')
|
||||
|
||||
<div class="w-full flex flex-row justify-evenly my-2" v-if="releases.pagination.last_page != releases.pagination.current_page">
|
||||
<button
|
||||
type="button"
|
||||
id="releases-load-more"
|
||||
:disabled="loadMoreLoading"
|
||||
@click="onModuleLoadMore('releases')"
|
||||
class="w-48 bg-green m-auto block whitespace-nowrap px-4 py-2 border border-transparent rounded-md shadow-sm text-base font-medium text-white text-center js-learn-more js-button-modal-submit hover:bg-green-700 disabled:bg-green-300"
|
||||
>
|
||||
<i v-if="loadMoreLoading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
||||
<span :class="[{'opacity-0': loadMoreLoading}]">
|
||||
{{ trans('modules.see_more') }}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@stack('pagination_end')
|
||||
@else
|
||||
<div class="flex">
|
||||
<small>{{ trans('general.no_records') }}</small>
|
||||
</div>
|
||||
@endif
|
@ -0,0 +1,36 @@
|
||||
@props(['module'])
|
||||
|
||||
@php
|
||||
$reviews = $module->app_reviews;
|
||||
@endphp
|
||||
|
||||
<div id="review" class="clearfix js-reviews-content" v-if="reviews.status" v-html="reviews.html"></div>
|
||||
|
||||
<div id="review" class="clearfix js-reviews-content" v-else>
|
||||
<x-layouts.modules.reviews :reviews="$reviews" />
|
||||
</div>
|
||||
|
||||
@if (! empty($reviews->current_page != $reviews->last_page))
|
||||
@stack('pagination_start')
|
||||
|
||||
<div class="w-full flex flex-row justify-evenly my-2" v-if="reviews.pagination.last_page != reviews.pagination.current_page">
|
||||
<button
|
||||
type="button"
|
||||
id="review-load-more"
|
||||
:disabled="loadMoreLoading"
|
||||
@click="onModuleLoadMore('reviews')"
|
||||
class="w-48 bg-green m-auto block whitespace-nowrap px-4 py-2 border border-transparent rounded-md shadow-sm text-base font-medium text-white text-center js-learn-more js-button-modal-submit hover:bg-green-700 disabled:bg-green-300"
|
||||
>
|
||||
<i v-if="loadMoreLoading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
||||
<span :class="[{'opacity-0': loadMoreLoading}]">
|
||||
{{ trans('modules.see_more') }}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@stack('pagination_end')
|
||||
@else
|
||||
<div class="flex">
|
||||
<small>{{ trans('general.no_records') }}</small>
|
||||
</div>
|
||||
@endif
|
@ -0,0 +1,5 @@
|
||||
@props(['module'])
|
||||
|
||||
<div class="relative">
|
||||
<akaunting-slider :screenshots="{{ json_encode($module->screenshots) }}" :arrow="true" :slider-view="5"></akaunting-slider>
|
||||
</div>
|
@ -0,0 +1,23 @@
|
||||
<x-form>
|
||||
<div class="lg:absolute lg:ltr:right-0 lg:rtl:left-0 top-4">
|
||||
<label for="priceToggle" class="flex items-center cursor-pointer" x-on:click="price_type = ! price_type">
|
||||
<div class="relative">
|
||||
<input type="checkbox" id="priceToggle" class="sr-only" x-model="price_type">
|
||||
|
||||
<div class="bg-purple-300 w-24 h-7 rounded-full">
|
||||
<span id="apps-toggle-monthly" class="monthly-badge text-xs text-white float-left ml-3 mt-1.5" x-show="price_type == true">
|
||||
{{ trans('general.monthly') }}
|
||||
</span>
|
||||
|
||||
<span id="apps-toggle-yearly" class="yearly-badge text-xs text-white float-right mr-3 mt-1.5" x-show="price_type == false">
|
||||
{{ trans('general.yearly') }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="dot absolute left-1 top-1 bg-white w-5 h-5 rounded-full transition"
|
||||
x-bind:style="price_type == true ? 'transform: translateX(333%)' : ' transform: translateX(0) '"
|
||||
></div>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
</x-form>
|
Reference in New Issue
Block a user