Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
S
sidekick
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Privat - Marco Schmiedel
sidekick
Commits
501e01f2
Commit
501e01f2
authored
Jul 28, 2022
by
Kevin Yumang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SERV-2286 - data chart manager object (series & categories implemented) WIP
parent
70f706df
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
40 additions
and
25 deletions
+40
-25
linechart.init.js
src/Views/Limitless/Linechart/Attachments/linechart.init.js
+10
-11
ChartDataManager.php
...ews/Limitless/Linechart/ChartManager/ChartDataManager.php
+2
-1
Series.php
src/Views/Limitless/Linechart/ChartManager/Series.php
+8
-4
SeriesData.php
src/Views/Limitless/Linechart/ChartManager/SeriesData.php
+2
-2
Config.php
src/Views/Limitless/Linechart/Config.php
+1
-0
Index.blade.php
src/Views/Limitless/Linechart/Documentation/Index.blade.php
+16
-7
LineChart.blade.php
src/Views/Limitless/Linechart/LineChart.blade.php
+1
-0
No files found.
src/Views/Limitless/Linechart/Attachments/linechart.init.js
View file @
501e01f2
...
@@ -28,7 +28,10 @@ function init_chart(chartId) {
...
@@ -28,7 +28,10 @@ function init_chart(chartId) {
if
(
chartElement
)
{
if
(
chartElement
)
{
let
elementObject
=
$
(
chartElement
);
let
elementObject
=
$
(
chartElement
);
let
numberOfCharts
=
elementObject
.
attr
(
'
charts
'
)
??
1
;
let
objectData
=
elementObject
.
attr
(
'
data
'
)
?
JSON
.
parse
(
elementObject
.
attr
(
'
data
'
))
:
null
;
let
numberOfCharts
=
(
objectData
&&
objectData
.
charts
)
??
elementObject
.
attr
(
'
charts
'
)
??
1
;
set_chart_height
(
numberOfCharts
,
chartElement
)
set_chart_height
(
numberOfCharts
,
chartElement
)
let
chartInstance
=
echarts
.
init
(
chartElement
);
let
chartInstance
=
echarts
.
init
(
chartElement
);
...
@@ -41,7 +44,7 @@ function init_chart(chartId) {
...
@@ -41,7 +44,7 @@ function init_chart(chartId) {
fontSize
:
15
fontSize
:
15
});
});
set_data
(
elementObject
,
numberOfCharts
,
function
(
options
)
{
set_data
(
objectData
,
elementObject
,
numberOfCharts
,
function
(
options
)
{
chartInstance
.
hideLoading
();
chartInstance
.
hideLoading
();
chartInstance
.
setOption
(
options
);
chartInstance
.
setOption
(
options
);
setResizeEvent
(
chartElement
,
chartInstance
);
setResizeEvent
(
chartElement
,
chartInstance
);
...
@@ -49,7 +52,7 @@ function init_chart(chartId) {
...
@@ -49,7 +52,7 @@ function init_chart(chartId) {
}
}
}
}
function
set_data
(
elementObject
,
numberOfCharts
,
callback
)
{
function
set_data
(
objectData
,
elementObject
,
numberOfCharts
,
callback
)
{
setTimeout
(
function
()
{
setTimeout
(
function
()
{
...
@@ -79,9 +82,11 @@ function set_data(elementObject, numberOfCharts, callback) {
...
@@ -79,9 +82,11 @@ function set_data(elementObject, numberOfCharts, callback) {
let
animationDuration
=
elementObject
.
attr
(
'
animation-duration
'
)
??
750
;
let
animationDuration
=
elementObject
.
attr
(
'
animation-duration
'
)
??
750
;
// ex '{value} users' - https://echarts.apache.org/en/option.html#yAxis.axisLabel.formatter
// ex '{value} users' - https://echarts.apache.org/en/option.html#yAxis.axisLabel.formatter
let
yAxisLabelValueFormat
=
elementObject
.
attr
(
'
y-axis-label-value-format
'
)
??
null
;
let
yAxisLabelValueFormat
=
elementObject
.
attr
(
'
y-axis-label-value-format
'
)
??
null
;
let
categories
=
JSON
.
parse
(
elementObject
.
attr
(
'
categories
'
))
??
null
;
let
series
=
JSON
.
parse
(
elementObject
.
attr
(
'
series
'
))
??
null
;
// priority is objectData.
let
categories
=
(
objectData
&&
objectData
.
categories
)
??
JSON
.
parse
(
elementObject
.
attr
(
'
categories
'
))
??
null
;
let
series
=
(
objectData
&&
objectData
.
series
)
??
JSON
.
parse
(
elementObject
.
attr
(
'
series
'
))
??
null
;
let
seriesNames
=
series
&&
series
.
map
(
function
(
item
){
return
item
.
name
});
let
seriesNames
=
series
&&
series
.
map
(
function
(
item
){
return
item
.
name
});
let
seriesObject
=
setSeries
(
series
,
elementObject
);
let
seriesObject
=
setSeries
(
series
,
elementObject
);
...
@@ -226,8 +231,6 @@ function setXAxis(categories, boundaryGap = true, numberOfCharts = 1) {
...
@@ -226,8 +231,6 @@ function setXAxis(categories, boundaryGap = true, numberOfCharts = 1) {
xAxisArray
.
push
(
x
);
xAxisArray
.
push
(
x
);
}
}
console
.
log
(
'
xaxisarray
'
,
xAxisArray
);
return
xAxisArray
;
return
xAxisArray
;
}
}
...
@@ -314,8 +317,6 @@ function setTitles(titles, numberOfCharts = 1) {
...
@@ -314,8 +317,6 @@ function setTitles(titles, numberOfCharts = 1) {
arrayTitles
.
push
(
title
);
arrayTitles
.
push
(
title
);
}
}
console
.
log
(
'
titles
'
,
arrayTitles
);
return
arrayTitles
;
return
arrayTitles
;
}
}
...
@@ -388,8 +389,6 @@ function setGrid(showDataZoom = false, numberOfCharts = 1) {
...
@@ -388,8 +389,6 @@ function setGrid(showDataZoom = false, numberOfCharts = 1) {
arrayGrids
.
push
(
grid
);
arrayGrids
.
push
(
grid
);
}
}
console
.
log
(
'
grids
'
,
arrayGrids
);
return
arrayGrids
;
return
arrayGrids
;
}
}
...
...
src/Views/Limitless/Linechart/
Data
Manager/ChartDataManager.php
→
src/Views/Limitless/Linechart/
Chart
Manager/ChartDataManager.php
View file @
501e01f2
<?php
<?php
namespace
Ceetrox\Sidekick\Views\Limitless\Linechart\
Data
Manager
;
namespace
Ceetrox\Sidekick\Views\Limitless\Linechart\
Chart
Manager
;
Class
ChartDataManager
{
Class
ChartDataManager
{
...
@@ -58,6 +58,7 @@ Class ChartDataManager {
...
@@ -58,6 +58,7 @@ Class ChartDataManager {
{
{
$data
[
'series'
]
=
$this
->
getSeries
()
->
toArray
();
$data
[
'series'
]
=
$this
->
getSeries
()
->
toArray
();
$data
[
'categories'
]
=
$this
->
getCategories
();
$data
[
'categories'
]
=
$this
->
getCategories
();
$data
[
'charts'
]
=
$this
->
getSeries
()
->
numberOfCharts
();
return
$data
;
return
$data
;
}
}
...
...
src/Views/Limitless/Linechart/
Data
Manager/Series.php
→
src/Views/Limitless/Linechart/
Chart
Manager/Series.php
View file @
501e01f2
<?php
<?php
namespace
Ceetrox\Sidekick\Views\Limitless\Linechart\
Data
Manager
;
namespace
Ceetrox\Sidekick\Views\Limitless\Linechart\
Chart
Manager
;
use
Illuminate\Support\Collection
;
use
Illuminate\Support\Collection
;
class
Series
extends
Collection
class
Series
extends
Collection
{
{
/**
* @return array
*/
public
function
toArray
()
:
array
public
function
toArray
()
:
array
{
{
$return
=
[];
$return
=
[];
...
@@ -18,5 +15,12 @@ class Series extends Collection
...
@@ -18,5 +15,12 @@ class Series extends Collection
return
$return
;
return
$return
;
}
}
public
function
numberOfCharts
()
:
int
{
$count
=
$this
->
unique
(
function
(
SeriesData
$entry
)
{
return
$entry
->
getIndex
();
})
->
count
();
return
$count
;
}
}
}
src/Views/Limitless/Linechart/
Data
Manager/SeriesData.php
→
src/Views/Limitless/Linechart/
Chart
Manager/SeriesData.php
View file @
501e01f2
<?php
<?php
namespace
Ceetrox\Sidekick\Views\Limitless\Linechart\
Data
Manager
;
namespace
Ceetrox\Sidekick\Views\Limitless\Linechart\
Chart
Manager
;
class
SeriesData
class
SeriesData
{
{
...
@@ -23,7 +23,7 @@ class SeriesData
...
@@ -23,7 +23,7 @@ class SeriesData
return
$this
->
categoryValues
;
return
$this
->
categoryValues
;
}
}
p
rivate
function
getIndex
()
:
int
p
ublic
function
getIndex
()
:
int
{
{
return
$this
->
index
;
return
$this
->
index
;
}
}
...
...
src/Views/Limitless/Linechart/Config.php
View file @
501e01f2
...
@@ -77,6 +77,7 @@
...
@@ -77,6 +77,7 @@
->
withMarkLine
(
$parameters
[
'mark-line'
]
??
null
)
->
withMarkLine
(
$parameters
[
'mark-line'
]
??
null
)
->
withCategories
(
$parameters
[
'categories'
]
??
null
)
->
withCategories
(
$parameters
[
'categories'
]
??
null
)
->
withSeries
(
$parameters
[
'series'
]
??
null
)
->
withSeries
(
$parameters
[
'series'
]
??
null
)
->
withData
(
$parameters
[
'data'
]
??
null
)
->
withRaw
(
$parameters
[
'raw'
]
??
null
);
->
withRaw
(
$parameters
[
'raw'
]
??
null
);
}
}
...
...
src/Views/Limitless/Linechart/Documentation/Index.blade.php
View file @
501e01f2
...
@@ -5,8 +5,8 @@
...
@@ -5,8 +5,8 @@
@
php
@
php
$chartDataManager
=
\Ceetrox\Sidekick\Views\Limitless\Linechart\
Data
Manager\ChartDataManager
::
getInstance
();
$chartDataManager
=
\Ceetrox\Sidekick\Views\Limitless\Linechart\
Chart
Manager\ChartDataManager
::
getInstance
();
// or $chartDataManager = new \Ceetrox\Sidekick\Views\Limitless\Linechart\
Data
Manager\ChartDataManager();
// or $chartDataManager = new \Ceetrox\Sidekick\Views\Limitless\Linechart\
Chart
Manager\ChartDataManager();
// accepts string or array.
// accepts string or array.
$chartDataManager
->
addCategories
(
'Mon'
);
$chartDataManager
->
addCategories
(
'Mon'
);
...
@@ -16,17 +16,21 @@
...
@@ -16,17 +16,21 @@
$sd
->
setName
(
'ONC'
);
$sd
->
setName
(
'ONC'
);
$sd
->
setCategoryValues
(
100
);
$sd
->
setCategoryValues
(
100
);
$sd
->
setCategoryValues
([
200
,
300
,
400
,
500
]);
$sd
->
setCategoryValues
([
200
,
300
,
400
,
500
]);
$sd
->
setIndex
(
0
);
// 0 as default.
$chartDataManager
->
addSeries
(
$sd
);
$chartDataManager
->
addSeries
(
$sd
);
$sd
=
$chartDataManager
::
getSeriesDataInstance
();
$sd
=
$chartDataManager
::
getSeriesDataInstance
();
$sd
->
setName
(
'APR'
);
$sd
->
setName
(
'APR'
);
$sd
->
setCategoryValues
([
10
,
20
,
30
,
40
,
50
]);
$sd
->
setCategoryValues
([
10
,
20
,
30
,
40
,
50
]);
$sd
->
setIndex
(
0
);
$chartDataManager
->
addSeries
(
$sd
);
$chartDataManager
->
addSeries
(
$sd
);
$output
=
$chartDataManager
->
toArray
();
$dataObject
=
$chartDataManager
->
toJson
();
// if data manager object is used, should only pass the main object to the chart parameter 'data'
// if data manager object is used, should only pass the main object to the chart parameter 'data'
// automatically detects if the chart is multiple by number of unique indexes.
// sample backend data
// sample backend data
$categories
=
[
'Jan'
,
'Feb'
,
'Mar'
,
'Apr'
,
'May'
,
'Jun'
,
'July'
,
'Aug'
,
'Sep'
,
'Oct'
,
'Nov'
,
'Dec'
];
$categories
=
[
'Jan'
,
'Feb'
,
'Mar'
,
'Apr'
,
'May'
,
'Jun'
,
'July'
,
'Aug'
,
'Sep'
,
'Oct'
,
'Nov'
,
'Dec'
];
...
@@ -157,10 +161,16 @@
...
@@ -157,10 +161,16 @@
@
endphp
@
endphp
@
Limitless
::
CardStart
([
'title'
=>
"Basic Setup using Chart Manager Object"
,
'icon'
=>
'icon-info22'
]
)
@
Limitless
::
LineChart
([
'data'
=>
$dataObject
])
@
Limitless
::
CardStop
@
Limitless
::
CardStart
([
'title'
=>
"Basic Setup"
,
'icon'
=>
'icon-info22'
]
)
@
Limitless
::
CardStart
([
'title'
=>
"Basic Setup"
,
'icon'
=>
'icon-info22'
]
)
@
Limitless
::
LineChart
([
@
Limitless
::
LineChart
([
'categories'
=>
$
output
[
'categories'
]
,
'categories'
=>
$
categories
,
'series'
=>
$
output
[
'series'
]
,
'series'
=>
$
seriesData
,
])
])
@
Limitless
::
CardStop
@
Limitless
::
CardStop
...
@@ -168,8 +178,7 @@
...
@@ -168,8 +178,7 @@
@
Limitless
::
LineChart
([
@
Limitless
::
LineChart
([
'is-area'
=>
true
,
'is-area'
=>
true
,
'stacked'
=>
true
,
'stacked'
=>
true
,
'categories'
=>
$categories
,
'data'
=>
$dataObject
'series'
=>
$seriesData
,
])
])
@
Limitless
::
CardStop
@
Limitless
::
CardStop
...
...
src/Views/Limitless/Linechart/LineChart.blade.php
View file @
501e01f2
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
@
if
($
markLine
!=
null
)
mark-line=
"{{ $markLine }}"
@
endif
@
if
($
markLine
!=
null
)
mark-line=
"{{ $markLine }}"
@
endif
categories=
"{{ json_encode($categories) }}"
categories=
"{{ json_encode($categories) }}"
series=
"{{ json_encode($series) }}"
series=
"{{ json_encode($series) }}"
data=
"{{ $data }}"
raw=
"{{ json_encode(json_decode($raw)) }}"
raw=
"{{ json_encode(json_decode($raw)) }}"
>
>
</div>
</div>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment