Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@
}
],
"require": {
"php": ">=7.1.0",
"laravel/nova": "^4.0"
"php": "^8.1",
"illuminate/support": "^10.0|^11.0|^12.0"
},
"require-dev": {
"laravel/nova": "^5.0",
"laravel/nova-devtool": "^1.7"
},
"autoload": {
"psr-4": {
Expand All @@ -37,11 +41,5 @@
"sort-packages": true
},
"minimum-stability": "dev",
"prefer-stable": true,
"repositories": [
{
"type": "composer",
"url": "https://nova.laravel.com"
}
]
"prefer-stable": true
}
8 changes: 3 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,17 @@
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"prod": "mix --production"
"prod": "mix --production",
"nova:install": "npm --prefix='../../vendor/laravel/nova' ci"
},
"devDependencies": {
"laravel-mix": "^6.0.43",
"vue-loader": "^16.8.3",
"vue-template-compiler": "^2.6.14"
"laravel-mix": "^6.0.43"
},
"dependencies": {
"chart.js": "^3.7.0",
"chartjs-plugin-datalabels": "^2.0.0",
"serialize-javascript": "^4.0.0",
"sweetalert2": "^9.17.1",
"vue": "^3.2.31",
"vue-chartjs": "^4.0.0"
}
}
17 changes: 8 additions & 9 deletions resources/js/chart-js-integration.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,19 @@ import PieChart from './components/PieChart'
import PolarAreaChart from './components/PolarAreaChart'
import ScatterChart from './components/ScatterChart'

Nova.booting((Vue) => {
Nova.booting((app, store) => {
const textColor = getComputedStyle(document.documentElement)
.getPropertyValue('--colors-gray-400');

Chart.unregister(ChartDataLabels);
Chart.register(...registerables);
Chart.defaults.color = `rgba(${textColor}, 1)`;

Vue.component('stacked-chart', StackedChart);
Vue.component('bar-chart', BarChart);
Vue.component('stripe-chart', LineChart);
Vue.component('doughnut-chart', DoughnutChart);
Vue.component('pie-chart', PieChart);
Vue.component('polar-area-chart', PolarAreaChart);
Vue.component('scatter-chart', ScatterChart);
app.component('stacked-chart', StackedChart);
app.component('bar-chart', BarChart);
app.component('stripe-chart', LineChart);
app.component('doughnut-chart', DoughnutChart);
app.component('pie-chart', PieChart);
app.component('polar-area-chart', PolarAreaChart);
app.component('scatter-chart', ScatterChart);
})

12 changes: 6 additions & 6 deletions resources/js/components/BarChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
<select-control size="xxs" @change="handleFilterChanged" :selected="advanceFilterSelected" v-show="showAdvanceFilter">
<option v-for="filter in advanceFilter" v-bind:value="filter.value" :key="filter.key">
{{ filter.text }}
Expand Down
12 changes: 6 additions & 6 deletions resources/js/components/DoughnutChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
<select-control size="xxs" @change="handleFilterChanged" :selected="advanceFilterSelected" v-show="showAdvanceFilter">
<option v-for="filter in advanceFilter" v-bind:value="filter.value" :key="filter.key">
{{ filter.text }}
Expand Down
12 changes: 6 additions & 6 deletions resources/js/components/PieChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
<select-control size="xxs" @change="handleFilterChanged" :selected="advanceFilterSelected" v-show="showAdvanceFilter">
<option v-for="filter in advanceFilter" v-bind:value="filter.value" :key="filter.key">
{{ filter.text }}
Expand Down
12 changes: 6 additions & 6 deletions resources/js/components/PolarAreaChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
<select-control size="xxs" @change="handleFilterChanged" :selected="advanceFilterSelected" v-show="showAdvanceFilter">
<option v-for="filter in advanceFilter" v-bind:value="filter.value" :key="filter.key">
{{ filter.text }}
Expand Down
12 changes: 6 additions & 6 deletions resources/js/components/ScatterChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4 pb-0">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
</div>
</div>
<line-chart v-if="!loading" :chart-data="datacollection" :options="options"></line-chart>
Expand Down
12 changes: 6 additions & 6 deletions resources/js/components/StackedChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
<select-control size="xxs" @change="handleFilterChanged" :selected="advanceFilterSelected" v-show="showAdvanceFilter">
<option v-for="filter in advanceFilter" v-bind:value="filter.value" :key="filter.key">
{{ filter.text }}
Expand Down
12 changes: 6 additions & 6 deletions resources/js/components/StripeChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<div class="h-12 flex items-center px-6 mt-4">
<h4 class="mr-3 leading-tight text-sm font-bold">{{ checkTitle }}</h4>
<div class="flex relative ml-auto flex-shrink-0">
<default-button size="xs" class="mr-2" @click="fillData()" v-show="buttonRefresh">
<button type="button" class="btn btn-default btn-xs mr-2" @click="fillData()" v-show="buttonRefresh">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" @click="reloadPage()" v-show="buttonReload">
</button>
<button type="button" class="btn btn-default btn-xs mr-2" @click="reloadPage()" v-show="buttonReload">
<icon-refresh />
</default-button>
<default-button size="xs" class="mr-2" component="a" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
</button>
<a class="btn btn-default btn-xs mr-2" :href="externalLink" :target="externalLinkIn" v-show="btnExtLink">
<icon-external-link />
</default-button>
</a>
<select-control size="xxs" @change="handleFilterChanged" :selected="advanceFilterSelected" v-show="showAdvanceFilter">
<option v-for="filter in advanceFilter" v-bind:value="filter.value" :key="filter.key">
{{ filter.text }}
Expand Down
27 changes: 12 additions & 15 deletions src/CardServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,46 @@

namespace Coroowicaksono\ChartJsIntegration;

use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;
use Laravel\Nova\Events\ServingNova;
use Laravel\Nova\Nova;
use Illuminate\Support\Facades\Route;

class CardServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
public function boot(): void
{
$this->app->booted(function () {
$this->routes();
});

Nova::serving(function (ServingNova $event) {
Nova::script('nova-apex-chart', __DIR__ . '/../dist/js/chart-js-integration.js');
Nova::mix('chart-js-integration', __DIR__.'/../dist/mix-manifest.json');
});
}

/**
* Register the card's routes.
*
* @return void
*/
protected function routes()
protected function routes(): void
{
if ($this->app->routesAreCached()) {
return;
}

Route::middleware(['nova'])
->prefix('/nova-vendor/coroowicaksono/check-data')
->group(__DIR__.'/../routes/api.php');
->prefix('/nova-vendor/coroowicaksono/check-data')
->group(__DIR__.'/../routes/api.php');
}

/**
* Register any application services.
*
* @return void
*/
public function register()
public function register(): void
{

//
}

}
16 changes: 6 additions & 10 deletions webpack.mix.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
const mix = require('laravel-mix')
let mix = require('laravel-mix')
let NovaExtension = require('laravel-nova-devtool')

mix.extend('nova', new NovaExtension())

mix
.setPublicPath('dist')
.js('resources/js/chart-js-integration.js', 'js')
.vue({ version: 3 })
.webpackConfig({
externals: {
vue: 'Vue',
chartjs: 'Chart',
},
output: {
uniqueName: 'coroowicaksono/chart-js-integration',
},
})
.nova('coroowicaksono/chart-js-integration')
.version()