2016-03-25 01:18:05 -07:00
@ extends ( 'layouts/default' )
{{ -- Page title -- }}
@ section ( 'title' )
{{ trans ( 'general.dashboard' ) }}
@ parent
@ stop
{{ -- Page content -- }}
@ section ( 'content' )
2018-01-19 20:43:55 -08:00
@ if ( $snipeSettings -> dashboard_message != '' )
< div class = " row " >
< div class = " col-md-12 " >
< div class = " alert alert-warning fade in " >
< i class = " fa fa-warning faa-pulse animated " ></ i >
{{ $snipeSettings -> dashboard_message }}
</ div >
</ div >
</ div >
@ endif
2016-03-25 01:18:05 -07:00
< div class = " row " >
2016-12-27 12:03:47 -08:00
<!-- panel -->
< div class = " col-lg-3 col-xs-6 " >
<!-- small box -->
< div class = " small-box bg-teal " >
< div class = " inner " >
2017-05-31 05:23:54 -07:00
< h3 > {{ number_format ( $counts [ 'asset' ]) }} </ h3 >
2016-12-27 12:03:47 -08:00
< p > {{ trans ( 'general.total_assets' ) }} </ p >
</ div >
< div class = " icon " >
< i class = " fa fa-barcode " ></ i >
</ div >
@ can ( 'index' , \App\Models\Asset :: class )
< a href = " { { route('hardware.index') }} " class = " small-box-footer " > {{ trans ( 'general.moreinfo' ) }} < i class = " fa fa-arrow-circle-right " ></ i ></ a >
@ endcan
</ div >
</ div ><!-- ./ col -->
< div class = " col-lg-3 col-xs-6 " >
<!-- small box -->
< div class = " small-box bg-maroon " >
< div class = " inner " >
2017-05-31 05:23:54 -07:00
< h3 > {{ number_format ( $counts [ 'license' ]) }} </ h3 >
2016-12-27 12:03:47 -08:00
< p > {{ trans ( 'general.total_licenses' ) }} </ p >
</ div >
< div class = " icon " >
< i class = " fa fa-floppy-o " ></ i >
</ div >
@ can ( 'view' , \App\Models\License :: class )
< a href = " { { route('licenses.index') }} " class = " small-box-footer " > {{ trans ( 'general.moreinfo' ) }} < i class = " fa fa-arrow-circle-right " ></ i ></ a >
@ endcan
</ div >
</ div ><!-- ./ col -->
2017-05-31 05:23:54 -07:00
2016-12-27 12:03:47 -08:00
< div class = " col-lg-3 col-xs-6 " >
<!-- small box -->
< div class = " small-box bg-orange " >
< div class = " inner " >
2017-05-31 05:23:54 -07:00
< h3 > {{ number_format ( $counts [ 'accessory' ]) }} </ h3 >
2016-12-27 12:03:47 -08:00
< p > {{ trans ( 'general.total_accessories' ) }} </ p >
</ div >
< div class = " icon " >
< i class = " fa fa-keyboard-o " ></ i >
</ div >
@ can ( 'index' , \App\Models\Accessory :: class )
< a href = " { { route('accessories.index') }} " class = " small-box-footer " > {{ trans ( 'general.moreinfo' ) }} < i class = " fa fa-arrow-circle-right " ></ i ></ a >
@ endcan
</ div >
</ div ><!-- ./ col -->
< div class = " col-lg-3 col-xs-6 " >
<!-- small box -->
< div class = " small-box bg-purple " >
< div class = " inner " >
2017-05-31 05:23:54 -07:00
< h3 > {{ number_format ( $counts [ 'consumable' ]) }} </ h3 >
2016-12-27 12:03:47 -08:00
< p > {{ trans ( 'general.total_consumables' ) }} </ p >
</ div >
< div class = " icon " >
< i class = " fa fa-tint " ></ i >
</ div >
@ can ( 'index' , \App\Models\Consumable :: class )
< a href = " { { route('consumables.index') }} " class = " small-box-footer " > {{ trans ( 'general.moreinfo' ) }} < i class = " fa fa-arrow-circle-right " ></ i ></ a >
@ endcan
</ div >
</ div ><!-- ./ col -->
2016-03-25 01:18:05 -07:00
</ div >
2017-05-31 05:23:54 -07:00
@ if ( $counts [ 'grand_total' ] == 0 )
< div class = " row " >
< div class = " col-md-12 " >
< div class = " box " >
< div class = " box-header with-border " >
< h3 class = " box-title " > This is your dashboard . There are many like it , but this one is yours .</ h3 >
</ div >
<!-- /. box - header -->
< div class = " box-body " >
< div class = " row " >
< div class = " col-md-12 " >
< div class = " progress " >
< div class = " progress-bar progress-bar-yellow " role = " progressbar " aria - valuenow = " 60 " aria - valuemin = " 0 " aria - valuemax = " 100 " style = " width: 60% " >
< span class = " sr-only " > 60 % Complete ( warning ) </ span >
</ div >
</ div >
< p >< strong > It looks like you haven 't added anything yet, so we don' t have anything awesome to display . Get started by adding some assets , accessories , consumables , or licenses now !</ strong ></ p >
</ div >
</ div >
< div class = " row " >
< div class = " col-md-3 " >
@ can ( 'create' , \App\Models\Asset :: class )
< a class = " btn bg-teal " style = " width: 100% " href = " { { route('hardware.create') }} " > New Asset </ a >
@ endcan
</ div >
< div class = " col-md-3 " >
@ can ( 'create' , \App\Models\License :: class )
< a class = " btn bg-maroon " style = " width: 100% " href = " { { route('licenses.create') }} " > New License </ a >
@ endcan
</ div >
< div class = " col-md-3 " >
@ can ( 'create' , \App\Models\Accessory :: class )
< a class = " btn bg-orange " style = " width: 100% " href = " { { route('accessories.create') }} " > New Accessory </ a >
@ endcan
</ div >
< div class = " col-md-3 " >
@ can ( 'create' , \App\Models\Consumable :: class )
< a class = " btn bg-purple " style = " width: 100% " href = " { { route('consumables.create') }} " > New Consumable </ a >
@ endcan
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
@ else
2016-05-24 16:10:04 -07:00
<!-- recent activity -->
2016-12-27 12:03:47 -08:00
< div class = " row " >
2017-08-09 19:00:54 -07:00
< div class = " col-md-12 " >
2016-12-27 12:03:47 -08:00
< div class = " box " >
< div class = " box-header with-border " >
< h3 class = " box-title " > {{ trans ( 'general.recent_activity' ) }} </ h3 >
< div class = " box-tools pull-right " >
2017-05-31 05:23:54 -07:00
< button type = " button " class = " btn btn-box-tool " data - widget = " collapse " >< i class = " fa fa-minus " ></ i >
</ button >
2016-12-27 12:03:47 -08:00
</ div >
</ div ><!-- /. box - header -->
< div class = " box-body " >
< div class = " row " >
< div class = " col-md-12 " >
< div class = " table-responsive " >
< table
2017-05-23 09:25:45 -07:00
class = " table table-striped snipe-table "
2016-12-27 12:03:47 -08:00
name = " activityReport "
id = " table "
2017-05-23 14:32:02 -07:00
data - sort - order = " desc "
2017-05-31 05:23:54 -07:00
data - height = " 400 "
2018-01-15 21:03:46 -08:00
data - show - export = " false "
2017-05-23 14:32:02 -07:00
data - url = " { { route('api.activity.index', ['limit' => 25]) }} " >
2016-03-25 01:18:05 -07:00
< thead >
2016-12-27 12:03:47 -08:00
< tr >
2017-05-23 09:25:45 -07:00
< th data - field = " icon " style = " width: 40px; " class = " hidden-xs " data - formatter = " iconFormatter " ></ th >
< th class = " col-sm-3 " data - field = " created_at " data - formatter = " dateDisplayFormatter " > {{ trans ( 'general.date' ) }} </ th >
< th class = " col-sm-2 " data - field = " admin " data - formatter = " usersLinkObjFormatter " > {{ trans ( 'general.admin' ) }} </ th >
2016-12-27 12:03:47 -08:00
< th class = " col-sm-2 " data - field = " action_type " > {{ trans ( 'general.action' ) }} </ th >
2017-05-23 14:32:02 -07:00
< th class = " col-sm-3 " data - field = " item " data - formatter = " polymorphicItemFormatter " > {{ trans ( 'general.item' ) }} </ th >
< th class = " col-sm-2 " data - field = " target " data - formatter = " polymorphicItemFormatter " > {{ trans ( 'general.target' ) }} </ th >
2016-12-27 12:03:47 -08:00
</ tr >
2016-03-25 01:18:05 -07:00
</ thead >
2016-12-27 12:03:47 -08:00
</ table >
2017-05-23 09:25:45 -07:00
2016-12-27 12:03:47 -08:00
</ div ><!-- /. responsive -->
</ div ><!-- /. col -->
2017-05-31 05:23:54 -07:00
< div class = " col-md-12 text-center " style = " padding-top: 10px; " >
2017-08-25 10:18:18 -07:00
< a href = " { { route('reports.activity') }} " class = " btn btn-primary btn-sm " style = " width: 100% " > View All </ a >
2017-05-31 05:23:54 -07:00
</ div >
2016-12-27 12:03:47 -08:00
</ div ><!-- /. row -->
</ div ><!-- ./ box - body -->
</ div ><!-- /. box -->
</ div >
2017-05-23 09:25:45 -07:00
2017-08-09 19:00:54 -07:00
</ div > <!--/ row -->
< div class = " row " >
< div class = " col-md-6 " >
2017-11-08 13:12:03 -08:00
< div class = " box box-default " >
2017-08-09 19:00:54 -07:00
< div class = " box-header with-border " >
< h3 class = " box-title " > {{ trans ( 'general.assets' ) }} by Status </ h3 >
< div class = " box-tools pull-right " >
< button type = " button " class = " btn btn-box-tool " data - widget = " collapse " >< i class = " fa fa-minus " ></ i >
</ button >
</ div >
2017-05-31 05:23:54 -07:00
</ div >
2017-08-09 19:00:54 -07:00
<!-- /. box - header -->
2017-11-08 13:12:03 -08:00
< div class = " box-body " style = " min-height: 400px; " >
2017-08-09 19:00:54 -07:00
< div class = " row " >
< div class = " col-md-12 " >
< div class = " chart-responsive " >
< canvas id = " statusPieChart " height = " 120 " ></ canvas >
</ div > <!-- ./ chart - responsive -->
</ div > <!-- /. col -->
</ div > <!-- /. row -->
</ div ><!-- /. box - body -->
</ div > <!-- /. box -->
</ div >
< div class = " col-md-6 " >
2017-05-31 05:23:54 -07:00
2017-08-09 19:00:54 -07:00
<!-- Categories -->
< div class = " box box-default " >
< div class = " box-header with-border " >
< h3 class = " box-title " > Asset {{ trans ( 'general.categories' ) }} </ h3 >
< div class = " box-tools pull-right " >
< button type = " button " class = " btn btn-box-tool " data - widget = " collapse " >< i class = " fa fa-minus " ></ i >
</ button >
</ div >
</ div >
<!-- /. box - header -->
< div class = " box-body " >
< div class = " row " >
< div class = " col-md-12 " >
< table
class = " table table-striped snipe-table "
name = " categorySummary "
id = " table "
data - height = " 440 "
2017-11-21 20:33:30 -08:00
data - url = " { { route('api.categories.index', ['sort' => 'assets_count', 'order' => 'asc']) }} " >
2017-08-09 19:00:54 -07:00
< thead >
< tr >
2017-11-21 20:33:30 -08:00
< th class = " col-sm-3 " data - field = " name " data - formatter = " categoriesLinkFormatter " data - sortable = " true " > {{ trans ( 'general.name' ) }} </ th >
< th class = " col-sm-3 " data - field = " category_type " data - sortable = " true " > {{ trans ( 'general.type' ) }} </ th >
< th class = " col-sm-1 " data - field = " assets_count " data - sortable = " true " >< i class = " fa fa-barcode " ></ i ></ th >
< th class = " col-sm-1 " data - field = " accessories_count " data - sortable = " true " >< i class = " fa fa-keyboard-o " ></ i ></ th >
< th class = " col-sm-1 " data - field = " consumables_count " data - sortable = " true " >< i class = " fa fa-tint " ></ i ></ th >
< th class = " col-sm-1 " data - field = " components_count " data - sortable = " true " >< i class = " fa fa-hdd-o " ></ i ></ th >
2017-08-09 19:00:54 -07:00
</ tr >
</ thead >
</ table >
</ div > <!-- /. col -->
< div class = " col-md-12 text-center " style = " padding-top: 10px; " >
< a href = " { { route('categories.index') }} " class = " btn btn-primary btn-sm " style = " width: 100% " > View All </ a >
</ div >
</ div > <!-- /. row -->
</ div ><!-- /. box - body -->
</ div > <!-- /. box -->
</ div >
</ div >
2016-12-27 12:03:47 -08:00
2017-05-31 05:23:54 -07:00
@ endif
2016-12-27 12:03:47 -08:00
@ stop
2016-03-25 01:18:05 -07:00
2016-05-24 16:10:04 -07:00
@ section ( 'moar_scripts' )
2018-01-16 07:37:20 -08:00
@ include ( 'partials.bootstrap-table' , [ 'simple_view' => true , 'nopages' => true ])
2017-05-23 09:25:45 -07:00
2017-05-31 05:23:54 -07:00
@ if ( $snipeSettings -> load_remote == '1' )
< script src = " https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js " ></ script >
@ else
2017-05-31 13:57:23 -07:00
< script src = " { { asset('js/plugins/chartjs/Chart.min.js') }} " ></ script >
2017-05-31 05:23:54 -07:00
@ endif
2017-05-23 09:25:45 -07:00
2017-09-28 19:45:15 -07:00
< script nonce = " { { csrf_token() }} " >
2017-05-31 05:23:54 -07:00
/* ChartJS
* -------
*/
// -----------------------
2017-06-06 02:40:50 -07:00
// - LINE CHART -
2017-05-31 05:23:54 -07:00
// -----------------------
2017-06-06 02:51:29 -07:00
//var ctx = document.getElementById('salesChart').getContext("2d")
//var myChart = new Chart(ctx, {
// type: 'line'
//});
//$.ajax({
// type: 'GET',
// url: '{{ route('api.statuslabels.assets.bytype') }}',
// headers: {
// "X-Requested-With": 'XMLHttpRequest',
// "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
// },
// dataType: 'json',
// success: function (data) {
// var ctx = new Chart(ctx,{
// type: 'line',
// data: data,
// options: lineOptions
// });
// },
// error: function (data) {
// window.location.reload(true);
// }
// });
2017-05-31 05:23:54 -07:00
// ---------------------------
// - END MONTHLY SALES CHART -
// ---------------------------
2016-05-24 16:10:04 -07:00
var pieChartCanvas = $ ( " #statusPieChart " ) . get ( 0 ) . getContext ( " 2d " );
var pieChart = new Chart ( pieChartCanvas );
var ctx = document . getElementById ( " statusPieChart " );
2017-01-13 03:19:39 -08:00
$ . ajax ({
type : 'GET' ,
url : '{{ route(' api . statuslabels . assets . bytype ') }}' ,
headers : {
" X-Requested-With " : 'XMLHttpRequest' ,
" X-CSRF-TOKEN " : $ ( 'meta[name="csrf-token"]' ) . attr ( 'content' )
},
dataType : 'json' ,
success : function ( data ) {
var myPieChart = new Chart ( ctx ,{
type : 'doughnut' ,
data : data ,
options : pieOptions
});
},
error : function ( data ) {
2017-10-06 18:15:13 -07:00
// window.location.reload(true);
2017-01-13 03:19:39 -08:00
}
2016-05-24 16:10:04 -07:00
});
2017-01-13 03:19:39 -08:00
2016-05-24 16:10:04 -07:00
</ script >
2016-03-25 01:18:05 -07:00
2016-05-24 16:10:04 -07:00
2016-03-25 01:18:05 -07:00
@ stop