Update composer and move themes to under views
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Product List
|
||||
@endsection
|
||||
@section('page_title')
|
||||
Product List
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
Product List
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="col-md-12">
|
||||
<table class="table table-sm table-striped" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Service</th>
|
||||
<th>Product</th>
|
||||
<th>Monthly</th>
|
||||
<th>Cost</th>
|
||||
<th>Traffic</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach (\App\Models\Service::active()->get() as $o)
|
||||
<tr>
|
||||
<td><a href="{{ url('u/service',[$o->id]) }}">{{ $o->id }}</a></td>
|
||||
<td>{{ $o->sname }}</td>
|
||||
<td>{{ $o->product->name }}</td>
|
||||
<td>{{ number_format($o->billing_monthly_price,2) }}</td>
|
||||
<td>{{ $o->product->type ? number_format($o->product->type->cost,2) : 'NO TYPE' }}</td>
|
||||
<td>{{ $o->product->type ? $o->product->type->allowance_string() : '-' }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','datatables-css')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','datatables-js')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','datatables-responsive-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','datatables-responsive-js')
|
||||
@css('//cdn.datatables.net/rowgroup/1.1.0/css/rowGroup.dataTables.min.css','datatables-rowgroup-css')
|
||||
@js('//cdn.datatables.net/rowgroup/1.1.0/js/dataTables.rowGroup.min.js','datatables-rowgroup-js')
|
||||
@css('//cdn.datatables.net/buttons/1.5.6/css/buttons.dataTables.min.css','datatables-button-css')
|
||||
@js('//cdn.datatables.net/buttons/1.5.6/js/dataTables.buttons.min.js','datatables-button-js')
|
||||
@css('//cdn.datatables.net/fixedheader/3.1.5/css/fixedHeader.dataTables.min.css','datatables-fixed-css')
|
||||
@js('//cdn.datatables.net/fixedheader/3.1.5/js/dataTables.fixedHeader.min.js','datatables-fixed-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','datatables-bootstrap4-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','datatables-bootstrap4-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','datatables-bootstrap4-css')
|
||||
@js('//cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js','jszip')
|
||||
@js('//cdn.datatables.net/buttons/1.5.6/js/buttons.html5.min.js','datatables-buttons-html5')
|
||||
|
||||
<style>
|
||||
tr.odd td:first-child,
|
||||
tr.even td:first-child {
|
||||
padding-left: 3em;
|
||||
}
|
||||
table.dataTable tr.dtrg-group.dtrg-level-1 td {
|
||||
background-color: #e0e0e0;
|
||||
color: #4c110f;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#table').DataTable({
|
||||
//oSearch: { sSearch: searchString ? decodeURIComponent(searchString) : '' },
|
||||
aLengthMenu: [
|
||||
[25, 50, 100, 200, -1],
|
||||
[25, 50, 100, 200, "All"]
|
||||
],
|
||||
paging: true,
|
||||
pageLength: 25,
|
||||
lengthChange: true,
|
||||
searching: true,
|
||||
ordering: true,
|
||||
info: true,
|
||||
autoWidth: false,
|
||||
fixedHeader: true,
|
||||
order: [
|
||||
[2,'asc'],
|
||||
[1,'asc'],
|
||||
],
|
||||
rowGroup: {
|
||||
dataSrc: [2],
|
||||
},
|
||||
columnDefs: [
|
||||
{
|
||||
targets: [2],
|
||||
visible: false,
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
71
resources/views/theme/backend/adminlte/a/service.blade.php
Normal file
71
resources/views/theme/backend/adminlte/a/service.blade.php
Normal file
@@ -0,0 +1,71 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Service #{{ $o->id }}
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
Service #
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
{{ $o->service_id }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="col-md-12">
|
||||
<div class="box box-primary">
|
||||
<form role="form" method="POST" enctype="multipart/form-data">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Service Information</h3>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
<div class="col-md-3">
|
||||
@switch($o->order_status)
|
||||
@case('ORDER-SUBMIT')
|
||||
@include('a.widgets.service.order.submit')
|
||||
@break
|
||||
|
||||
@case('ORDER-HOLD')
|
||||
@case('ORDER-SENT')
|
||||
@case('ORDERED')
|
||||
@include('a.widgets.service.order.sent')
|
||||
@break
|
||||
|
||||
@default
|
||||
@include('u.widgets.service.info')
|
||||
@endswitch
|
||||
</div>
|
||||
|
||||
@if($o->order_status == 'ORDER-REQUEST')
|
||||
<div class="col-md-3">
|
||||
@include('a.widgets.service_order-request')
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="box-footer">
|
||||
@switch($o->order_status)
|
||||
@case('ORDER-SUBMIT')
|
||||
<button type="submit" class="btn btn-info btn-danger" name="action" value="reject">Reject</button>
|
||||
<button type="submit" class="btn btn-info btn-danger" name="action" value="hold">Hold</button>
|
||||
<button type="submit" class="btn btn-info btn-warning" name="action" value="approve">Approve</button>
|
||||
@break;
|
||||
|
||||
@case('ORDER-HOLD')
|
||||
<button type="submit" class="btn btn-info btn-warning" name="action" value="release">Release</button>
|
||||
@case('ORDER-SENT')
|
||||
@case('ORDERED')
|
||||
<button type="submit" class="btn btn-info btn-danger" name="action" value="update_reference">Update</button>
|
||||
@break;
|
||||
|
||||
@endswitch
|
||||
|
||||
{{-- <button type="submit" class="btn btn-info" name="action" value="save">Back</button> --}}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,32 @@
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Supplier</th><td>{{ $o->product->type ? $o->product->type->supplier->name : 'Supplier Unknown' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Supplier Product</th><td>#{{ $o->product_id }}: {{ $o->product->type ? $o->product->type->product->product_id : 'Product Unknown' }}</td>
|
||||
</tr>
|
||||
@if($o->product->type)
|
||||
<tr>
|
||||
<!-- @todo Tax shouldnt be hard coded -->
|
||||
<th>Supplier Setup</th><td>${{ number_format($o->product->type->product->setup_cost*1.1,2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Supplier Cost</th><td>${{ number_format($o->product->type->cost,2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Supplier Contract</th><td>{{ $o->product->type->product->contract_term }} months</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<!-- @todo Tax shouldnt be hard coded -->
|
||||
<th>Supplier Min Cost</th><td>${{ number_format((($x=$o->product->type->product)->setup_cost+$x->base_cost*$x->contract_term)*1.1,2) }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Price</th><td>${{ number_format($o->billing_monthly_price,2) }} <small>(${{ number_format($o->billing_monthly_price*12,2) }} Annually)</small></td>
|
||||
</tr>
|
||||
@if($o->product->type AND $o->product->type->cost)
|
||||
<tr>
|
||||
<th>Markup</th><td>{{ number_format(($o->billing_monthly_price/$o->product->type->cost-1)*100,2) }}%</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
87
resources/views/theme/backend/adminlte/a/setup.blade.php
Normal file
87
resources/views/theme/backend/adminlte/a/setup.blade.php
Normal file
@@ -0,0 +1,87 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Setup
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
{{ $so->site_name }}
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
Setup
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="col-md-9">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Setup Configuration</h3>
|
||||
</div>
|
||||
|
||||
<form role="form" method="POST" enctype="multipart/form-data">
|
||||
{{ csrf_field() }}
|
||||
|
||||
@if(session()->has('success'))
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="callout callout-success">
|
||||
<p>{{ session()->get('success') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="callout callout-danger">
|
||||
<p>Some validation errors to look at.</p>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="nav-tabs-custom">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#tab-site" data-toggle="tab">Site Details</a></li>
|
||||
<li><a href="#tab-other" data-toggle="tab">Other</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="box-body">
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="tab-site">
|
||||
@include('a.widgets.setup_site_details')
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab-other">
|
||||
Other Details
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-footer">
|
||||
<button type="submit" class="btn btn-info">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
@js('/js/jqBootstrapValidation.js','jq-validation','jquery')
|
||||
<script>
|
||||
$(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation(); } );
|
||||
</script>
|
||||
<style>
|
||||
span.help-block > ul {
|
||||
color: #9d0000;
|
||||
padding-left: 5px;
|
||||
list-style-type: none;
|
||||
}
|
||||
</style>
|
||||
@append
|
@@ -0,0 +1,52 @@
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">New Order Sent to Supplier</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">
|
||||
<i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove">
|
||||
<i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
<table class="table table-condensed" width="100%">
|
||||
<tr>
|
||||
<th>Account</th><td>{{ $o->account->company }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Product</th><td>{{ $o->product->name }}: {{ $o->name }}</td>
|
||||
</tr>
|
||||
@if($o->date_last_invoice)
|
||||
<tr>
|
||||
<th>Last Invoice</th><td>{{ $o->date_last_invoice }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Paid Until</th><td>{{ 'TBA' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Next Invoice</th><td>{{ $o->date_next_invoice }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Ordered</th><td>{{ $o->date_orig->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@if ($o->date_last)
|
||||
<tr>
|
||||
<th>Update</th><td>{{ $o->date_last->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Order Details</th><td>{!! $o->order_info_details !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Reference:</th><td><input type="text" name="notes" class="" value="{{ \Illuminate\Support\Arr::get($o->order_info,'order_reference','') }}"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{--
|
||||
<div class="box-footer">
|
||||
</div>
|
||||
--}}
|
||||
</div>
|
@@ -0,0 +1,52 @@
|
||||
<div class="box">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">New Order Submitted</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">
|
||||
<i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove">
|
||||
<i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
<table class="table table-condensed" width="100%">
|
||||
<tr>
|
||||
<th>Account</th><td>{{ $o->account->company }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Product</th><td>{{ $o->product->name }}: {{ $o->name }}</td>
|
||||
</tr>
|
||||
@if($o->date_last_invoice)
|
||||
<tr>
|
||||
<th>Last Invoice</th><td>{{ $o->date_last_invoice }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Paid Until</th><td>{{ 'TBA' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Next Invoice</th><td>{{ $o->date_next_invoice }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Ordered</th><td>{{ $o->date_orig->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@if ($o->date_last)
|
||||
<tr>
|
||||
<th>Update</th><td>{{ $o->date_last->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Order Details</th><td>{!! $o->order_info_details !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Save/Reject Note:</th><td><input type="text" name="notes" class=""></td>
|
||||
</th>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{--
|
||||
<div class="box-footer">
|
||||
</div>
|
||||
--}}
|
||||
</div>
|
@@ -0,0 +1,66 @@
|
||||
<div class="form-group col-sm-12 {{ $errors->has('site_name') ? 'has-error' : '' }}">
|
||||
<label for="site_name">Site Name</label>
|
||||
<input type="text" class="form-control" id="site_name" name="site_name" placeholder="Site Name" value="{{ old('site_name',$so->site_name) }}">
|
||||
<span class="help-block">{{ $errors->first('site_name') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-9 {{ $errors->has('site_description') ? 'has-error' : '' }}">
|
||||
<label for="site_description">Site Description</label>
|
||||
<textarea class="form-control" id="site_description" name="site_description" placeholder="Site Description" rows="3">{{ old('site_description',$so->site_description) }}</textarea>
|
||||
<span class="help-block">{{ $errors->first('site_description') }}</span>
|
||||
</div>
|
||||
<div class="form-group col-sm-3 {{ $errors->has('site_logo') ? 'has-error' : '' }}">
|
||||
<label for="site_logo">Site Logo</label>
|
||||
<input type="file" class="form-control" id="site_logo" name="site_logo"><img class="col-sm-12" src="{{ asset($so->site_logo) }}">
|
||||
<span class="help-block">{{ $errors->first('site_logo') }}</span>
|
||||
</div>
|
||||
|
||||
<fieldset class="form-group col-sm-12">
|
||||
<label>Site Address</label>
|
||||
|
||||
<div class="form-group col-sm-12 {{ $errors->has('site_address1') ? 'has-error' : '' }}">
|
||||
<label for="site_address">Site Address Lines</label>
|
||||
<input type="text" class="form-control" id="site_address1" name="site_address1" placeholder="Address1" value="{{ old('site_address1',$so->site_address1) }}">
|
||||
<input type="text" class="form-control" id="site_address2" name="site_address2" placeholder="Address2" value="{{ old('site_address2',$so->site_address2) }}">
|
||||
<span class="help-block">{{ $errors->first('site_address1') }} {{ $errors->first('site_address2') }}</span>
|
||||
</div>
|
||||
<div class="form-group col-sm-6 {{ $errors->has('site_city') ? 'has-error' : '' }}">
|
||||
<label for="site_address">Site City</label>
|
||||
<input type="text" class="form-control" id="site_city" name="site_city" placeholder="City" value="{{ old('site_city',$so->site_city) }}">
|
||||
<span class="help-block">{{ $errors->first('site_city') }}</span>
|
||||
</div>
|
||||
<div class="form-group col-sm-3 {{ $errors->has('site_state') ? 'has-error' : '' }}">
|
||||
<label for="site_address">Site State</label>
|
||||
<input type="text" class="form-control col-sm-3" id="site_state" name="site_state" placeholder="State" value="{{ old('site_state',$so->site_state) }}">
|
||||
<span class="help-block">{{ $errors->first('site_state') }}</span>
|
||||
</div>
|
||||
<div class="form-group col-sm-3 {{ $errors->has('site_postcode') ? 'has-error' : '' }}">
|
||||
<label for="site_address">Site Post Code</label>
|
||||
<input type="text" class="form-control col-sm-3" id="site_postcode" name="site_postcode" placeholder="Post Code" value="{{ old('site_postcode',$so->site_postcode) }}">
|
||||
<span class="help-block">{{ $errors->first('site_postcode') }}</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="form-group col-sm-6 {{ $errors->has('site_phone') ? 'has-error' : '' }}">
|
||||
<label for="site_phone">Site Phone</label>
|
||||
<input class="form-control" id="site_phone" name="site_phone" placeholder="Site Phone" value="{{ old('site_phone',$so->site_phone) }}">
|
||||
<span class="help-block">{{ $errors->first('site_phone') }}</span>
|
||||
</div>
|
||||
<div class="form-group col-sm-6 {{ $errors->has('site_fax') ? 'has-error' : '' }}">
|
||||
<label for="site_fax">Site Fax</label>
|
||||
<input class="form-control" id="site_fax" name="site_fax" placeholder="Site Fax" value="{{ old('site_fax',$so->site_fax) }}">
|
||||
<span class="help-block">{{ $errors->first('site_fax') }}</span>
|
||||
</div>
|
||||
<div class="control-group form-group col-sm-6 {{ $errors->has('site_email') ? 'has-error' : '' }}">
|
||||
<label for="site_email">Site Email</label>
|
||||
<input type="email" class="form-control" id="site_email" name="site_email" placeholder="Site Email" value="{{ old('site_email',$so->site_email) }}">
|
||||
<span class="help-block">{{ $errors->first('site_email') }}</span>
|
||||
</div>
|
||||
<div class="control-group form-group col-sm-6 {{ $errors->has('site_tax') ? 'has-error' : '' }}">
|
||||
<label for="site_tax">Site Tax Number</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">ABN</span>
|
||||
<input type="number" class="form-control" id="site_tax" name="site_tax" minlength="10" maxlength="10" placeholder="Site Tax" value="{{ old('site_tax',$so->site_tax) }}">
|
||||
</div>
|
||||
<span class="help-block">{{ $errors->first('site_tax') }}</span>
|
||||
</div>
|
@@ -0,0 +1,80 @@
|
||||
@extends('adminlte::layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Link Account
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="login-box">
|
||||
<div class="login-logo">
|
||||
<a>{!! config('app.name_html_long') !!}</a>
|
||||
</div>
|
||||
|
||||
<div class="alert alert-success">
|
||||
<strong>NOTE:</strong> Link your account.<br><br>
|
||||
<ul>
|
||||
<li>An email has been sent to you with a token, please use those details here:</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@if (count($errors) > 0)
|
||||
<div class="alert alert-danger">
|
||||
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- /.login-logo -->
|
||||
<div class="card">
|
||||
<div class="card-body login-card-body">
|
||||
<p class="login-box-msg">Link your account</p>
|
||||
|
||||
<form method="post" action="{{ url('/auth/'.$provider.'/linkcomplete') }}">
|
||||
{{ csrf_field() }}
|
||||
<input type="hidden" name="oauthid" value="{{ $oauthid }}">
|
||||
|
||||
<div class="input-group mb-3">
|
||||
<input type="email" name="email" class="form-control" placeholder="Email">
|
||||
<div class="input-group-append">
|
||||
<span class="fa fa-envelope input-group-text"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input-group mb-3">
|
||||
<input type="password" name="token" class="form-control" placeholder="Token">
|
||||
<div class="input-group-append">
|
||||
<span class="fa fa-lock input-group-text"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-8">
|
||||
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
<div class="col-4">
|
||||
<button type="submit" name="submit" class="btn btn-primary btn-block btn-flat">Link</button>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<p class="mb-1">
|
||||
<a name="reset" href="{{ url('/password/reset') }}">{{ trans('adminlte_lang::message.forgotpassword') }}</a>
|
||||
</p>
|
||||
|
||||
@isset($register)
|
||||
<p class="mb-0">
|
||||
<a href="register.html" class="text-center">Register a new account</a>
|
||||
</p>
|
||||
@endisset
|
||||
</div>
|
||||
<!-- /.login-card-body -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.login-box -->
|
||||
@endsection
|
19
resources/views/theme/backend/adminlte/auth/terms.blade.php
Normal file
19
resources/views/theme/backend/adminlte/auth/terms.blade.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<!-- Terms and conditions modal -->
|
||||
<div class="modal fade" id="termsModal" tabindex="-1" role="dialog" aria-labelledby="Terms and conditions" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">Terms and conditions</h3>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>Lorem ipsum dolor sit amet, veniam numquam has te. No suas nonumes recusabo mea, est ut graeci definitiones. His ne melius vituperata scriptorem, cum paulo copiosae conclusionemque at. Facer inermis ius in, ad brute nominati referrentur vis. Dicat erant sit ex. Phaedrum imperdiet scribentur vix no, ad latine similique forensibus vel.</p>
|
||||
<p>Dolore populo vivendum vis eu, mei quaestio liberavisse ex. Electram necessitatibus ut vel, quo at probatus oportere, molestie conclusionemque pri cu. Brute augue tincidunt vim id, ne munere fierent rationibus mei. Ut pro volutpat praesent qualisque, an iisque scripta intellegebat eam.</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-primary" data-dismiss="modal">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,45 @@
|
||||
@if ($o->accounts->count() > 2)
|
||||
<div class="col-sm-2">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-primary elevation-1"><i class="fa fa-user"></i></span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Linked Accounts</span>
|
||||
<span class="info-box-number">{{ number_format($o->accounts->count()) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="col-sm-3">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-info"><i class="fa fa-clone"></i></span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Active Services</span>
|
||||
<span class="info-box-number">{{ $o->services_active->count() }} <small>/{{ $o->services->count() }}</small></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-danger"><i class="fa fa-dollar"></i></span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Account Balance</span>
|
||||
<span class="info-box-number"><small>$</small> {{ number_format($o->invoices_due->sum('due'),2) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-dark"><i class="fa fa-hashtag"></i></span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Invoices Due</span>
|
||||
<span class="info-box-number">{{ $o->invoices_due->count() }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,65 @@
|
||||
<div class="card card-dark card-outline">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">Invoices Due</h4>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($o->invoices_due->count())
|
||||
<table class="table table-striped table-hover" id="invoices" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Invoice</th>
|
||||
<th>Total</th>
|
||||
<th>Due</th>
|
||||
<th>Date Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Count {{ $o->invoices_due->count() }}</th>
|
||||
{{-- @todo Number format should configured by currency --}}
|
||||
<th class="right">{{ number_format($o->invoices_due->sum('total'),2) }}</th>
|
||||
<th class="right">{{ number_format($o->invoices_due->sum('due'),2) }}</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@else
|
||||
<p>No invoices due</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#invoices').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/u/invoices/{{ $o->id }}"
|
||||
},
|
||||
columns: [
|
||||
{ data: "invoice_id_url" },
|
||||
{ data: "total" },
|
||||
{ data: "due" },
|
||||
{ data: "date_due" }
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Invoices Due"
|
||||
},
|
||||
order: [3, 'asc']
|
||||
});
|
||||
|
||||
$('#invoices tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,47 @@
|
||||
<table class="table table-bordered w-100" id="invoices">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-right">#</th>
|
||||
<th class="text-right">Issued</th>
|
||||
<th class="text-right">Due</th>
|
||||
<th class="text-right">Total</th>
|
||||
<th class="text-right">Payments</th>
|
||||
<th class="text-right">Outstanding</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($o->invoices as $io)
|
||||
<tr>
|
||||
<td class="text-right"><a href="{{ url('u/invoice',$io->id) }}">{{ $io->id }}</a></td>
|
||||
<td class="text-right">{{ $io->date_orig->format('Y-m-d') }}</td>
|
||||
<td class="text-right">{{ $io->due_date->format('Y-m-d') }}</td>
|
||||
<td class="text-right">${{ number_format($io->total,2) }}</td>
|
||||
<td class="text-right">${{ number_format($io->paid,2) }}</td>
|
||||
<td class="text-right">${{ number_format($io->due,2) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','jq-dt-r-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','jq-dt-r-js','jq-dt-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#invoices').DataTable( {
|
||||
responsive: true,
|
||||
order: [1, 'desc']
|
||||
});
|
||||
|
||||
$('#invoices tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,59 @@
|
||||
<div class="card card-primary card-outline">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">Payment History</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-tool" data-widget="remove"><i class="fa fa-remove"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($o->payment_history->count())
|
||||
<table class="table table-bordered table-striped table-hover" id="payments" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Date</th>
|
||||
<th>Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@else
|
||||
<p>No payments recorded</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#payments').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/u/payments/{{ $o->id }}"
|
||||
},
|
||||
columns: [
|
||||
{ data: "payment_id_url" },
|
||||
{ data: "date_paid" },
|
||||
{ data: "total" },
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Payments On File"
|
||||
},
|
||||
order: [0, 'desc']
|
||||
});
|
||||
|
||||
$('#payments tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,80 @@
|
||||
<div class="card card-info card-outline">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">Services</h4>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($o->services_active->count())
|
||||
<table class="table table-striped table-hover" id="services" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Category</th>
|
||||
<th>Service</th>
|
||||
<th>Product</th>
|
||||
<th>Status</th>
|
||||
<th>Next Invoice</th>
|
||||
{{-- <th>Amount</th> --}}
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Count {{ $o->services_active->count() }}</th>
|
||||
<th colspan="5"> </th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
@else
|
||||
<p>No services active</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
|
||||
@css('//cdn.datatables.net/rowgroup/1.0.2/css/rowGroup.dataTables.min.css','dt-rowgroup-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/rowgroup/1.0.2/js/dataTables.rowGroup.min.js','dt-rowgroup-js','jq-dt-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#services').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/u/services/{{ $o->id }}"
|
||||
},
|
||||
columns: [
|
||||
{ data: "service_id_url" },
|
||||
{ data: "product_category" },
|
||||
{ data: "name_short" },
|
||||
{ data: "product_name" },
|
||||
{ data: "status" },
|
||||
{ data: "next_invoice" },
|
||||
{{-- { data: "billing_price", render: $.fn.dataTable.render.number(',','.',2,'$') } --}}
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Active Services"
|
||||
},
|
||||
order: [5, 'asc'],
|
||||
rowGroup: {
|
||||
dataSrc: 'product_name',
|
||||
startRender: null,
|
||||
endRender: function ( rows, group ) {
|
||||
return rows.count()+' x ' + group;
|
||||
},
|
||||
},
|
||||
orderFixed: [3, 'asc']
|
||||
});
|
||||
|
||||
$('#services tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,38 @@
|
||||
<div class="card card-primary card-outline">
|
||||
<div class="card-header">
|
||||
<strong>Service Information</strong>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table class="table table-borderless">
|
||||
<tr>
|
||||
<th>Account</th>
|
||||
<td>{{ $o->account->name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Active</th>
|
||||
<td>{!! $o->status_html !!}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Billing Period</th>
|
||||
<td>{{ $o->billing_period }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Billing Amount</th>
|
||||
<td>${{ number_format($o->billing_price,2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Invoiced To</th>
|
||||
<td>{{ $o->invoice_to ? $o->invoice_to->format('Y-m-d') : '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Next Invoice</th>
|
||||
<td>{{ $o->invoice_next ? $o->invoice_next->format('Y-m-d') : '' }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Current Invoices Due</th>
|
||||
<td>${{ number_format($o->invoices_due()->sum('due'),2) }} <small>({{ $o->invoices_due()->count() }})</small></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,13 @@
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th colspan="3">{{ $o->name }}</th><th class="text-right">${{ number_format(($x=$o->next_invoice_items(TRUE))->sum('total'),2) }}</th>
|
||||
</tr>
|
||||
|
||||
@foreach ($x as $io)
|
||||
<tr>
|
||||
<td class="pt-0 pb-1"> </td>
|
||||
<td class="pt-0 pb-1">{{ $io->item_type_name }}</td>
|
||||
<td class="text-right pt-0 pb-1">${{ number_format($io->total,2) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
@@ -0,0 +1,68 @@
|
||||
<div class="card card-success card-outline">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">Accounts</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-tool" data-widget="remove"><i class="fa fa-remove"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($user->all_accounts()->count())
|
||||
<table class="table table-striped table-hover" id="accounts" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Profile</th>
|
||||
<th>Name</th>
|
||||
<th>Active</th>
|
||||
<th>Services</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Count {{ $user->all_accounts()->count() }}</th>
|
||||
<th colspan="3"> </th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@else
|
||||
<p>No Accounts Active</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#accounts').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/r/accounts"
|
||||
},
|
||||
columns: [
|
||||
{ data: "switch_url" },
|
||||
{ data: "name" },
|
||||
{ data: "active_display" },
|
||||
{ data: "services_count_html" }
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Active Clients"
|
||||
},
|
||||
order: [1, 'asc'],
|
||||
pageLength: 25
|
||||
});
|
||||
|
||||
$('#accounts tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
69
resources/views/theme/backend/adminlte/r/agents.blade.php
Normal file
69
resources/views/theme/backend/adminlte/r/agents.blade.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<div class="box box-warning">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">Agents</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">
|
||||
<i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove">
|
||||
<i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
@if ($user->all_agents()->count())
|
||||
<table class="table table-bordered table-striped table-hover" id="agents" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Level</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Count {{ $user->all_agents()->count() }}</th>
|
||||
<th colspan="2"> </th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@else
|
||||
<p>No Agents Active</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('https://cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css')
|
||||
@css('https://cdn.datatables.net/rowgroup/1.0.2/css/rowGroup.dataTables.min.css')
|
||||
@js('https://cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js')
|
||||
@js('https://cdn.datatables.net/rowgroup/1.0.2/js/dataTables.rowGroup.min.js')
|
||||
|
||||
<style>
|
||||
table.dataTable td {
|
||||
outline: none;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#agents').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/r/agents"
|
||||
},
|
||||
columns: [
|
||||
{ data: "user_id_url" },
|
||||
{ data: "surfirstname" },
|
||||
{ data: "level" }
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Active Agents"
|
||||
},
|
||||
order: [1, 'asc']
|
||||
});
|
||||
|
||||
$('#agents tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
75
resources/views/theme/backend/adminlte/r/clients.blade.php
Normal file
75
resources/views/theme/backend/adminlte/r/clients.blade.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<div class="box box-warning">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">Clients</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">
|
||||
<i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove">
|
||||
<i class="fa fa-times"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
@if ($user->all_clients()->count())
|
||||
<table class="table table-bordered table-striped table-hover" id="clients" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Profile</th>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Active</th>
|
||||
<th>Services</th>
|
||||
<th>Level</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Count {{ $user->all_clients()->count() }}</th>
|
||||
<th colspan="5"> </th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@else
|
||||
<p>No Clients Active</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('https://cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css')
|
||||
@css('https://cdn.datatables.net/rowgroup/1.0.2/css/rowGroup.dataTables.min.css')
|
||||
@js('https://cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js')
|
||||
@js('https://cdn.datatables.net/rowgroup/1.0.2/js/dataTables.rowGroup.min.js')
|
||||
|
||||
<style>
|
||||
table.dataTable td {
|
||||
outline: none;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#clients').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/r/clients"
|
||||
},
|
||||
columns: [
|
||||
{ data: "switch_url" },
|
||||
{ data: "user_id_url" },
|
||||
{ data: "surfirstname" },
|
||||
{ data: "active_display" },
|
||||
{ data: "services_count_html" },
|
||||
{ data: "level" }
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Active Clients"
|
||||
},
|
||||
order: [2, 'asc']
|
||||
});
|
||||
|
||||
$('#clients tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
74
resources/views/theme/backend/adminlte/r/home.blade.php
Normal file
74
resources/views/theme/backend/adminlte/r/home.blade.php
Normal file
@@ -0,0 +1,74 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Reseller Home
|
||||
@endsection
|
||||
@section('page_title')
|
||||
{{ $o->full_name }}
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
{{ $o->full_name }}
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
Reseller Home
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="row">
|
||||
@include('common.account.widget.summary')
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-header p-2">
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a class="nav-link active" href="#tab-services" data-toggle="tab">Services</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#tab-clients" data-toggle="tab">Clients</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<div class="active tab-pane" id="tab-services">
|
||||
<div class="row">
|
||||
<div class="col-7">
|
||||
@include('common.service.widget.active')
|
||||
</div>
|
||||
|
||||
<div class="col-5">
|
||||
@include('common.invoice.widget.due')
|
||||
@include('common.payment.widget.history')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab-clients">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
@include('r.account.widget.list')
|
||||
</div>
|
||||
|
||||
<div class="col-8">
|
||||
@include('r.service.widget.movement')
|
||||
</div>
|
||||
|
||||
{{--
|
||||
<div class="col-xs-6">
|
||||
@include('r.agents')
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
@include('r.clients')
|
||||
</div>
|
||||
--}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -0,0 +1,30 @@
|
||||
<table class="table table-bordered">
|
||||
<!-- Group by Account -->
|
||||
@foreach (($x=$o->next_invoice_items($future))->groupBy('product_id') as $id => $oo)
|
||||
<tr>
|
||||
<th colspan="4">{{ $oo->first()->product->name }}</th>
|
||||
<th class="text-right">${{ number_format($oo->sum('total'),2) }}</th>
|
||||
</tr>
|
||||
|
||||
@foreach ($oo->groupBy('service_id') as $ooo)
|
||||
<tr>
|
||||
<td class="pt-0 pb-1" style="width: 8em;"><a href="{{ url('u/service',$ooo->first()->service_id) }}">{{ $ooo->first()->service->sid }}</a></td>
|
||||
<td class="pt-0 pb-1" colspan="3">{{ $ooo->first()->service->sname }}: {{ $ooo->first()->service->sdesc }}</td>
|
||||
</tr>
|
||||
|
||||
@foreach ($ooo as $io)
|
||||
<tr>
|
||||
<td class="pt-0 pb-1"> </td>
|
||||
<td class="pt-0 pb-1"> </td>
|
||||
<td class="pt-0 pb-1">{{ $io->item_type_name }}</td>
|
||||
<td class="text-right pt-0 pb-1">${{ number_format($io->total,2) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endforeach
|
||||
@endforeach
|
||||
|
||||
<tr>
|
||||
<th colspan="4">TOTAL</th>
|
||||
<th class="text-right">${{ number_format($x->sum('total'),2) }}</th>
|
||||
</tr>
|
||||
</table>
|
@@ -0,0 +1,85 @@
|
||||
<div class="card card-warning card-outline">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">Service Movements</h4>
|
||||
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
||||
<button type="button" class="btn btn-tool" data-widget="remove"><i class="fa fa-remove"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($user->all_client_service_movements()->count())
|
||||
<table class="table table-striped table-hover" id="service_movements" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Account</th>
|
||||
<th>Name</th>
|
||||
<th>Status</th>
|
||||
<th>Product</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th>Count {{ $user->all_client_service_movements()->count() }}</th>
|
||||
<th colspan="4"> </th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@else
|
||||
<p>No Service Movements</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('page-scripts')
|
||||
@css('//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css','jq-dt-css','jquery')
|
||||
@js('//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js','jq-dt-js','jquery')
|
||||
@css('//cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css','dt-responsive-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js','dt-responsive-js','jq-dt-js')
|
||||
@css('//cdn.datatables.net/rowgroup/1.0.2/css/rowGroup.dataTables.min.css','dt-rowgroup-css','jq-dt-css')
|
||||
@js('//cdn.datatables.net/rowgroup/1.0.2/js/dataTables.rowGroup.min.js','dt-rowgroup-js','jq-dt-js')
|
||||
@css('/plugin/dataTables/dataTables.bootstrap4.css','dt-bootstrap4-css','jq-dt-css')
|
||||
@js('/plugin/dataTables/dataTables.bootstrap4.js','dt-bootstrap4-js','jq-dt-js')
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#service_movements').DataTable( {
|
||||
responsive: true,
|
||||
ajax: {
|
||||
url: "/api/r/service_movements"
|
||||
},
|
||||
columns: [
|
||||
{ data:
|
||||
@if($user->isWholesaler())
|
||||
"admin_service_id_url"
|
||||
@else
|
||||
"service_id_url"
|
||||
@endif
|
||||
},
|
||||
{ data: "account_name" },
|
||||
{ data: "name_short" },
|
||||
{ data: "status" },
|
||||
{ data: "product_name" }
|
||||
],
|
||||
language: {
|
||||
emptyTable: "No Service Movements"
|
||||
},
|
||||
order: [3, 'asc'],
|
||||
rowGroup: {
|
||||
dataSrc: 'account_name',
|
||||
startRender: null,
|
||||
endRender: function ( rows, group ) {
|
||||
return rows.count()+' x ' + group;
|
||||
},
|
||||
},
|
||||
orderFixed: [1, 'asc']
|
||||
});
|
||||
|
||||
$('#service_movements tbody').on('click','tr', function () {
|
||||
$(this).toggleClass('selected');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,15 @@
|
||||
@extends('layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Supplier Add
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<body>
|
||||
<form method="POST" action="/r/supplier/store">
|
||||
{{ csrf_field() }}
|
||||
Name: <input name="name" > <br>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
</body>
|
||||
@endsection
|
@@ -0,0 +1,25 @@
|
||||
@extends('layouts.auth')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Supplier List
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<body>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
</tr>
|
||||
@foreach (\App\Models\Supplier::all() as $o)
|
||||
<tr>
|
||||
<td>{{ $o->id }}</td>
|
||||
<td>{{ $o->name }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
Add new <a href="{{ url('r/supplier/create') }}">Supplier</a>.
|
||||
</body>
|
||||
@endsection
|
68
resources/views/theme/backend/adminlte/u/home.blade.php
Normal file
68
resources/views/theme/backend/adminlte/u/home.blade.php
Normal file
@@ -0,0 +1,68 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Client Home
|
||||
@endsection
|
||||
@section('page_title')
|
||||
{{ $o->full_name }}
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
{{ $o->full_name }}
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
Client Home
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="row">
|
||||
@include('common.account.widget.summary')
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-header p-2">
|
||||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a class="nav-link active" href="#tab-services" data-toggle="tab">Services</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#tab-nextinvoice" data-toggle="tab">Next Invoice</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#tab-futureinvoice" data-toggle="tab">Future Invoice</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<div class="active tab-pane" id="tab-services">
|
||||
<div class="row">
|
||||
<div class="col-7">
|
||||
@include('common.service.widget.active')
|
||||
</div>
|
||||
|
||||
<div class="col-5">
|
||||
@include('common.invoice.widget.due')
|
||||
@include('common.payment.widget.history')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab-nextinvoice">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@include('r.invoice.widget.next',['future'=>FALSE])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab-futureinvoice">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@include('r.invoice.widget.next',['future'=>TRUE])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
227
resources/views/theme/backend/adminlte/u/invoice.blade.php
Normal file
227
resources/views/theme/backend/adminlte/u/invoice.blade.php
Normal file
@@ -0,0 +1,227 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
Invoice #{{ $o->id }}
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
Invoice #{{ $o->id }}
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
{{ $o->invoice_account_id }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<!-- Main content -->
|
||||
<div class="invoice p-3 mb-3">
|
||||
<!-- title row -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h4>
|
||||
<i class="fa fa-globe"></i> {{ $so->site_name }}
|
||||
<small class="pull-right">Date: {{ $o->invoice_date}}</small>
|
||||
</h4>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
|
||||
<!-- info row -->
|
||||
<div class="row invoice-info">
|
||||
<div class="col-4 invoice-col">
|
||||
FROM:
|
||||
<address>
|
||||
<strong>{{ $so->site_name }}</strong><br>
|
||||
{!! $so->address('html') !!}<br>
|
||||
<br>
|
||||
<strong>Email:</strong> {{ $so->site_email }}<br>
|
||||
<strong>Phone:</strong> {{ $so->site_phone }}
|
||||
</address>
|
||||
</div>
|
||||
|
||||
<div class="col-4 invoice-col">
|
||||
TO:
|
||||
<address>
|
||||
<strong>{{ $o->account->company }}</strong><br>
|
||||
{!! $o->account->address('html') !!}<br>
|
||||
<br>
|
||||
<strong>Email:</strong> {{ $o->account->email }}<br>
|
||||
@if ($o->account->phone)
|
||||
<strong>Phone:</strong> {{ $o->account->phone }}<br>
|
||||
@endif
|
||||
</address>
|
||||
</div>
|
||||
{{-- col-sm-offset-2 not working here --}}
|
||||
<div class="col-1"></div>
|
||||
|
||||
<div class="col-3 invoice-col">
|
||||
<table class="table table-borderless text-right" style="font-size: 1.1rem;">
|
||||
<tr >
|
||||
<td class="p-0">Account:</td><td class="p-0"><strong>{{ $o->account->account_id }}</strong></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td class="p-0">Invoice:</td><td class="p-0"><strong>{{ $o->invoice_id }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-0">Payment Due:</td><td class="p-0"><strong>{{ $o->due_date->format('Y-m-d') }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-0">Total Due:</td><td class="p-0"><strong>${{ number_format($o->total,$o->currency()->rounding) }}</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<!-- Table row -->
|
||||
<div class="row">
|
||||
<div class="col-12 table-responsive">
|
||||
<table id="restripe" class="table" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Qty</th>
|
||||
<th>Product</th>
|
||||
<th colspan="2">Description</th>
|
||||
<th class="text-right" colspan="3">Subtotal</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($o->products() as $po)
|
||||
<tr id="invoice-services">
|
||||
<td>{{ $po->count }}</td>
|
||||
<td>{{ $po->product_id }}</td>
|
||||
<td colspan="2">{{ $po->name($o->account->user->language) }}</td>
|
||||
<td colspan="3" class="text-right">${{ number_format($o->items->filter(function($item) use ($po) {return $item->product_id == $po->id; })->sum('total'),$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
@foreach ($o->product_services($po) as $so)
|
||||
<tr id="invoice-service-items" class="invoice-services d-none @if($o->products()->count() > 1) d-print-table-row @endif">
|
||||
<td colspan="2"> </td>
|
||||
<td colspan="2">Service: <strong>{{ $so->service_id }}: {{ $so->name }}</strong></td>
|
||||
<td> </td>
|
||||
<td class="text-right">${{ number_format($o->product_service_items($po,$so)->sum('total'),$o->currency()->rounding) }}</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
@foreach ($o->product_service_items($po,$so) as $io)
|
||||
<tr class="invoice-service-items d-none d-print-table-row">
|
||||
<td colspan="2"> </td>
|
||||
<td width="5%"> </td>
|
||||
<td>{{ $io->item_type_name }}</td>
|
||||
<td class="text-right">${{ number_format($io->total,$o->currency()->rounding) }}</td>
|
||||
<td colspan="2"> </td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endforeach
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<div class="row">
|
||||
<!-- accepted payments column -->
|
||||
<div class="col-6">
|
||||
<p class="lead">Payment Methods:</p>
|
||||
{{--
|
||||
<img src="../../dist/img/credit/visa.png" alt="Visa">
|
||||
<img src="../../dist/img/credit/mastercard.png" alt="Mastercard">
|
||||
<img src="../../dist/img/credit/american-express.png" alt="American Express">
|
||||
<img src="../../dist/img/credit/paypal2.png" alt="Paypal">
|
||||
--}}
|
||||
|
||||
<p class="text-muted well well-sm no-shadow" style="margin-top: 10px;">
|
||||
{{ $o->invoice_text }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- /.col -->
|
||||
<div class="offset-2 col-4 table-responsive">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th colspan="2" style="width:50%">Subtotal:</th>
|
||||
<td class="text-right">${{ number_format($o->sub_total,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>Tax (GST 10%)</th>
|
||||
<td class="text-right">${{ number_format($o->tax_total,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>Other Charges:</th>
|
||||
<td class="text-right">$0.00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2">Total:</th>
|
||||
<td class="text-right">${{ number_format($o->total,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
@if($o->id)
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th>Payments:</th>
|
||||
<td class="text-right">${{ number_format($o->paid,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2">Invoice Total Due:</th>
|
||||
<td class="text-right">${{ number_format($o->due,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
{{--
|
||||
<tr>
|
||||
<th colspan="2">Account Due:</th>
|
||||
<td class="text-right">${{ number_format($o->account->due,$o->currency()->rounding) }}</td>
|
||||
</tr>
|
||||
--}}
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.col -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<!-- this row will not appear when printing -->
|
||||
<div class="row d-print-none">
|
||||
<div class="col-12">
|
||||
<a href="javascript:window.print();" class="btn btn-default"><i class="fa fa-print"></i> Print</a>
|
||||
@if($o->id)
|
||||
<button type="button" class="btn btn-success pull-right"><i class="fa fa-credit-card"></i> Submit Payment</button>
|
||||
<a href="{{ url(sprintf('u/invoice/%s/pdf',$o->id)) }}" class="btn btn-primary pull-right" style="margin-right: 5px;">
|
||||
<i class="fa fa-download"></i> Download PDF
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
|
||||
<div class="clearfix"></div>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
<style>
|
||||
.stripe-odd {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
.stripe-even {
|
||||
background-color: #e9e9e9;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("table#restripe").removeClass("table-striped");
|
||||
|
||||
$("table#restripe tr:not(.d-print-table-row)").each(function (index) {
|
||||
$(this).toggleClass("stripe-odd", (index & 1));
|
||||
$(this).toggleClass("stripe-even", !!(index & 1));
|
||||
});
|
||||
|
||||
$('tr[id="invoice-services"]').click(function() {
|
||||
$(".invoice-services").toggleClass("d-none");
|
||||
});
|
||||
|
||||
$('tr[id="invoice-service-items"]').click(function() {
|
||||
$(".invoice-service-items").toggleClass("d-none");
|
||||
});
|
||||
})
|
||||
</script>
|
||||
@append
|
109
resources/views/theme/backend/adminlte/u/service.blade.php
Normal file
109
resources/views/theme/backend/adminlte/u/service.blade.php
Normal file
@@ -0,0 +1,109 @@
|
||||
@extends('adminlte::layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ $o->sid }}
|
||||
@endsection
|
||||
@section('page_title')
|
||||
{{ $o->sid }}
|
||||
@endsection
|
||||
|
||||
@section('contentheader_title')
|
||||
Service: {{ $o->sid }} <strong>{{ $o->product->name }}</strong>
|
||||
@endsection
|
||||
@section('contentheader_description')
|
||||
{{ $o->sname }}: {{ $o->sdesc }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="row">
|
||||
<!-- Service Details -->
|
||||
<div class="col-5">
|
||||
@includeIf('u.service.widgets.'.$o->stype.'.details',['o'=>$o->type])
|
||||
@include('u.service.widgets.information')
|
||||
</div>
|
||||
|
||||
<div class="col-7">
|
||||
<div class="card">
|
||||
<div class="card-header bg-dark d-flex p-0">
|
||||
<span class="p-3"><i class="fa fa-bars"></i></span>
|
||||
<ul class="nav nav-pills p-2 w-100">
|
||||
{{--
|
||||
<li class="nav-item"><a class="nav-link active" href="#product" data-toggle="tab">Product</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#traffic" data-toggle="tab">Traffic</a></li>
|
||||
--}}
|
||||
<li class="nav-item active"><a class="nav-link" href="#pending_items" data-toggle="tab">Pending Items</a></li>
|
||||
{{--
|
||||
<li class="nav-item"><a class="nav-link" href="#invoices" data-toggle="tab">Invoices</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#emails" data-toggle="tab">Emails</a></li>
|
||||
--}}
|
||||
@can('wholesaler')
|
||||
<li class="nav-item ml-auto"><a class="nav-link" href="#internal" data-toggle="tab">Internal</a></li>
|
||||
@endcan
|
||||
</ul>
|
||||
|
||||
@can('update',$o)
|
||||
<ul class="nav nav-pills ml-auto p-2">
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
ACTION <span class="caret"></span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item" tabindex="-1" href="#tab_3">Action</a>
|
||||
<a class="dropdown-item" tabindex="-1" href="#">Another action</a>
|
||||
<a class="dropdown-item" tabindex="-1" href="#">Something else here</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" tabindex="-1" href="#">Separated link</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@endcan
|
||||
</div><!-- /.card-header -->
|
||||
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade" id="traffic" role="tabpanel">
|
||||
Traffic.
|
||||
</div>
|
||||
<div class="tab-pane fade" id="product" role="tabpanel">
|
||||
Product.
|
||||
</div>
|
||||
<div class="tab-pane fade show active" id="pending_items" role="tabpanel">
|
||||
@include('common.service.widget.invoice')
|
||||
</div>
|
||||
<div class="tab-pane fade" id="invoices" role="tabpanel">
|
||||
Invoices.
|
||||
</div>
|
||||
<div class="tab-pane fade" id="emails" role="tabpanel">
|
||||
Email.
|
||||
</div>
|
||||
@can('wholesaler')
|
||||
<div class="tab-pane fade" id="internal" role="tabpanel">
|
||||
@include('a.service.widget.internal')
|
||||
</div>
|
||||
@endcan
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.card -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
<style>
|
||||
.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
|
||||
background-color: #ffffff;
|
||||
color: #343a40;
|
||||
}
|
||||
|
||||
.nav-pills .nav-link:hover {
|
||||
background-color: #6c757d;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.nav-pills .nav-link:not(.active):hover {
|
||||
background-color: #6c757d;
|
||||
color: #ffffff;
|
||||
}
|
||||
</style>
|
||||
@append
|
@@ -0,0 +1,74 @@
|
||||
<div class="card">
|
||||
@if($o->service->isPending())
|
||||
<div class="ribbon-wrapper ribbon-lg">
|
||||
<div class="ribbon bg-warning">
|
||||
Pending
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="card-header bg-gray-dark">
|
||||
<h3 class="card-title">Broadband Details</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body bg-gray-dark">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Address</th>
|
||||
<td>{{ $o->service_description }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Service Number</th>
|
||||
<td>{{ $o->service_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Service Username</th>
|
||||
<td>{{ $o->service_username }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Service Password</th>
|
||||
<td>{{ $o->service_password }}</td>
|
||||
</tr>
|
||||
@if($o->service_connect_date)
|
||||
<tr>
|
||||
<th>Connected</th>
|
||||
<td>{{ $o->service_connect_date->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<!-- @todo -->
|
||||
@if($o->technology)
|
||||
<tr>
|
||||
<th>Technology</th>
|
||||
<td>{{ $o->technology }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Speed</th>
|
||||
<td>{{ $o->service->product->type->product->speed }} Mbps</td>
|
||||
</tr>
|
||||
<!-- @todo -->
|
||||
<tr>
|
||||
<th>Traffic</th>
|
||||
<td>{{ $o->service->product->type->allowance_string() }} GB @if(FALSE)(YY GB used month)@endif</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>IP Address</th>
|
||||
<td>{{ $o->ipaddress ?: 'Dynamic' }}</td>
|
||||
</tr>
|
||||
@if ($o->inContract())
|
||||
<tr>
|
||||
<th>Contract</th>
|
||||
<td>{{ $o->contract_term }} months <small>({{ ($x=$o->service_contract_date->addMonths($o->contract_term))->diffForHumans() }})</small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Contract End</th>
|
||||
<td>{{ $x->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Cancel Notice</th>
|
||||
<td>1 month @if($o->inContract())<small>(after {{ $o->service_contract_date->addMonths($o->contract_term-1)->format('Y-m-d') }})</small>@endif</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,59 @@
|
||||
<div class="card">
|
||||
@if($o->service->isPending())
|
||||
<div class="ribbon-wrapper ribbon-lg">
|
||||
<div class="ribbon bg-warning">
|
||||
Pending
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="card-header bg-gray-dark">
|
||||
<h3 class="card-title">Domain Details</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body bg-gray-dark">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Domain Name</th>
|
||||
<td>{{ $o->service_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Registrar URL</th>
|
||||
<td><a href="{{ $o->registrar->whitelabel_url }}" target="_blank" class="text-white">{{ $o->registrar->whitelabel_url }}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Registrar Username</th>
|
||||
<td>{{ $o->registrar_username }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Registrar Password</th>
|
||||
<td>{{ $o->registrar_password }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Domain Auth</th>
|
||||
<td>{{ $o->registrar_auth_password }}</td>
|
||||
</tr>
|
||||
@if($o->service_connect_date)
|
||||
<tr>
|
||||
<th>Connected</th>
|
||||
<td>{{ $o->service_connect_date->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if ($o->inContract())
|
||||
<tr>
|
||||
<th>Contract</th>
|
||||
<!-- @todo -->
|
||||
<td>12 months <small>({{ ($x=$o->domain_expire)->diffForHumans() }})</small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Contract End</th>
|
||||
<td>{{ $x->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Cancel Notice</th>
|
||||
<td>Before renewal</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,57 @@
|
||||
<div class="card">
|
||||
@if($o->service->isPending())
|
||||
<div class="ribbon-wrapper ribbon-lg">
|
||||
<div class="ribbon bg-warning">
|
||||
Pending
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="card-header bg-gray-dark">
|
||||
<h3 class="card-title">Hosting Details</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body bg-gray-dark">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Domain Name</th>
|
||||
<td>{{ $o->service_name }}</td>
|
||||
</tr>
|
||||
@if($o->provider->whitelabel_url)
|
||||
<tr>
|
||||
<th>Hosting URL</th>
|
||||
<td><a href="{{ $o->provider->whitelabel_url }}" target="_blank" class="text-white">{{ $o->provider->whitelabel_url }}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Hosting Username</th>
|
||||
<td>{{ $o->host_username }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Hosting Password</th>
|
||||
<td>{{ $o->host_password }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if($o->service_connect_date)
|
||||
<tr>
|
||||
<th>Connected</th>
|
||||
<td>{{ $o->service_connect_date->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if ($o->inContract())
|
||||
<tr>
|
||||
<th>Contract</th>
|
||||
<!-- @todo -->
|
||||
<td>12 months <small>({{ ($x=$o->domain_expire)->diffForHumans() }})</small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Contract End</th>
|
||||
<td>{{ $x->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Cancel Notice</th>
|
||||
<td>Before renewal</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,60 @@
|
||||
<div class="card">
|
||||
<div class="card-header bg-light">
|
||||
<h3 class="card-title">Service Information</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body bg-light">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Account</th>
|
||||
<td>{{ $o->account->aid }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<td>{!! $o->status_html !!}</td>
|
||||
</tr>
|
||||
@if ($o->active or $o->isPending())
|
||||
<tr>
|
||||
<th>Billed</th>
|
||||
<td>{{ $o->billing_period }}</td>
|
||||
</tr>
|
||||
@if($o->active AND $o->invoice_to)
|
||||
<tr>
|
||||
<th>Invoiced To</th>
|
||||
<td>{{ $o->invoice_to->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@if($o->paid_to)
|
||||
<tr>
|
||||
<th>Paid Until</th>
|
||||
<td>{{ $o->paid_to->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endif
|
||||
<tr>
|
||||
<th>Next Invoice</th>
|
||||
<td>@if ($o->suspend_billing)<strike>@endif{{ $o->invoice_next->format('Y-m-d') }}@if ($o->suspend_billing)</strike> <strong>SUSPENDED</strong>@endif</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Next Estimated Invoice</th>
|
||||
<td>${{ number_format($o->next_invoice_items(TRUE)->sum('total'),2) }} <sup>*</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Payment Method</th>
|
||||
<td>@if ($o->autopay)Direct Debit @else Invoice @endif</td>
|
||||
</tr>
|
||||
|
||||
@elseif(! $o->wasCancelled())
|
||||
<tr>
|
||||
<th>Cancelled</th>
|
||||
<td>{!! $o->date_end ? $o->date_end->format('Y-m-d') : $o->paid_to->format('Y-m-d').'<sup>*</sup>' !!}</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@if($o->active OR $o->isPending())
|
||||
<div class="card-footer sm">
|
||||
<strong><sup>*</sup>NOTE:</strong> Estimated Invoice does not include any setup, connection nor all current billing cycle usage charges.
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
@@ -0,0 +1,26 @@
|
||||
<div class="card">
|
||||
@if($o->service->isPending())
|
||||
<div class="ribbon-wrapper ribbon-lg">
|
||||
<div class="ribbon bg-warning">
|
||||
Pending
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="card-header bg-gray-dark">
|
||||
<h3 class="card-title">SSL Details</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body bg-gray-dark">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Cert</th>
|
||||
<td>{{ $o->service_description }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Cancel Notice</th>
|
||||
<td>Before renewal</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,68 @@
|
||||
<div class="card">
|
||||
@if($o->service->isPending())
|
||||
<div class="ribbon-wrapper ribbon-lg">
|
||||
<div class="ribbon bg-warning">
|
||||
Pending
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="card-header bg-gray-dark">
|
||||
<h3 class="card-title">VOIP Details</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body bg-gray-dark">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th>Address</th>
|
||||
<td>{{ $o->service_description }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Service Number</th>
|
||||
<td>{{ $o->service_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Service Username</th>
|
||||
<td>{{ $o->service_username }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Service Password</th>
|
||||
<td>{{ $o->service_password }}</td>
|
||||
</tr>
|
||||
@if($o->service_connect_date)
|
||||
<tr>
|
||||
<th>Connected</th>
|
||||
<td>{{ $o->service_connect_date->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<!-- @todo -->
|
||||
@if($o->technology)
|
||||
<tr>
|
||||
<th>Technology</th>
|
||||
<td>{{ $o->technology }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<!-- @todo -->
|
||||
@if($o->service->product->type)
|
||||
<tr>
|
||||
<th>Traffic</th>
|
||||
<td>{{ $o->service->product->type->allowance_string() }} GB @if(FALSE)(YY GB used month)@endif</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if ($o->inContract())
|
||||
<tr>
|
||||
<th>Contract</th>
|
||||
<td>{{ $o->contract_term }} months <small>({{ ($x=$o->service_contract_date->addMonths($o->contract_term))->diffForHumans() }})</small></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Contract End</th>
|
||||
<td>{{ $x->format('Y-m-d') }}</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Cancel Notice</th>
|
||||
<td>1 month @if($o->inContract())<small>(after {{ $o->service_contract_date->addMonths($o->contract_term-1)->format('Y-m-d') }})</small>@endif</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]> <html lang="en" class="ie8 no-js"> <![endif]-->
|
||||
<!--[if IE 9]> <html lang="en" class="ie9 no-js"> <![endif]-->
|
||||
<!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->
|
||||
|
||||
@section('htmlheader')
|
||||
@include('layouts.partials.htmlheader')
|
||||
@show
|
||||
|
||||
<body class="corporate">
|
||||
<div id="app">
|
||||
<div class="wrapper">
|
||||
@include('layouts.partials.mainheader')
|
||||
|
||||
@include('layouts.partials.sidebar')
|
||||
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper">
|
||||
|
||||
@include('layouts.partials.contentheader')
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<!-- Your Page Content Here -->
|
||||
<div class="main">
|
||||
<div class="container">
|
||||
@yield('breadcrumb')
|
||||
|
||||
<div class="row margin-bottom-40">
|
||||
@yield('main-content')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section><!-- /.content -->
|
||||
</div><!-- /.content-wrapper -->
|
||||
|
||||
@include('layouts.partials.controlsidebar')
|
||||
|
||||
@include('layouts.partials.footer')
|
||||
|
||||
</div><!-- ./wrapper -->
|
||||
</div> <!-- ./app -->
|
||||
|
||||
@section('scripts')
|
||||
|
||||
{{-- BEGIN CORE PLUGINS (REQUIRED FOR ALL PAGES) --}}
|
||||
@js('/site/js/jquery/1.11.2/js/jquery.min.js','jquery')
|
||||
@js('/site/js/bootstrap/3.3.5/js/bootstrap.min.js','bootstrap-js','jquery')
|
||||
@js('/site/js/jquery/plugins/migrate/1.2.1/js/jquery-migrate.min.js','jq-migrate','jquery')
|
||||
@js('/site/js/jquery/plugins/back-to-top/back-to-top.js','back-to-top','jquery')
|
||||
{{-- END CORE PLUGINS --}}
|
||||
|
||||
{{-- Scripts --}}
|
||||
{!! Asset::scripts() !!}
|
||||
|
||||
@include('layouts.partials.scripts')
|
||||
|
||||
@yield('page-scripts')
|
||||
@show
|
||||
|
||||
</body>
|
||||
</html>
|
@@ -0,0 +1,97 @@
|
||||
{{-- This page needs $site_social --}}
|
||||
|
||||
<!-- BEGIN PRE-FOOTER -->
|
||||
<div class="pre-footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- BEGIN BOTTOM ABOUT BLOCK -->
|
||||
<div class="col-md-4 col-sm-6 pre-footer-col">
|
||||
<h2>About us</h2>
|
||||
<p>{!! $so->site_aboutus !!}</p>
|
||||
<!--
|
||||
<div class="photo-stream">
|
||||
<h2>Photos Stream</h2>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="javascript:;"><img alt="" src="{{!! Theme::url('') !!}}"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
<!-- END BOTTOM ABOUT BLOCK -->
|
||||
|
||||
<!-- BEGIN BOTTOM CONTACTS -->
|
||||
<div class="col-md-4 col-sm-6 pre-footer-col">
|
||||
<h2>Our Contacts</h2>
|
||||
<address class="margin-bottom-40">
|
||||
<table>
|
||||
<tr><th style="vertical-align:top; padding-right: 5px;">Address</th><td>{!! $so->address('html') !!}</td></tr>
|
||||
@if($so->site_fax)
|
||||
<tr><th>Fax</th><td>{{ $so->site_fax }}</tr>
|
||||
@endif
|
||||
<tr><th>Email</th><td> <a href="mailto:{{ $so->site_email }}">{{ $so->site_email }}</a></tr>
|
||||
</table>
|
||||
</address>
|
||||
<!--
|
||||
<div class="pre-footer-subscribe-box pre-footer-subscribe-box-vertical">
|
||||
<h2>Newsletter</h2>
|
||||
<p>Subscribe to our newsletter and stay up to date with the latest news and deals!</p>
|
||||
<form action="#">
|
||||
<div class="input-group">
|
||||
<input type="text" placeholder="youremail@mail.com" class="form-control">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">Subscribe</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
<!-- END BOTTOM CONTACTS -->
|
||||
|
||||
<!-- BEGIN TWITTER BLOCK -->
|
||||
<!--
|
||||
<div class="col-md-4 col-sm-6 pre-footer-col">
|
||||
<h2 class="margin-bottom-0">Latest Tweets</h2>
|
||||
<a class="twitter-timeline" href="https://twitter.com/twitterapi" data-tweet-limit="2" data-theme="dark" data-link-color="#57C8EB" data-widget-id="" data-chrome="noheader nofooter noscrollbar noborders transparent">Loading tweets...</a>
|
||||
</div>
|
||||
-->
|
||||
<!-- END TWITTER BLOCK -->
|
||||
|
||||
<!-- BEGIN ADDRESS MAP -->
|
||||
{{-- @todo --}}
|
||||
<!-- END ADDRESS MAP -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END PRE-FOOTER -->
|
||||
|
||||
<!-- BEGIN FOOTER -->
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- BEGIN COPYRIGHT -->
|
||||
<div class="col-md-4 col-sm-4 padding-top-10">
|
||||
2016 © Leenooks. ALL Rights Reserved. <!-- <a href="javascript:;">Privacy Policy</a> | <a href="javascript:;">Terms of Service</a> -->
|
||||
</div>
|
||||
<!-- END COPYRIGHT -->
|
||||
|
||||
<!-- BEGIN SOCIAL -->
|
||||
<div class="col-md-4 col-sm-4">
|
||||
<ul class="social-footer list-unstyled list-inline pull-right">
|
||||
@foreach ($so->social as $social)
|
||||
<li><a href="{{ $social['url'] }}"><i class="fa fa-{{ $social['name'] }}"></i></a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END SOCIAL -->
|
||||
|
||||
<!-- BEGIN POWERED -->
|
||||
<div class="col-md-4 col-sm-4 text-right">
|
||||
<p class="powered">Powered by: <a href="http://www.leenooks.net/">leenooks</a></p>
|
||||
</div>
|
||||
<!-- END POWERED -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END FOOTER -->
|
@@ -0,0 +1,35 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<title>{{ config('app.name') }} - @yield('htmlheader_title', 'Your title here')</title>
|
||||
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<meta property="og:site_name" content="{{ config('app.name') }}" />
|
||||
<meta property="og:title" content="{{ $so->site_name }}" />
|
||||
<meta property="og:description" content="{{ $so->site_description }}" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="{{ $so->site_logo }}" />
|
||||
<meta property="og:url" content="{{ url('/') }}" />
|
||||
|
||||
<link rel="shortcut icon" href="{{ object_get($so,'favicon','favicon.ico') }}" />
|
||||
|
||||
@css('/site/js/bootstrap/3.3.5/css/bootstrap.min.css')
|
||||
|
||||
<!-- Font Awesome Icons -->
|
||||
@css('/plugin/font-awesome/css/font-awesome.min.css','font-awesome','app')
|
||||
<!-- Theme style -->
|
||||
@css('/site/css/components.css')
|
||||
@css('/site/css/slider.css')
|
||||
@css('/site/css/style.css')
|
||||
@css('/site/css/style-responsive.css')
|
||||
@css('/site/css/themes/blue.css')
|
||||
@css('/site/css/custom.css')
|
||||
<!-- Google Font: Source Sans Pro -->
|
||||
<link href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700|PT+Sans+Narrow|Source+Sans+Pro:200,300,400,600,700,900&subset=all" rel="stylesheet" type="text/css">
|
||||
@css('/site/js/bootstrap/3.3.5/css/bootstrap.min.css')
|
||||
|
||||
<!-- STYLESHEETS -->
|
||||
{!! Asset::styles() !!}
|
||||
</head>
|
@@ -0,0 +1,79 @@
|
||||
<!-- BEGIN TOP BAR -->
|
||||
<div class="pre-header">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<!-- BEGIN TOP BAR LEFT PART -->
|
||||
<div class="col-md-6 col-sm-6 additional-shop-info">
|
||||
<ul class="list-unstyled list-inline">
|
||||
<li><i class="fa fa-phone"></i><span>{!! $so->site_phone !!}</span></li>
|
||||
<li><i class="fa fa-envelope-o"></i><span>{!! $so->site_email !!}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END TOP BAR LEFT PART -->
|
||||
|
||||
<!-- BEGIN TOP BAR MENU -->
|
||||
<div class="col-md-6 col-sm-6 additional-nav">
|
||||
<ul class="list-unstyled list-inline pull-right">
|
||||
<li><a href="{{ url('home') }}">Log In</a></li>
|
||||
@isset($register)
|
||||
<li><a href="{{ url('register') }}">Registration</a></li>
|
||||
@endisset
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END TOP BAR MENU -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END TOP BAR -->
|
||||
|
||||
<!-- BEGIN HEADER -->
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<a class="site-logo" href="{{ url('/') }}"><img src="{{ $so->site_logo }}" alt="{{ $so->site_description }}" height="32"></a>
|
||||
<a href="javascript:void(0);" class="mobi-toggler"><i class="fa fa-bars"></i></a>
|
||||
|
||||
<!-- BEGIN NAVIGATION -->
|
||||
<div class="header-navigation pull-right font-transform-inherit">
|
||||
<ul>
|
||||
{{-- @todo Replace this with a function that can traverse children with multiple depths --}}
|
||||
@foreach ($so->top_menu as $item => $menu)
|
||||
<li class="dropdown {{ Request::is($menu['url']) ? 'active' : '' }}">
|
||||
|
||||
@if (! \Illuminate\Support\Arr::get($menu,'children'))
|
||||
<a {{ Request::is($menu['url']) ? 'class=active' : '' }} href="{{ url($menu['url']) }}">{{ $menu['name'] }}</a>
|
||||
@else
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="javascript:;">{{ $item }}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li {{ (Request::is($menu['url']) ? 'class=active' : '') }}><a href="{{ url($menu['url']) }}">{{ $menu['name'] }}</a></li>
|
||||
@foreach($menu['children'] as $name => $menuitem)
|
||||
<li {{ (Request::is($menuitem['url']) ? 'class=active' : '') }}><a href="{{ url($menuitem['url']) }}">{{ $menuitem['name'] }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
<!-- BEGIN TOP SEARCH -->
|
||||
<li class="menu-search">
|
||||
<span class="sep"></span>
|
||||
<i class="fa fa-search search-btn"></i>
|
||||
|
||||
<div class="search-box">
|
||||
<form action="#">
|
||||
<div class="input-group">
|
||||
<input type="text" placeholder="Search" class="form-control">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
<!-- END TOP SEARCH -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- END NAVIGATION -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- Header END -->
|
@@ -0,0 +1,10 @@
|
||||
<!-- REQUIRED JS SCRIPTS -->
|
||||
|
||||
<script type="text/javascript">
|
||||
// Our CSRF token to each interaction
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
</script>
|
336
resources/views/theme/frontend/metronic/order.blade.php
Normal file
336
resources/views/theme/frontend/metronic/order.blade.php
Normal file
@@ -0,0 +1,336 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ trans('message.home') }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="col-md-12">
|
||||
<h1>Order Service</h1>
|
||||
|
||||
<div class="order-page" id="order-page">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<ul class="tabbable faq-tabbable">
|
||||
<li class="active">
|
||||
<a href="#order_1" data-toggle="tab" aria-expanded="true">Order Service</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="tab-content" style="padding:0; background: #fff;">
|
||||
<div class="tab-pane active" id="order_1">
|
||||
<div class="panel-group" id="accordion1">
|
||||
<form role="form" method="POST" enctype="multipart/form-data">
|
||||
{{ csrf_field() }}
|
||||
|
||||
<div id="accordion">
|
||||
<!-- Reseller Choose Client -->
|
||||
@if (Auth::user() AND Auth::user()->isReseller())
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
Account
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-collapse">
|
||||
<div class="panel-body">
|
||||
<div class="col-md-12 margin-bottom-20">
|
||||
|
||||
<div class="col-md-6">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active">
|
||||
<a href="#account_exist" data-toggle="tab">Existing Account</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#client_new" data-toggle="tab">New Client</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane row fade in active" id="account_exist">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('account_id') ? 'has-error' : '' }}">
|
||||
<label for="account_id">Client Account</label>
|
||||
<select class="form-control" id="account_id" name="account_id">
|
||||
<option value=""> </option>
|
||||
@foreach ($user->all_accounts()->sortBy('name') as $o)
|
||||
<option value="{{ $o->id }}" @if($o->id == old('account_id')) selected @endif>{{ $o->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span class="help-block">{{ $errors->first('account_id') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane row fade" id="client_new">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('order_email_manual') ? 'has-error' : '' }}">
|
||||
<label for="order_email_manual">New Client Email</label>
|
||||
<input type="email" class="form-control" id="order_email_manual" name="order_email_manual" placeholder="New Client Email" value="{{ old('order_email_manual') }}">
|
||||
<span class="help-block">{{ $errors->first('order_email_manual') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary">Previous</button></div>
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary next">Next</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Non-Authed User -->
|
||||
@elseif (Auth::user())
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
Account
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-collapse">
|
||||
<div class="panel-body">
|
||||
<div class="col-md-12 margin-bottom-20">
|
||||
|
||||
<div class="col-md-6">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active">
|
||||
<a href="#account_exist" data-toggle="tab">Existing Account</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#account_new" data-toggle="tab">New Account</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane row fade in active" id="account_exist">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('account_id') ? 'has-error' : '' }}">
|
||||
<label for="account_id">Existing Account</label>
|
||||
<select class="form-control" id="account_id" name="account_id">
|
||||
<option value=""> </option>
|
||||
@foreach ($user->accounts->sortBy('name') as $o)
|
||||
<option value="{{ $o->id }}" @if($o->id == old('account_id')) selected @endif>{{ $o->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span class="help-block">{{ $errors->first('account_id') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane row fade" id="account_new">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('account_name') ? 'has-error' : '' }}">
|
||||
<label for="account_name">Account Name</label>
|
||||
<input type="text" class="form-control" id="account_name" name="account_name" placeholder="New Account Name" value="{{ old('order_email_manual') }}" disabled>
|
||||
<span class="help-block">{{ $errors->first('account_name') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary">Previous</button></div>
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary next">Next</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Non-Authed User -->
|
||||
@else
|
||||
@php
|
||||
//dd($errors);
|
||||
@endphp
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
Account
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-collapse">
|
||||
<div class="panel-body">
|
||||
<div class="col-md-12">
|
||||
<div class="row col-md-6">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('order_email_manual') ? 'has-error' : '' }}">
|
||||
<label for="order_email_manual">Email Address</label>
|
||||
<input type="email" class="form-control" id="order_email_manual" name="order_email_manual" placeholder="Email Address" value="{{ old('order_email_manual') }}">
|
||||
<span class="help-block">{{ $errors->first('order_email_manual') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary">Previous</button></div>
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary next">Next</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- Product -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">Product</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-collapse margin-bottom-20">
|
||||
<div class="panel-body">
|
||||
<div class="col-md-12">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('product_options') ? 'has-error' : '' }}">
|
||||
<span class="help-block">{{ $errors->first('product_options') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group form-group col-sm-6 {{ $errors->has('product_id') ? 'has-error' : '' }}">
|
||||
<label for="product_id">Product</label>
|
||||
<select class="form-control" id="product_id" name="product_id">
|
||||
<option value=""> </option>
|
||||
@php
|
||||
$po = $selected = NULL;
|
||||
@endphp
|
||||
@foreach (\App\Models\Product::active()->get()->sortBy('name') as $o)
|
||||
@php
|
||||
if ($o->id == old('product_id'))
|
||||
{
|
||||
$selected = 'selected';
|
||||
$po = $o;
|
||||
} else {
|
||||
$selected = NULL;
|
||||
}
|
||||
@endphp
|
||||
<option value="{{ $o->id }}" {{ $selected }}>{{ $o->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<span class="help-block">{{ $errors->first('product_id') }}</span>
|
||||
</div>
|
||||
<div class="col-sm-6" id="product_info">
|
||||
@if (old('product_id'))
|
||||
@include('widgets.product_description',['o'=>$po])
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12" id="product_order">
|
||||
@if (old('product_id'))
|
||||
@include('widgets.product_order',['o'=>$po])
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary">Previous</button></div>
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary next">Next</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Additional Notes -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">Notes</h4>
|
||||
</div>
|
||||
|
||||
<div class="panel-collapse margin-bottom-20">
|
||||
<div class="panel-body">
|
||||
<div class="col-md-12">
|
||||
<div class="control-group form-group col-sm-12 {{ $errors->has('options.notes') ? 'has-error' : '' }}">
|
||||
<label for="options.notes">Notes</label>
|
||||
<textarea name="options[notes]" class="form-control" rows="4" placeholder="Enter any special instructions...">{{ old('options.notes') }}</textarea>
|
||||
<span class="help-block">{{ $errors->first('options.notes') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2"><button class="btn btn-block btn-primary">Previous</button></div>
|
||||
<div class="col-sm-2 pull-right"><input type="submit" class="btn btn-block btn-primary" value="Submit Order"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab-2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
@js('/plugin/jqBootstrapValidation/jqBootstrapValidation.js','jq-validation','jquery')
|
||||
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
|
||||
<script>
|
||||
$(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation(); } );
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#accordion').accordion({
|
||||
header: "> div > div",
|
||||
collapsible: false,
|
||||
heightStyle: 'content',
|
||||
disabled: true
|
||||
});
|
||||
|
||||
$('#accordion button').click(function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
var delta = ($(this).is('.next') ? 2 : -2);
|
||||
$('#accordion').accordion('option', 'active', ($('#accordion').accordion('option', 'active') + delta));
|
||||
});
|
||||
|
||||
$("select[name=product_id]").change(function() {
|
||||
// If we select a blank, then dont continue
|
||||
if (this.value == 0)
|
||||
return false;
|
||||
|
||||
// Send the request and update sub category dropdown
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
dataType: "html",
|
||||
cache: true,
|
||||
url: '{{ url('product_info') }}'+'/'+$(this).val(),
|
||||
timeout: 5000,
|
||||
error: function(x) {
|
||||
alert("Failed to submit");
|
||||
},
|
||||
success: function(data) {
|
||||
$("div[id=product_info]").empty().append(data);
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
// data: "old=",
|
||||
dataType: "html",
|
||||
cache: true,
|
||||
url: '{{ url('product_order') }}'+'/'+$(this).val(),
|
||||
timeout: 5000,
|
||||
error: function(x) {
|
||||
alert("Failed to submit");
|
||||
},
|
||||
success: function(data) {
|
||||
$("div[id=product_order]").empty().append(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
span.help-block > ul {
|
||||
color: #9d0000;
|
||||
padding-left: 5px;
|
||||
list-style-type: none;
|
||||
}
|
||||
</style>
|
||||
@append
|
@@ -0,0 +1,12 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ trans('message.home') }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<div class="col-md-12">
|
||||
<h2>Order Service</h2>
|
||||
<p>Your order has been received - #{{ $o->id }}. An email will be sent to you with as your order progresses.</p>
|
||||
</div>
|
||||
@endsection
|
92
resources/views/theme/frontend/metronic/welcome.blade.php
Normal file
92
resources/views/theme/frontend/metronic/welcome.blade.php
Normal file
@@ -0,0 +1,92 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('htmlheader_title')
|
||||
{{ trans('message.home') }}
|
||||
@endsection
|
||||
|
||||
@section('main-content')
|
||||
<body class="hold-transition welcome-page">
|
||||
|
||||
{{-- SLIDER --}}
|
||||
@if ($so->site_slider)
|
||||
@include('widgets.slider')
|
||||
@endif
|
||||
{{-- END SLIDER --}}
|
||||
|
||||
<div class="main">
|
||||
<div class="container">
|
||||
{{-- SERVICE BOX --}}
|
||||
@if ($so->services)
|
||||
@include('widgets.servicebox')
|
||||
@endif
|
||||
{{-- END SERVICE BOX --}}
|
||||
|
||||
{{-- TESTIMONIALS --}}
|
||||
@if ($so->block_quotes)
|
||||
@include('widgets.blockquote')
|
||||
@endif
|
||||
{{-- END TESTIMONIALS --}}
|
||||
|
||||
{{-- ACTIVITY --}}
|
||||
@if ($so->activities)
|
||||
@include('widgets.activity')
|
||||
@endif
|
||||
{{-- END ACTIVITY --}}
|
||||
|
||||
@if ($so->page_tabs OR $so->testimonials)
|
||||
<!-- BEGIN TABS AND TESTIMONIALS -->
|
||||
<div class="row mix-block margin-bottom-40">
|
||||
|
||||
{{-- TABS --}}
|
||||
@if ($so->page_tabs)
|
||||
@include('widgets.tabs')
|
||||
@endif
|
||||
{{-- END TABS --}}
|
||||
|
||||
{{-- TESTIMONIALS --}}
|
||||
@if ($so->testimonials)
|
||||
@include('widgets.testimonials')
|
||||
@endif
|
||||
{{-- END TESTIMONIALS --}}
|
||||
|
||||
</div>
|
||||
<!-- END TABS AND TESTIMONIALS -->
|
||||
@endif
|
||||
|
||||
{{-- STEPS --}}
|
||||
@if ($so->steps)
|
||||
@include('widgets.steps')
|
||||
@endif
|
||||
{{-- END STEPS --}}
|
||||
|
||||
{{-- CLIENTS --}}
|
||||
@if ($so->clients)
|
||||
@include('widgets.clients')
|
||||
@endif
|
||||
{{-- END CLIENTS --}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- BEGIN PAGE LEVEL JAVASCRIPTS (REQUIRED ONLY FOR CURRENT PAGE) -->
|
||||
@js('/site/js/jquery/plugins/fancybox/source/jquery.fancybox.pack.js','jq-fancybox','jquery')
|
||||
@css('/site/js/jquery/plugins/fancybox/source/jquery.fancybox.css')
|
||||
@js('/site/js/jquery/plugins/uniform/2.1.0/js/jquery.uniform.min.js','jq-uniform','jquery')
|
||||
@css('/site/js/jquery/plugins/uniform/2.1.0/css/uniform.default.css')
|
||||
@js('/site/js/layout.js','layout','jquery')
|
||||
</body>
|
||||
@endsection
|
||||
|
||||
@section('page-scripts')
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
Layout.init();
|
||||
<!-- Layout.initTwitter(); -->
|
||||
Layout.initUniform();
|
||||
Layout.initFixHeaderWithPreHeader();
|
||||
Layout.initNavScrolling();
|
||||
<!-- ContactUs.init(); -->
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END PAGE LEVEL JAVASCRIPTS -->
|
||||
@append
|
@@ -0,0 +1,30 @@
|
||||
<!-- BEGIN RECENT WORKS -->
|
||||
<div class="row recent-work margin-bottom-40">
|
||||
<div class="col-md-3">
|
||||
<h2><a href="portfolio.html">Recent Activity</a></h2>
|
||||
<p>{{ $so->activity_intro }}</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<div class="owl-carousel owl-carousel3">
|
||||
{{-- @todo These should scroll --}}
|
||||
@php($c=0)
|
||||
@foreach ($so->activities as $o)
|
||||
<div class="recent-work-item">
|
||||
<em>
|
||||
<img src="{{ $o['image_small'] }}" alt="{{ $o['title'] }}" class="img-responsive">
|
||||
<a href="#"><i class="fa fa-link"></i></a>
|
||||
{{-- If this is a jpeg instead of a URL, it renders a nice popup --}}
|
||||
<a href="{{ $o['image_large'] }}/{{$c}}.jpg" class="fancybox-button" title="Project Name #{{$c}}" data-rel="fancybox-button"><i class="fa fa-search"></i></a>
|
||||
</em>
|
||||
<a class="recent-work-description" href="javascript:;">
|
||||
<strong>{{ $o['title'] }}</strong>
|
||||
<b>{{ $o['subtitle'] }}</b>
|
||||
</a>
|
||||
</div>
|
||||
@php($c++)
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END RECENT WORKS -->
|
@@ -0,0 +1,14 @@
|
||||
<!-- BEGIN BLOCKQUOTE BLOCK -->
|
||||
<div class="row quote-v1 margin-bottom-30" style="background: #002090;">
|
||||
@foreach ($so->block_quotes as $o)
|
||||
<div class="col-md-9">
|
||||
<span>{{ $o['title'] }}</span>
|
||||
</div>
|
||||
@if($o['image'])
|
||||
<div class="col-md-3 text-right">
|
||||
<a class="btn-transparent" href="#" target="_blank"><i class="fa fa-rocket margin-right-10"></i><img src="{{ $o['image'] }}" style="height: 50px;"></a>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
<!-- END BLOCKQUOTE BLOCK -->
|
@@ -0,0 +1,38 @@
|
||||
{{-- This is not working unless site_slider is running. Might be a problem with the carousel --}}
|
||||
|
||||
<!-- BEGIN CLIENTS -->
|
||||
<div class="row margin-bottom-40 our-clients">
|
||||
<div class="col-md-3">
|
||||
<h2><a href="javascript:;">Our Clients</a></h2>
|
||||
<p>{{ $so->clients_intro }}</p>
|
||||
</div>
|
||||
|
||||
{{-- @todo make sure this scrolls --}}
|
||||
<div class="col-md-9">
|
||||
<div class="owl-carousel owl-carousel6-brands">
|
||||
|
||||
@foreach($so->clients as $c)
|
||||
<div class="client-item">
|
||||
<a href="javascript:;">
|
||||
<img src="{{ $c['image'] }}" class="img-responsive" alt="">
|
||||
<img src="{{ $c['hover'] }}" class="color-img img-responsive" alt="">
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END CLIENTS -->
|
||||
|
||||
@section('scripts')
|
||||
<!-- END SLIDER -->
|
||||
@css('/site/js/jquery/plugins/owl.carousel/2.0.0/css/owl.carousel.css')
|
||||
@css('/site/css/animate.css')
|
||||
@js('/site/js/jquery/plugins/owl.carousel/2.0.0/js/owl.carousel.min.js','jq-owl-carousel','jquery')
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
// Layout.initOWL();
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,9 @@
|
||||
<fieldset class="form-group col-sm-12">
|
||||
<label>ADSL</label>
|
||||
|
||||
<div class="form-group col-sm-12 {{ $errors->has('options.address') ? 'has-error' : '' }}">
|
||||
<label for="options.address">Site Address</label>
|
||||
<input type="text" class="form-control" id="options.address" name="options[address]" placeholder="Site Address" value="{{ old('options.address') }}">
|
||||
<span class="help-block">{{ $errors->first('options.address') }}</span>
|
||||
</div>
|
||||
</fieldset>
|
@@ -0,0 +1,21 @@
|
||||
<fieldset class="form-group">
|
||||
<label class="col-md-12">VOIP</label>
|
||||
|
||||
<div class="form-group col-sm-6 {{ $errors->has('options.phonenumber') ? 'has-error' : '' }}">
|
||||
<label for="options.phonenumber">Phone Number</label>
|
||||
<input type="text" class="form-control" id="options.phonenumber" name="options[phonenumber]" placeholder="Phone Number with Area Code" value="{{ old('options.phonenumber') }}">
|
||||
<span class="help-block">{{ $errors->first('options.phonenumber') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6 {{ $errors->has('options.supplier') ? 'has-error' : '' }}">
|
||||
<label for="options.supplier">Existing Supplier</label>
|
||||
<input type="text" class="form-control" id="options.supplier" name="options[supplier]" placeholder="eg: Telstra" value="{{ old('options.supplier') }}">
|
||||
<span class="help-block">{{ $errors->first('options.supplier') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6 {{ $errors->has('options.supplieraccnum') ? 'has-error' : '' }}">
|
||||
<label for="options.supplieraccnum">Suppliers Account Number</label>
|
||||
<input type="text" class="form-control" id="options.supplieraccnum" name="options[supplieraccnum]" placeholder="Refer to Bill" value="{{ old('options.supplieraccnum') }}">
|
||||
<span class="help-block">{{ $errors->first('options.supplieraccnum') }}</span>
|
||||
</div>
|
||||
</fieldset>
|
@@ -0,0 +1,37 @@
|
||||
<div class="col-md-12">
|
||||
<p>{!! $o->description !!}</p>
|
||||
</div>
|
||||
|
||||
<table class="table table-condensed">
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<td class="text-right">{{ $o->product_type }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Setup Charges <sup>*</sup></th>
|
||||
<td class="text-right">${{ is_numeric($o->setup_cost) ? number_format($o->setup_cost,2) : $o->setup_cost }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Cost <sup>+</sup></th>
|
||||
<td class="text-right">${{ is_numeric($o->default_cost) ? number_format($o->default_cost,2) : $o->default_cost }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Default Billing</th>
|
||||
<td class="text-right">{{ is_numeric($o->default_billing) ? number_format($o->default_billing,2) : $o->default_billing }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Contract Term</th>
|
||||
<td class="text-right">{{ $o->contract_term }} mths</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Minimum Costs <sup>+*</sup></th>
|
||||
<td class="text-right">${{ is_numeric($o->minimum_cost) ? number_format($o->minimum_cost,2) : $o->minimum_cost }}</td>
|
||||
</tr>
|
||||
|
||||
<tfoot>
|
||||
<tr><td colspan="2"><sup>
|
||||
* Additional setup charges may apply for complex installations.<br>
|
||||
+ Additional charges may apply for regional installations.
|
||||
</sup></td></tr>
|
||||
</tfoot>
|
||||
</table>
|
@@ -0,0 +1,30 @@
|
||||
<div class="col-md-12">
|
||||
<p>{!! $o->description !!}</p>
|
||||
</div>
|
||||
|
||||
<table class="table table-condensed">
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<td class="text-right">VOIP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Setup Charges</th>
|
||||
<td class="text-right">${{ is_numeric($o->setup_cost) ? number_format($o->setup_cost,2) : $o->setup_cost }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Cost</th>
|
||||
<td class="text-right">${{ is_numeric($o->default_cost) ? number_format($o->default_cost,2) : $o->default_cost }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Default Billing</th>
|
||||
<td class="text-right">{{ is_numeric($o->default_billing) ? number_format($o->default_billing,2) : $o->default_billing }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Contract Term</th>
|
||||
<td class="text-right">{{ $o->contract_term }} mths</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Minimum Costs</th>
|
||||
<td class="text-right">${{ is_numeric($o->minimum_cost) ? number_format($o->minimum_cost,2) : $o->minimum_cost }}</td>
|
||||
</tr>
|
||||
</table>
|
@@ -0,0 +1,13 @@
|
||||
@if(View::exists('widgets.product.'.$o->category))
|
||||
<div class="col-md-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
{{-- Return Category Requirements --}}
|
||||
@include('widgets.product.'.$o->category)
|
||||
|
||||
{{-- Return Supplier Requirements --}}
|
||||
{{-- Return Product Requirements --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
@@ -0,0 +1,18 @@
|
||||
@if(View::exists('widgets.order.'.$o->category))
|
||||
<div class="col-md-12">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">Order Configuration</h3>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
{{-- Return Category Requirements --}}
|
||||
@include('widgets.order.'.$o->category)
|
||||
|
||||
{{-- Return Supplier Requirements --}}
|
||||
{{-- Return Product Requirements --}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
@@ -0,0 +1,14 @@
|
||||
<!-- BEGIN SERVICE BOX -->
|
||||
<div class="row service-box margin-bottom-40">
|
||||
@foreach ($so->services as $o)
|
||||
<div class="col-md-4 col-sm-4">
|
||||
<div class="service-box-heading">
|
||||
<em><i class="{{ $o['icon'] }}"></i></em>
|
||||
<span>{{ $o['title'] }}</span>
|
||||
</div>
|
||||
<p>{{ $o['text'] }}</p>
|
||||
<img src="{{ $o['image'] }}" class="col-md-10">
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
<!-- END SERVICE BOX -->
|
@@ -0,0 +1,82 @@
|
||||
<!-- BEGIN SLIDER -->
|
||||
<div class="page-slider margin-bottom-40">
|
||||
<div id="carousel-example-generic" class="carousel slide carousel-slider">
|
||||
<!-- Indicators -->
|
||||
<ol class="carousel-indicators carousel-indicators-frontend">
|
||||
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
|
||||
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
|
||||
</ol>
|
||||
|
||||
<!-- Wrapper for slides -->
|
||||
<div class="carousel-inner" role="listbox">
|
||||
|
||||
@foreach ($so->site_slider as $ss)
|
||||
@switch($ss['style'])
|
||||
|
||||
@case(1)
|
||||
<div class="item carousel-item active" style="background: {{ $ss['image'] }};">
|
||||
|
||||
<div class="container">
|
||||
<div class="carousel-position-six text-uppercase text-center" style="background: #000; color: #888; opacity: 0.5; font-style: bold;">
|
||||
<h2 class="margin-bottom-20 animate-delay carousel-title-v1" data-animation="animated fadeInDown">
|
||||
{!! $ss['title'] !!}
|
||||
</h2>
|
||||
<p class="carousel-subtitle-v5 border-top-bottom margin-bottom-30" data-animation="animated fadeInDown">{!! $ss['text'] !!}</p>
|
||||
@isset($ss['button'])
|
||||
<a class="carousel-btn-green" href="{{ $ss['button']['url'] }}" data-animation="animated fadeInUp">{!! $ss['button']['text'] !!}</a>
|
||||
@endisset
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@break
|
||||
|
||||
@case(2)
|
||||
<div class="item carousel-item" style="background: {{ $ss['image'] }};">
|
||||
|
||||
<div class="container">
|
||||
<div class="carousel-position-six">
|
||||
<h2 class="animate-delay carousel-title-v6 text-uppercase" data-animation="animated fadeInDown">
|
||||
{!! $ss['title'] !!}
|
||||
</h2>
|
||||
<p class="carousel-subtitle-v6 text-uppercase" data-animation="animated fadeInDown">
|
||||
{!! $ss['text'] !!}
|
||||
</p>
|
||||
<p class="carousel-subtitle-v7 margin-bottom-30" data-animation="animated fadeInDown">
|
||||
{!! $ss['text2'] !!}
|
||||
</p>
|
||||
@isset($ss['button'])
|
||||
<a class="carousel-btn-green" href="{{ $ss['button']['url'] }}" data-animation="animated fadeInUp">{!! $ss['button']['text'] !!}</a>
|
||||
@endisset
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@break
|
||||
|
||||
@endswitch
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<!-- Controls -->
|
||||
<a class="left carousel-control carousel-control-shop carousel-control-frontend" href="#carousel-example-generic" role="button" data-slide="prev">
|
||||
<i class="fa fa-angle-left" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="right carousel-control carousel-control-shop carousel-control-frontend" href="#carousel-example-generic" role="button" data-slide="next">
|
||||
<i class="fa fa-angle-right" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@section('scripts')
|
||||
<!-- END SLIDER -->
|
||||
@css('/site/js/jquery/plugins/owl.carousel/2.0.0/css/owl.carousel.css')
|
||||
@css('/site/css/animate.css')
|
||||
@js('/site/js/jquery/plugins/owl.carousel/2.0.0/js/owl.carousel.min.js','jq-owl-carousel','jquery')<!-- slider for products -->
|
||||
@js('/pages/js/bs-carousel.js','bs-carousel','jq-owl-carousel')
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
Layout.initOWL();
|
||||
});
|
||||
</script>
|
||||
@append
|
@@ -0,0 +1,15 @@
|
||||
<!-- BEGIN STEPS -->
|
||||
<div class="row margin-bottom-40 front-steps-wrapper front-steps-count-3">
|
||||
{{-- Dynamically count the steps and choose the appropriate col-md-x --}}
|
||||
@php($c=0)
|
||||
@foreach ($so->steps as $o)
|
||||
<div class="col-md-4 col-sm-4 front-step-col">
|
||||
<div class="front-step front-step{{ ++$c }}">
|
||||
<h2>{{ $o['title'] }}</h2>
|
||||
<p>{{ $o['description'] }}</p>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
<!-- END STEPS -->
|
@@ -0,0 +1,29 @@
|
||||
<!-- TABS -->
|
||||
<div class="col-md-7 tab-style-1">
|
||||
<ul class="nav nav-tabs">
|
||||
@php($c=0)
|
||||
@foreach ($so->page_tabs as $o)
|
||||
<li @if(! $c++) class="active" @endif><a href="#tab-{{ $c }}" data-toggle="tab">{{ $o['title'] }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
@php($c=0)
|
||||
@foreach ($so->page_tabs as $o)
|
||||
<div class="tab-pane row fade in @if(! $c++) active @endif" id="tab-{{ $c }}">
|
||||
<div class="col-md-3 col-sm-3">
|
||||
<a href="{{ $o['image'] }}" class="fancybox-button" title="{{ $o['title'] }}" data-rel="fancybox-button">
|
||||
<img class="img-responsive" src="{{ $o['image'] }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9 col-sm-9">
|
||||
<p class="margin-bottom-10">{{ $o['text'] }}</p>
|
||||
<p><a class="more" href="javascript:;">Read more <i class="icon-angle-right"></i></a></p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<!-- END TABS -->
|
||||
|
@@ -0,0 +1,27 @@
|
||||
<!-- TESTIMONIALS -->
|
||||
<div class="col-md-5 testimonials-v1">
|
||||
<div id="myCarousel" class="carousel slide">
|
||||
<!-- Carousel items -->
|
||||
<div class="carousel-inner">
|
||||
@php($c=0)
|
||||
@foreach($so->testimonials as $o)
|
||||
<div class="item @if(! $c++) active @endif">
|
||||
<blockquote><p>{{ $o['quote'] }}</p></blockquote>
|
||||
<div class="carousel-info">
|
||||
<img class="pull-left" src="{{ $o['photo'] }}" alt="">
|
||||
<div class="pull-left">
|
||||
<span class="testimonials-name">{{ $o['name'] }}</span>
|
||||
<span class="testimonials-post">{{ $o['title'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<!-- Carousel nav -->
|
||||
<a class="left-btn" href="#myCarousel" data-slide="prev"></a>
|
||||
<a class="right-btn" href="#myCarousel" data-slide="next"></a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END TESTIMONIALS -->
|
||||
{{-- @todo move the required javascript here --}}
|
Reference in New Issue
Block a user