mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-08 12:12:48 +01:00
Created quotes, invoices and payments pages for clients
This commit is contained in:
parent
39f424fcfe
commit
113cb6747c
@ -96,6 +96,8 @@ module.exports = function(grunt) {
|
||||
'public/vendor/bootstrap/dist/css/bootstrap.min.css',
|
||||
'public/css/bootstrap.splash.css',
|
||||
'public/css/splash.css',
|
||||
'public/vendor/datatables/media/css/jquery.dataTables.css',
|
||||
'public/vendor/datatables-bootstrap3/BS3/assets/css/datatables.css',
|
||||
],
|
||||
dest: 'public/built.public.css',
|
||||
nonull: true
|
||||
|
@ -39,6 +39,18 @@ class InvoiceController extends \BaseController {
|
||||
return View::make('list', $data);
|
||||
}
|
||||
|
||||
public function clientIndex()
|
||||
{
|
||||
$data = [
|
||||
'showClientHeader' => true,
|
||||
'title' => trans('texts.invoices'),
|
||||
'entityType'=>ENTITY_INVOICE,
|
||||
'columns'=>Utils::trans(['invoice_number', 'invoice_date', 'invoice_total', 'balance_due', 'due_date'])
|
||||
];
|
||||
|
||||
return View::make('public_list', $data);
|
||||
}
|
||||
|
||||
public function getDatatable($clientPublicId = null)
|
||||
{
|
||||
$accountId = Auth::user()->account_id;
|
||||
@ -47,6 +59,23 @@ class InvoiceController extends \BaseController {
|
||||
return $this->invoiceRepo->getDatatable($accountId, $clientPublicId, ENTITY_INVOICE, $search);
|
||||
}
|
||||
|
||||
public function getClientDatatable()
|
||||
{
|
||||
//$accountId = Auth::user()->account_id;
|
||||
$search = Input::get('sSearch');
|
||||
$invitationKey = Session::get('invitation_key');
|
||||
$invitation = Invitation::where('invitation_key', '=', $invitationKey)->firstOrFail();
|
||||
|
||||
$invoice = $invitation->invoice;
|
||||
|
||||
if (!$invoice || $invoice->is_deleted)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
return $this->invoiceRepo->getClientDatatable($invitation->contact_id, ENTITY_INVOICE, $search);
|
||||
}
|
||||
|
||||
public function getRecurringDatatable($clientPublicId = null)
|
||||
{
|
||||
$query = $this->invoiceRepo->getRecurringInvoices(Auth::user()->account_id, $clientPublicId, Input::get('sSearch'));
|
||||
@ -85,7 +114,7 @@ class InvoiceController extends \BaseController {
|
||||
|
||||
public function view($invitationKey)
|
||||
{
|
||||
$invitation = Invitation::withTrashed()->where('invitation_key', '=', $invitationKey)->firstOrFail();
|
||||
$invitation = Invitation::where('invitation_key', '=', $invitationKey)->firstOrFail();
|
||||
|
||||
$invoice = $invitation->invoice;
|
||||
|
||||
@ -113,12 +142,15 @@ class InvoiceController extends \BaseController {
|
||||
return View::make('invoices.deleted');
|
||||
}
|
||||
|
||||
if (!Auth::check() || Auth::user()->account_id != $invoice->account_id)
|
||||
if (!Session::has($invitationKey) && (!Auth::check() || Auth::user()->account_id != $invoice->account_id))
|
||||
{
|
||||
Activity::viewInvoice($invitation);
|
||||
Event::fire('invoice.viewed', $invoice);
|
||||
Event::fire('invoice.viewed', $invoice);
|
||||
}
|
||||
|
||||
Session::set($invitationKey, true);
|
||||
Session::set('invitation_key', $invitationKey);
|
||||
|
||||
$client->account->loadLocalizationSettings();
|
||||
|
||||
$invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date);
|
||||
@ -126,7 +158,7 @@ class InvoiceController extends \BaseController {
|
||||
$invoice->is_pro = $client->account->isPro();
|
||||
|
||||
$data = array(
|
||||
'hideHeader' => true,
|
||||
'showClientHeader' => true,
|
||||
'showBreadcrumbs' => false,
|
||||
'invoice' => $invoice->hidePrivateFields(),
|
||||
'invitation' => $invitation,
|
||||
|
@ -28,6 +28,16 @@ class PaymentController extends \BaseController
|
||||
));
|
||||
}
|
||||
|
||||
public function clientIndex()
|
||||
{
|
||||
return View::make('public_list', array(
|
||||
'showClientHeader' => true,
|
||||
'entityType'=>ENTITY_PAYMENT,
|
||||
'title' => trans('texts.payments'),
|
||||
'columns'=>Utils::trans(['invoice', 'transaction_reference', 'method', 'payment_amount', 'payment_date'])
|
||||
));
|
||||
}
|
||||
|
||||
public function getDatatable($clientPublicId = null)
|
||||
{
|
||||
$payments = $this->paymentRepo->find($clientPublicId, Input::get('sSearch'));
|
||||
@ -63,6 +73,30 @@ class PaymentController extends \BaseController
|
||||
->make();
|
||||
}
|
||||
|
||||
public function getClientDatatable()
|
||||
{
|
||||
$search = Input::get('sSearch');
|
||||
$invitationKey = Session::get('invitation_key');
|
||||
$invitation = Invitation::where('invitation_key', '=', $invitationKey)->with('contact.client')->firstOrFail();
|
||||
|
||||
$invoice = $invitation->invoice;
|
||||
|
||||
if (!$invoice || $invoice->is_deleted)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
$payments = $this->paymentRepo->find($invitation->contact->client->public_id, Input::get('sSearch'));
|
||||
|
||||
return Datatable::query($payments)
|
||||
->addColumn('invoice_number', function($model) { return $model->invoice_number; })
|
||||
->addColumn('transaction_reference', function($model) { return $model->transaction_reference ? $model->transaction_reference : '<i>Manual entry</i>'; })
|
||||
->addColumn('payment_type', function($model) { return $model->payment_type ? $model->payment_type : ($model->account_gateway_id ? '<i>Online payment</i>' : ''); })
|
||||
->addColumn('amount', function($model) { return Utils::formatMoney($model->amount, $model->currency_id); })
|
||||
->addColumn('payment_date', function($model) { return Utils::dateToString($model->payment_date); })
|
||||
->make();
|
||||
}
|
||||
|
||||
|
||||
public function create($clientPublicId = 0, $invoicePublicId = 0)
|
||||
{
|
||||
|
@ -46,6 +46,20 @@ class QuoteController extends \BaseController {
|
||||
return View::make('list', $data);
|
||||
}
|
||||
|
||||
|
||||
public function clientIndex()
|
||||
{
|
||||
$data = [
|
||||
'showClientHeader' => true,
|
||||
'title' => trans('texts.quotes'),
|
||||
'entityType'=>ENTITY_QUOTE,
|
||||
'columns'=>Utils::trans(['quote_number', 'quote_date', 'quote_total', 'due_date'])
|
||||
];
|
||||
|
||||
return View::make('public_list', $data);
|
||||
}
|
||||
|
||||
|
||||
public function getDatatable($clientPublicId = null)
|
||||
{
|
||||
$accountId = Auth::user()->account_id;
|
||||
@ -54,6 +68,22 @@ class QuoteController extends \BaseController {
|
||||
return $this->invoiceRepo->getDatatable($accountId, $clientPublicId, ENTITY_QUOTE, $search);
|
||||
}
|
||||
|
||||
public function getClientDatatable()
|
||||
{
|
||||
$search = Input::get('sSearch');
|
||||
$invitationKey = Session::get('invitation_key');
|
||||
$invitation = Invitation::where('invitation_key', '=', $invitationKey)->firstOrFail();
|
||||
|
||||
$invoice = $invitation->invoice;
|
||||
|
||||
if (!$invoice || $invoice->is_deleted)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
return $this->invoiceRepo->getClientDatatable($invitation->contact_id, ENTITY_QUOTE, $search);
|
||||
}
|
||||
|
||||
public function create($clientPublicId = 0)
|
||||
{
|
||||
if (!Utils::isPro())
|
||||
|
@ -83,6 +83,35 @@ class InvoiceRepository
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function getClientDatatable($contactId, $entityType, $search)
|
||||
{
|
||||
$query = \DB::table('invitations')
|
||||
->join('invoices', 'invoices.id', '=','invitations.invoice_id')
|
||||
->join('clients', 'clients.id', '=','invoices.client_id')
|
||||
//->join('contacts', 'contacts.client_id', '=', 'clients.id')
|
||||
->where('invitations.contact_id', '=', $contactId)
|
||||
->where('invitations.deleted_at', '=', null)
|
||||
->where('invoices.is_quote', '=', $entityType == ENTITY_QUOTE)
|
||||
->where('invoices.is_deleted', '=', false)
|
||||
->where('clients.deleted_at', '=', null)
|
||||
->where('invoices.is_recurring', '=', false)
|
||||
->select('invitation_key', 'invoice_number', 'invoice_date', 'invoices.balance as balance', 'due_date', 'clients.public_id as client_public_id', 'clients.name as client_name', 'invoices.public_id', 'amount', 'start_date', 'end_date', 'clients.currency_id');
|
||||
|
||||
$table = \Datatable::query($query)
|
||||
->addColumn('invoice_number', function($model) use ($entityType) { return link_to('/view/' . $model->invitation_key, $model->invoice_number); })
|
||||
->addColumn('invoice_date', function($model) { return Utils::fromSqlDate($model->invoice_date); })
|
||||
->addColumn('amount', function($model) { return Utils::formatMoney($model->amount, $model->currency_id); });
|
||||
|
||||
if ($entityType == ENTITY_INVOICE)
|
||||
{
|
||||
$table->addColumn('balance', function($model) { return Utils::formatMoney($model->balance, $model->currency_id); });
|
||||
}
|
||||
|
||||
return $table->addColumn('due_date', function($model) { return Utils::fromSqlDate($model->due_date); })
|
||||
//->addColumn('invoice_status_name', function($model) { return $model->invoice_status_name; })
|
||||
->make();
|
||||
}
|
||||
|
||||
public function getDatatable($accountId, $clientPublicId = null, $entityType, $search)
|
||||
{
|
||||
$query = $this->getInvoices($accountId, $clientPublicId, $entityType, $search)
|
||||
@ -157,7 +186,6 @@ class InvoiceRepository
|
||||
->make();
|
||||
}
|
||||
|
||||
|
||||
public function getErrors($input)
|
||||
{
|
||||
$contact = (array) $input->client->contacts[0];
|
||||
|
@ -42,10 +42,17 @@ Route::get('log_error', 'HomeController@logError');
|
||||
Route::get('invoice_now', 'HomeController@invoiceNow');
|
||||
Route::post('get_started', 'AccountController@getStarted');
|
||||
|
||||
// Client visible pages
|
||||
Route::get('view/{invitation_key}', 'InvoiceController@view');
|
||||
Route::get('payment/{invitation_key}', 'PaymentController@show_payment');
|
||||
Route::post('payment/{invitation_key}', 'PaymentController@do_payment');
|
||||
Route::get('complete', 'PaymentController@offsite_payment');
|
||||
Route::get('client/quotes', 'QuoteController@clientIndex');
|
||||
Route::get('client/invoices', 'InvoiceController@clientIndex');
|
||||
Route::get('client/payments', 'PaymentController@clientIndex');
|
||||
Route::get('api/client.quotes', array('as'=>'api.client.quotes', 'uses'=>'QuoteController@getClientDatatable'));
|
||||
Route::get('api/client.invoices', array('as'=>'api.client.invoices', 'uses'=>'InvoiceController@getClientDatatable'));
|
||||
Route::get('api/client.payments', array('as'=>'api.client.payments', 'uses'=>'PaymentController@getClientDatatable'));
|
||||
|
||||
Route::get('license', 'PaymentController@show_license_payment');
|
||||
Route::post('license', 'PaymentController@do_license_payment');
|
||||
|
@ -3,41 +3,26 @@
|
||||
|
||||
@section('head')
|
||||
|
||||
<link href="{{ asset('built.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
||||
<link href="{{ asset('built.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
||||
|
||||
<style type="text/css">
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
background-color: #EEEEEE;
|
||||
padding-top: 114px;
|
||||
}
|
||||
|
||||
/* Fix for header covering stuff when the screen is narrower */
|
||||
@media screen and (min-width: 1200px) {
|
||||
body {
|
||||
padding-top: 56px;
|
||||
background-color: #EEEEEE;
|
||||
padding-top: 114px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@include('script')
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
/* Set the defaults for DataTables initialisation */
|
||||
$.extend( true, $.fn.dataTable.defaults, {
|
||||
"sDom": "t<'row-fluid'<'span6'i><'span6'p>>",
|
||||
"sPaginationType": "bootstrap",
|
||||
"bInfo": true,
|
||||
"oLanguage": {
|
||||
'sEmptyTable': "{{ trans('texts.empty_table') }}",
|
||||
'sLengthMenu': '_MENU_',
|
||||
'sSearch': ''
|
||||
/* Fix for header covering stuff when the screen is narrower */
|
||||
@media screen and (min-width: 1200px) {
|
||||
body {
|
||||
padding-top: 56px;
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
</script>
|
||||
</style>
|
||||
|
||||
@include('script')
|
||||
|
||||
@stop
|
||||
|
||||
@section('body')
|
||||
@ -317,18 +302,6 @@ Want something changed? We're {{ link_to('https://github.com/hillelcoren/invoice
|
||||
</div>
|
||||
|
||||
<div style="background-color: #fff; padding-left: 16px; padding-right: 16px" id="proPlanDiv">
|
||||
<!--
|
||||
<p/>
|
||||
<b>Go Pro to Unlock Premium Invoice Ninja Features</b><p/>
|
||||
We believe that the free version of Invoice Ninja is a truly awesome product loaded
|
||||
with the key features you need to bill your clients electronically. But for those who
|
||||
crave still more Ninja awesomeness, we've unmasked the Invoice Ninja Pro plan, which
|
||||
offers more versatility, power and customization options for just $50 per year.
|
||||
<br/> <br/>
|
||||
<img src="{{ asset('images/pro-plan-chart.png') }}"/>
|
||||
-->
|
||||
|
||||
|
||||
<section class="plans">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
@ -1,7 +1 @@
|
||||
@extends('header')
|
||||
|
||||
@section('content')
|
||||
|
||||
The requested invoice is no longer available.
|
||||
|
||||
@stop
|
||||
The requested invoice is no longer available.
|
@ -5,7 +5,7 @@
|
||||
|
||||
@include('script')
|
||||
|
||||
<link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/>
|
||||
<!-- <link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/> -->
|
||||
|
||||
<script src="{{ asset('js/pdf_viewer.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ asset('js/compatibility.js') }}" type="text/javascript"></script>
|
||||
@ -30,7 +30,7 @@
|
||||
</div>
|
||||
@else
|
||||
<div class="pull-right">
|
||||
{{ Button::primary('Download PDF', array('onclick' => 'onDownloadClick()', 'class' => 'btn-lg')) }}
|
||||
{{ Button::success('Download PDF', array('onclick' => 'onDownloadClick()', 'class' => 'btn-lg')) }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
@ -29,19 +29,31 @@
|
||||
<script src="{{ asset('built.js') }}?no_cache={{ NINJA_VERSION }}" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var NINJA = NINJA || {};
|
||||
NINJA.isRegistered = {{ Utils::isRegistered() ? 'true' : 'false' }};
|
||||
|
||||
window.onerror = function(e) {
|
||||
try {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '{{ URL::to('log_error') }}',
|
||||
data: 'error='+encodeURIComponent(e.message + ' - ' + e.filename + ': ' + e.lineno)+'&url='+encodeURIComponent(window.location)
|
||||
});
|
||||
} catch(err) {}
|
||||
return false;
|
||||
}
|
||||
var NINJA = NINJA || {};
|
||||
NINJA.isRegistered = {{ Utils::isRegistered() ? 'true' : 'false' }};
|
||||
|
||||
window.onerror = function(e) {
|
||||
try {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '{{ URL::to('log_error') }}',
|
||||
data: 'error='+encodeURIComponent(e.message + ' - ' + e.filename + ': ' + e.lineno)+'&url='+encodeURIComponent(window.location)
|
||||
});
|
||||
} catch(err) {}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Set the defaults for DataTables initialisation */
|
||||
$.extend( true, $.fn.dataTable.defaults, {
|
||||
"sDom": "t<'row-fluid'<'span6'i><'span6'p>>",
|
||||
"sPaginationType": "bootstrap",
|
||||
"bInfo": true,
|
||||
"oLanguage": {
|
||||
'sEmptyTable': "{{ trans('texts.empty_table') }}",
|
||||
'sLengthMenu': '_MENU_',
|
||||
'sSearch': ''
|
||||
}
|
||||
} );
|
||||
</script>
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
|
@ -83,7 +83,7 @@
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
@if (!isset($hideHeader) || !$hideHeader)
|
||||
@if ((!isset($hideHeader) || !$hideHeader) && (!isset($showClientHeader) || !$showClientHeader))
|
||||
<div class="navbar-top navbar hide-phone" style="margin-bottom:0px">
|
||||
<div class="container">
|
||||
<div class="navbar-inner">
|
||||
@ -113,7 +113,8 @@
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button> </div>
|
||||
</button>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="hide-desktop">{{ link_to('http://blog.invoiceninja.com', trans('public.link_blog') ) }}</li>
|
||||
@ -133,11 +134,20 @@
|
||||
@else
|
||||
<div class="navbar" style="margin-bottom:0px">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="https://www.invoiceninja.com/"><img src="{{ asset('images/invoiceninja-logo.png') }}"></a>
|
||||
</div>
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="https://www.invoiceninja.com/"><img src="{{ asset('images/invoiceninja-logo.png') }}"></a>
|
||||
</div>
|
||||
@if (isset($showClientHeader) && $showClientHeader)
|
||||
<ul class="nav navbar-nav">
|
||||
<span/>
|
||||
<li>{{ link_to('/client/quotes', trans('texts.quotes') ) }}</li>
|
||||
<li>{{ link_to('/client/invoices', trans('texts.invoices') ) }}</li>
|
||||
<li>{{ link_to('/client/payments', trans('texts.payments') ) }}</li>
|
||||
<span/>
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div style="background-color:#211f1f; width:100%">
|
||||
|
133
app/views/public_list.blade.php
Executable file
133
app/views/public_list.blade.php
Executable file
@ -0,0 +1,133 @@
|
||||
@extends('public.header')
|
||||
|
||||
@section('content')
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
body {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
table.dataTable { border-radius: 3px; border-collapse: collapse;
|
||||
/*border-spacing: 0;*/}
|
||||
table.dataTable thead > tr > th, table.invoice-table thead > tr > th {
|
||||
background-color: #0b4d78 !important;
|
||||
/*background-color: #e37329 !important;*/
|
||||
color:#fff;
|
||||
}
|
||||
th:first-child {
|
||||
border-radius: 3px 0 0 0;
|
||||
border-left: none;
|
||||
}
|
||||
th:last-child {
|
||||
border-radius: 0 3px 0 0;
|
||||
}
|
||||
|
||||
tr {border: none;}
|
||||
/*th {border-left: 1px solid #d26b26; }*/
|
||||
th {border-left: 1px solid #FFFFFF; }
|
||||
.table>thead>tr>th, .table>tbody>tr>th, .table>tfoot>tr>th, .table>thead>tr>td, .table>tbody>tr>td, .table>tfoot>tr>td {
|
||||
vertical-align: middle;
|
||||
border-top: none;
|
||||
border-bottom: 1px solid #dfe0e1;
|
||||
}
|
||||
table.dataTable.no-footer {
|
||||
border-bottom: none;
|
||||
}
|
||||
.table-striped>tbody>tr:nth-child(odd)>td, .table-striped>tbody>tr:nth-child(odd)>th {
|
||||
background-color: #fff;
|
||||
}
|
||||
table.table thead .sorting_asc {
|
||||
background: url('../images/sort_asc.png') no-repeat 90% 50%;
|
||||
}
|
||||
table.table thead .sorting_desc {
|
||||
background: url('../images/sort_desc.png') no-repeat 90% 50%;
|
||||
}
|
||||
table.dataTable thead th, table.dataTable thead td, table.invoice-table thead th, table.invoice-table thead td {
|
||||
padding: 12px 10px;
|
||||
}
|
||||
table.dataTable tbody th, table.dataTable tbody td {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.dataTables_wrapper {
|
||||
padding-top: 16px;
|
||||
}
|
||||
|
||||
table.table thead > tr > th {
|
||||
border-bottom-width: 0px;
|
||||
}
|
||||
|
||||
table td {
|
||||
max-width: 250px;
|
||||
}
|
||||
.pagination>.active>a, .pagination>.active>span, .pagination>.active>a:hover, .pagination>.active>span:hover, .pagination>.active>a:focus, .pagination>.active>span:focus {
|
||||
background-color: #0b4d78;
|
||||
border-color: #0b4d78;
|
||||
}
|
||||
.pagination>li:first-child>a, .pagination>li:first-child>span {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-top-left-radius: 3px;
|
||||
}
|
||||
|
||||
/* hide table sorting indicators */
|
||||
table.table thead .sorting { background: url('') no-repeat center right; }
|
||||
table.dataTable tr.odd td.sorting_1 { background-color: white; }
|
||||
table.dataTable tr.odd td.sorting_2 { background-color: white; }
|
||||
table.dataTable tr.odd td.sorting_3 { background-color: white; }
|
||||
table.dataTable tr.even td.sorting_1 { background-color: white; }
|
||||
table.dataTable tr.even td.sorting_2 { background-color: white; }
|
||||
table.dataTable tr.even td.sorting_3 { background-color: white; }
|
||||
|
||||
</style>
|
||||
|
||||
<div class="container" style="min-height:600px;">
|
||||
|
||||
<p> </p>
|
||||
|
||||
<!--
|
||||
<div id="top_right_buttons" class="pull-right">
|
||||
<input id="tableFilter" type="text" style="width:140px;margin-right:17px" class="form-control pull-left" placeholder="{{ trans('texts.filter') }}"/>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<h2>{{ $title }}</h2>
|
||||
|
||||
{{ Datatable::table()
|
||||
->addColumn($columns)
|
||||
->setUrl(route('api.client.' . $entityType . 's'))
|
||||
->setOptions('sPaginationType', 'bootstrap')
|
||||
->render('datatable') }}
|
||||
|
||||
</div>
|
||||
|
||||
@stop
|
||||
|
||||
@section('onReady')
|
||||
|
||||
var tableFilter = '';
|
||||
var searchTimeout = false;
|
||||
|
||||
var oTable0 = $('#DataTables_Table_0').dataTable();
|
||||
function filterTable(val) {
|
||||
if (val == tableFilter) {
|
||||
return;
|
||||
}
|
||||
tableFilter = val;
|
||||
oTable0.fnFilter(val);
|
||||
@if (isset($secEntityType))
|
||||
oTable1.fnFilter(val);
|
||||
@endif
|
||||
}
|
||||
|
||||
$('#tableFilter').on('keyup', function(){
|
||||
if (searchTimeout) {
|
||||
window.clearTimeout(searchTimeout);
|
||||
}
|
||||
|
||||
searchTimeout = setTimeout(function() {
|
||||
filterTable($('#tableFilter').val());
|
||||
}, 1000);
|
||||
})
|
||||
|
||||
@stop
|
@ -31304,17 +31304,6 @@ if ( $.fn.DataTable.TableTools ) {
|
||||
} );
|
||||
}
|
||||
|
||||
/*
|
||||
$(document).ready(function() {
|
||||
$('#example').dataTable( {
|
||||
"sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
|
||||
"sPaginationType": "bootstrap",
|
||||
"oLanguage": {
|
||||
"sLengthMenu": "_MENU_ records per page"
|
||||
}
|
||||
} );
|
||||
} );
|
||||
*/
|
||||
|
||||
function isStorageSupported() {
|
||||
try {
|
||||
|
@ -170,7 +170,7 @@ ul.navbar-nav li a:hover {
|
||||
.nav>li>a:hover, .nav>li>a:focus {
|
||||
background-color: transparent;
|
||||
}
|
||||
.container>.navbar-collapse {
|
||||
z.container>.navbar-collapse {
|
||||
margin-right: -15px;
|
||||
}
|
||||
.navbar-top {
|
||||
@ -661,6 +661,7 @@ section.faq .contact-box a {
|
||||
section.faq .contact-box p {
|
||||
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #2299c0;
|
||||
@ -676,6 +677,7 @@ section.faq .contact-box p {
|
||||
.btn-primary:hover {
|
||||
background-color: #2299c0;
|
||||
}
|
||||
|
||||
.btn.green {
|
||||
background-color: #30ab82;
|
||||
}
|
||||
@ -1385,3 +1387,581 @@ table.compare-table-paid th {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Table styles
|
||||
*/
|
||||
table.dataTable {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
clear: both;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
/*
|
||||
* Header and footer styles
|
||||
*/
|
||||
/*
|
||||
* Body styles
|
||||
*/
|
||||
}
|
||||
table.dataTable thead th,
|
||||
table.dataTable tfoot th {
|
||||
font-weight: bold;
|
||||
}
|
||||
table.dataTable thead th,
|
||||
table.dataTable thead td {
|
||||
padding: 10px 18px;
|
||||
border-bottom: 1px solid #111111;
|
||||
}
|
||||
table.dataTable thead th:active,
|
||||
table.dataTable thead td:active {
|
||||
outline: none;
|
||||
}
|
||||
table.dataTable tfoot th,
|
||||
table.dataTable tfoot td {
|
||||
padding: 10px 18px 6px 18px;
|
||||
border-top: 1px solid #111111;
|
||||
}
|
||||
table.dataTable thead .sorting_asc,
|
||||
table.dataTable thead .sorting_desc,
|
||||
table.dataTable thead .sorting {
|
||||
cursor: pointer;
|
||||
*cursor: hand;
|
||||
}
|
||||
table.dataTable thead .sorting {
|
||||
background: url("vendor/datatables/media/css/../images/sort_both.png") no-repeat center right;
|
||||
}
|
||||
table.dataTable thead .sorting_asc {
|
||||
background: url("vendor/datatables/media/css/../images/sort_asc.png") no-repeat center right;
|
||||
}
|
||||
table.dataTable thead .sorting_desc {
|
||||
background: url("vendor/datatables/media/css/../images/sort_desc.png") no-repeat center right;
|
||||
}
|
||||
table.dataTable thead .sorting_asc_disabled {
|
||||
background: url("vendor/datatables/media/css/../images/sort_asc_disabled.png") no-repeat center right;
|
||||
}
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
background: url("vendor/datatables/media/css/../images/sort_desc_disabled.png") no-repeat center right;
|
||||
}
|
||||
table.dataTable tbody tr {
|
||||
background-color: white;
|
||||
}
|
||||
table.dataTable tbody tr.selected {
|
||||
background-color: #b0bed9;
|
||||
}
|
||||
table.dataTable tbody th,
|
||||
table.dataTable tbody td {
|
||||
padding: 8px 10px;
|
||||
}
|
||||
table.dataTable th.center,
|
||||
table.dataTable td.center,
|
||||
table.dataTable td.dataTables_empty {
|
||||
text-align: center;
|
||||
}
|
||||
table.dataTable th.right,
|
||||
table.dataTable td.right {
|
||||
text-align: right;
|
||||
}
|
||||
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
|
||||
border-top: 1px solid #dddddd;
|
||||
}
|
||||
table.dataTable.row-border tbody tr:first-child th,
|
||||
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
|
||||
table.dataTable.display tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
|
||||
border-top: 1px solid #dddddd;
|
||||
border-right: 1px solid #dddddd;
|
||||
}
|
||||
table.dataTable.cell-border tbody tr th:first-child,
|
||||
table.dataTable.cell-border tbody tr td:first-child {
|
||||
border-left: 1px solid #dddddd;
|
||||
}
|
||||
table.dataTable.cell-border tbody tr:first-child th,
|
||||
table.dataTable.cell-border tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
|
||||
background-color: #abb9d3;
|
||||
}
|
||||
table.dataTable.hover tbody tr:hover,
|
||||
table.dataTable.hover tbody tr.odd:hover,
|
||||
table.dataTable.hover tbody tr.even:hover, table.dataTable.display tbody tr:hover,
|
||||
table.dataTable.display tbody tr.odd:hover,
|
||||
table.dataTable.display tbody tr.even:hover {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
table.dataTable.hover tbody tr:hover.selected,
|
||||
table.dataTable.hover tbody tr.odd:hover.selected,
|
||||
table.dataTable.hover tbody tr.even:hover.selected, table.dataTable.display tbody tr:hover.selected,
|
||||
table.dataTable.display tbody tr.odd:hover.selected,
|
||||
table.dataTable.display tbody tr.even:hover.selected {
|
||||
background-color: #a9b7d1;
|
||||
}
|
||||
table.dataTable.order-column tbody tr > .sorting_1,
|
||||
table.dataTable.order-column tbody tr > .sorting_2,
|
||||
table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
|
||||
table.dataTable.display tbody tr > .sorting_2,
|
||||
table.dataTable.display tbody tr > .sorting_3 {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
table.dataTable.order-column tbody tr.selected > .sorting_1,
|
||||
table.dataTable.order-column tbody tr.selected > .sorting_2,
|
||||
table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
|
||||
table.dataTable.display tbody tr.selected > .sorting_2,
|
||||
table.dataTable.display tbody tr.selected > .sorting_3 {
|
||||
background-color: #acbad4;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
|
||||
background-color: #a6b3cd;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
|
||||
background-color: #a7b5ce;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
|
||||
background-color: #a9b6d0;
|
||||
}
|
||||
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
||||
background-color: #fbfbfb;
|
||||
}
|
||||
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
||||
background-color: #fdfdfd;
|
||||
}
|
||||
table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
|
||||
background-color: #acbad4;
|
||||
}
|
||||
table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
|
||||
background-color: #adbbd6;
|
||||
}
|
||||
table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
|
||||
background-color: #afbdd8;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover > .sorting_1,
|
||||
table.dataTable.display tbody tr.odd:hover > .sorting_1,
|
||||
table.dataTable.display tbody tr.even:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1,
|
||||
table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_1,
|
||||
table.dataTable.order-column.hover tbody tr.even:hover > .sorting_1 {
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover > .sorting_2,
|
||||
table.dataTable.display tbody tr.odd:hover > .sorting_2,
|
||||
table.dataTable.display tbody tr.even:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2,
|
||||
table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_2,
|
||||
table.dataTable.order-column.hover tbody tr.even:hover > .sorting_2 {
|
||||
background-color: #ebebeb;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover > .sorting_3,
|
||||
table.dataTable.display tbody tr.odd:hover > .sorting_3,
|
||||
table.dataTable.display tbody tr.even:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3,
|
||||
table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_3,
|
||||
table.dataTable.order-column.hover tbody tr.even:hover > .sorting_3 {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover.selected > .sorting_1,
|
||||
table.dataTable.display tbody tr.odd:hover.selected > .sorting_1,
|
||||
table.dataTable.display tbody tr.even:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1,
|
||||
table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_1,
|
||||
table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_1 {
|
||||
background-color: #a1aec7;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover.selected > .sorting_2,
|
||||
table.dataTable.display tbody tr.odd:hover.selected > .sorting_2,
|
||||
table.dataTable.display tbody tr.even:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2,
|
||||
table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_2,
|
||||
table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_2 {
|
||||
background-color: #a2afc8;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover.selected > .sorting_3,
|
||||
table.dataTable.display tbody tr.odd:hover.selected > .sorting_3,
|
||||
table.dataTable.display tbody tr.even:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3,
|
||||
table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_3,
|
||||
table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_3 {
|
||||
background-color: #a4b2cb;
|
||||
}
|
||||
table.dataTable.no-footer {
|
||||
border-bottom: 1px solid #111111;
|
||||
}
|
||||
|
||||
table.dataTable,
|
||||
table.dataTable th,
|
||||
table.dataTable td {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
/*
|
||||
* Control feature layout
|
||||
*/
|
||||
.dataTables_wrapper {
|
||||
position: relative;
|
||||
clear: both;
|
||||
*zoom: 1;
|
||||
zoom: 1;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_length {
|
||||
float: left;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter input {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_info {
|
||||
clear: both;
|
||||
float: left;
|
||||
padding-top: 0.755em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
float: right;
|
||||
text-align: right;
|
||||
padding-top: 0.25em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
min-width: 1.5em;
|
||||
padding: 0.5em 1em;
|
||||
margin-left: 2px;
|
||||
text-align: center;
|
||||
text-decoration: none !important;
|
||||
cursor: pointer;
|
||||
*cursor: hand;
|
||||
color: #333333 !important;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
||||
color: #333333 !important;
|
||||
border: 1px solid #cacaca;
|
||||
background-color: white;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, gainsboro));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, white 0%, gainsboro 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(top, white 0%, gainsboro 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(top, white 0%, gainsboro 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(top, white 0%, gainsboro 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to bottom, white 0%, gainsboro 100%);
|
||||
/* W3C */
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
||||
cursor: default;
|
||||
color: #666 !important;
|
||||
border: 1px solid transparent;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
|
||||
color: white !important;
|
||||
border: 1px solid #111111;
|
||||
background-color: #585858;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111111));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #585858 0%, #111111 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(top, #585858 0%, #111111 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(top, #585858 0%, #111111 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(top, #585858 0%, #111111 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to bottom, #585858 0%, #111111 100%);
|
||||
/* W3C */
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
||||
outline: none;
|
||||
background-color: #2b2b2b;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* W3C */
|
||||
box-shadow: inset 0 0 3px #111;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_processing {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
margin-left: -50%;
|
||||
margin-top: -25px;
|
||||
padding-top: 20px;
|
||||
text-align: center;
|
||||
font-size: 1.2em;
|
||||
background-color: white;
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
/* W3C */
|
||||
}
|
||||
.dataTables_wrapper .dataTables_length,
|
||||
.dataTables_wrapper .dataTables_filter,
|
||||
.dataTables_wrapper .dataTables_info,
|
||||
.dataTables_wrapper .dataTables_processing,
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
color: #333333;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll {
|
||||
clear: both;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
||||
*margin-top: -1px;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
||||
border-bottom: 1px solid #111111;
|
||||
}
|
||||
.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
|
||||
.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
|
||||
border-bottom: none;
|
||||
}
|
||||
.dataTables_wrapper:after {
|
||||
visibility: hidden;
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.dataTables_wrapper .dataTables_info,
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
float: none;
|
||||
text-align: center;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 640px) {
|
||||
.dataTables_wrapper .dataTables_length,
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
float: none;
|
||||
text-align: center;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
div.dataTables_length label {
|
||||
float: left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.dataTables_length select {
|
||||
width: 75px;
|
||||
}
|
||||
|
||||
div.dataTables_filter label {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.dataTables_info {
|
||||
padding-top: 26px;
|
||||
}
|
||||
|
||||
div.dataTables_paginate {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table.table {
|
||||
clear: both;
|
||||
margin-bottom: 6px !important;
|
||||
max-width: none !important;
|
||||
}
|
||||
|
||||
table.table thead .sorting,
|
||||
table.table thead .sorting_asc,
|
||||
table.table thead .sorting_desc,
|
||||
table.table thead .sorting_asc_disabled,
|
||||
table.table thead .sorting_desc_disabled {
|
||||
cursor: pointer;
|
||||
*cursor: hand;
|
||||
}
|
||||
|
||||
table.table thead .sorting { background: url('vendor/datatables-bootstrap3/BS3/assets/css/../images/sort_both.png') no-repeat center right; }
|
||||
table.table thead .sorting_asc { background: url('vendor/datatables-bootstrap3/BS3/assets/css/../images/sort_asc.png') no-repeat center right; }
|
||||
table.table thead .sorting_desc { background: url('vendor/datatables-bootstrap3/BS3/assets/css/../images/sort_desc.png') no-repeat center right; }
|
||||
|
||||
table.table thead .sorting_asc_disabled { background: url('vendor/datatables-bootstrap3/BS3/assets/css/../images/sort_asc_disabled.png') no-repeat center right; }
|
||||
table.table thead .sorting_desc_disabled { background: url('vendor/datatables-bootstrap3/BS3/assets/css/../images/sort_desc_disabled.png') no-repeat center right; }
|
||||
|
||||
table.dataTable th:active {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Scrolling */
|
||||
div.dataTables_scrollHead table {
|
||||
margin-bottom: 0 !important;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
div.dataTables_scrollHead table thead tr:last-child th:first-child,
|
||||
div.dataTables_scrollHead table thead tr:last-child td:first-child {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
div.dataTables_scrollBody table {
|
||||
border-top: none;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
div.dataTables_scrollBody tbody tr:first-child th,
|
||||
div.dataTables_scrollBody tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
div.dataTables_scrollFoot table {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* TableTools styles
|
||||
*/
|
||||
.table tbody tr.active td,
|
||||
.table tbody tr.active th {
|
||||
background-color: #08C;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.table tbody tr.active:hover td,
|
||||
.table tbody tr.active:hover th {
|
||||
background-color: #0075b0 !important;
|
||||
}
|
||||
|
||||
.table-striped tbody tr.active:nth-child(odd) td,
|
||||
.table-striped tbody tr.active:nth-child(odd) th {
|
||||
background-color: #017ebc;
|
||||
}
|
||||
|
||||
table.DTTT_selectable tbody tr {
|
||||
cursor: pointer;
|
||||
*cursor: hand;
|
||||
}
|
||||
|
||||
div.DTTT .btn {
|
||||
color: #333 !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
div.DTTT .btn:hover {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
|
||||
ul.DTTT_dropdown.dropdown-menu a {
|
||||
color: #333 !important; /* needed only when demo_page.css is included */
|
||||
}
|
||||
|
||||
ul.DTTT_dropdown.dropdown-menu li:hover a {
|
||||
background-color: #0088cc;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
/* TableTools information display */
|
||||
div.DTTT_print_info.modal {
|
||||
height: 150px;
|
||||
margin-top: -75px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.DTTT_print_info h6 {
|
||||
font-weight: normal;
|
||||
font-size: 28px;
|
||||
line-height: 28px;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
div.DTTT_print_info p {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* FixedColumns styles
|
||||
*/
|
||||
div.DTFC_LeftHeadWrapper table,
|
||||
div.DTFC_LeftFootWrapper table,
|
||||
table.DTFC_Cloned tr.even {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
div.DTFC_LeftHeadWrapper table {
|
||||
margin-bottom: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
|
||||
div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
div.DTFC_LeftBodyWrapper table {
|
||||
border-top: none;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
div.DTFC_LeftBodyWrapper tbody tr:first-child th,
|
||||
div.DTFC_LeftBodyWrapper tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
div.DTFC_LeftFootWrapper table {
|
||||
border-top: none;
|
||||
}
|
@ -152,7 +152,7 @@ ul.navbar-nav li a:hover {
|
||||
.nav>li>a:hover, .nav>li>a:focus {
|
||||
background-color: transparent;
|
||||
}
|
||||
.container>.navbar-collapse {
|
||||
z.container>.navbar-collapse {
|
||||
margin-right: -15px;
|
||||
}
|
||||
.navbar-top {
|
||||
@ -643,6 +643,7 @@ section.faq .contact-box a {
|
||||
section.faq .contact-box p {
|
||||
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #2299c0;
|
||||
@ -658,6 +659,7 @@ section.faq .contact-box p {
|
||||
.btn-primary:hover {
|
||||
background-color: #2299c0;
|
||||
}
|
||||
|
||||
.btn.green {
|
||||
background-color: #30ab82;
|
||||
}
|
||||
|
@ -347,17 +347,6 @@ if ( $.fn.DataTable.TableTools ) {
|
||||
} );
|
||||
}
|
||||
|
||||
/*
|
||||
$(document).ready(function() {
|
||||
$('#example').dataTable( {
|
||||
"sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
|
||||
"sPaginationType": "bootstrap",
|
||||
"oLanguage": {
|
||||
"sLengthMenu": "_MENU_ records per page"
|
||||
}
|
||||
} );
|
||||
} );
|
||||
*/
|
||||
|
||||
function isStorageSupported() {
|
||||
try {
|
||||
|
Loading…
Reference in New Issue
Block a user