Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
eis
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 25e040b5
authored
Jun 12, 2025
by
Ari Agung Prasetiyo
Committed by
Ari Agung Prasetiyo
Jun 12, 2025
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
perbaikan
1 parent
5169bad5
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
251 additions
and
104 deletions
eispajak/static/css/odometer-theme-plaza.css
eispajak/static/css/pcpd.css
eispajak/views/templates/eis-base.pt
eispajak/views/templates/pcpd.pt
eispajak/static/css/odometer-theme-plaza.css
0 → 100644
View file @
25e040b
.odometer.odometer-auto-theme
,
.odometer.odometer-theme-plaza
{
display
:
inline-block
;
vertical-align
:
middle
;
*
vertical-align
:
auto
;
*
zoom
:
1
;
*
display
:
inline
;
position
:
relative
;
}
.odometer.odometer-auto-theme
.odometer-digit
,
.odometer.odometer-theme-plaza
.odometer-digit
{
display
:
inline-block
;
vertical-align
:
middle
;
*
vertical-align
:
auto
;
*
zoom
:
1
;
*
display
:
inline
;
position
:
relative
;
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-digit-spacer
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-digit-spacer
{
display
:
inline-block
;
vertical-align
:
middle
;
*
vertical-align
:
auto
;
*
zoom
:
1
;
*
display
:
inline
;
visibility
:
hidden
;
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-digit-inner
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-digit-inner
{
text-align
:
left
;
display
:
block
;
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
overflow
:
hidden
;
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-ribbon
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-ribbon
{
display
:
block
;
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-ribbon-inner
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-ribbon-inner
{
display
:
block
;
-webkit-backface-visibility
:
hidden
;
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-value
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-value
{
display
:
block
;
-webkit-transform
:
translateZ
(
0
);
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-value.odometer-last-value
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-value.odometer-last-value
{
position
:
absolute
;
}
.odometer.odometer-auto-theme.odometer-animating-up
.odometer-ribbon-inner
,
.odometer.odometer-theme-plaza.odometer-animating-up
.odometer-ribbon-inner
{
-webkit-transition
:
-webkit-transform
2s
;
-moz-transition
:
-moz-transform
2s
;
-ms-transition
:
-ms-transform
2s
;
-o-transition
:
-o-transform
2s
;
transition
:
transform
2s
;
}
.odometer.odometer-auto-theme.odometer-animating-up.odometer-animating
.odometer-ribbon-inner
,
.odometer.odometer-theme-plaza.odometer-animating-up.odometer-animating
.odometer-ribbon-inner
{
-webkit-transform
:
translateY
(
-100%
);
-moz-transform
:
translateY
(
-100%
);
-ms-transform
:
translateY
(
-100%
);
-o-transform
:
translateY
(
-100%
);
transform
:
translateY
(
-100%
);
}
.odometer.odometer-auto-theme.odometer-animating-down
.odometer-ribbon-inner
,
.odometer.odometer-theme-plaza.odometer-animating-down
.odometer-ribbon-inner
{
-webkit-transform
:
translateY
(
-100%
);
-moz-transform
:
translateY
(
-100%
);
-ms-transform
:
translateY
(
-100%
);
-o-transform
:
translateY
(
-100%
);
transform
:
translateY
(
-100%
);
}
.odometer.odometer-auto-theme.odometer-animating-down.odometer-animating
.odometer-ribbon-inner
,
.odometer.odometer-theme-plaza.odometer-animating-down.odometer-animating
.odometer-ribbon-inner
{
-webkit-transition
:
-webkit-transform
2s
;
-moz-transition
:
-moz-transform
2s
;
-ms-transition
:
-ms-transform
2s
;
-o-transition
:
-o-transform
2s
;
transition
:
transform
2s
;
-webkit-transform
:
translateY
(
0
);
-moz-transform
:
translateY
(
0
);
-ms-transform
:
translateY
(
0
);
-o-transform
:
translateY
(
0
);
transform
:
translateY
(
0
);
}
.odometer.odometer-auto-theme
,
.odometer.odometer-theme-plaza
{
-moz-border-radius
:
0.15em
;
-webkit-border-radius
:
0.15em
;
border-radius
:
0.15em
;
background-color
:
#f0f8ff
;
font-family
:
"Helvetica Neue"
,
sans-serif
;
font-weight
:
100
;
padding
:
0
0.12em
;
line-height
:
1.2em
;
font-size
:
1.2em
;
background-size
:
16px
16px
;
}
.odometer.odometer-auto-theme
.odometer-digit
,
.odometer.odometer-theme-plaza
.odometer-digit
{
-moz-border-radius
:
0.1em
;
-webkit-border-radius
:
0.1em
;
border-radius
:
0.1em
;
padding
:
0
0.03em
;
color
:
#648baf
;
}
.odometer.odometer-auto-theme
.odometer-digit
.odometer-digit-inner
,
.odometer.odometer-theme-plaza
.odometer-digit
.odometer-digit-inner
{
left
:
0.03em
;
}
\ No newline at end of file
\ No newline at end of file
eispajak/static/css/pcpd.css
0 → 100644
View file @
25e040b
div
.col-md-6
{
padding-left
:
7px
!important
;
padding-right
:
7px
!important
;
}
.main-panel
{
--tw-text-opacity
:
1
!important
;
color
:
rgb
(
255
255
255
/
var
(
--tw-text-opacity
,
1
))
!important
;
font-weight
:
bold
;
--tw-bg-opacity
:
1
!important
;
background
:
#00D4FF
;
background
:
linear-gradient
(
90deg
,
rgba
(
0
,
212
,
255
,
1
)
0%
,
rgba
(
23
,
115
,
207
,
1
)
53%
,
rgba
(
0
,
212
,
255
,
1
)
100%
);
border-radius
:
10px
;
}
.panel
,
.panel-heading
{
border-radius
:
10px
;
}
.primary
{
color
:
#1976d2
;
}
.bold
{
font-weight
:
bold
;
}
.panel-default
>
.panel-heading
{
color
:
#333
;
background-color
:
white
;
border-color
:
white
;
}
.icon-color
{
color
:
transparent
;
-webkit-text-stroke-width
:
0.5px
;
-webkit-text-stroke-color
:
#03c5f8
;
font-size
:
22px
;
}
.top-0
{
top
:
68px
!important
;
}
.left-0
{
left
:
8px
!important
;
}
.z-0
{
z-index
:
0
!important
;
}
.absolute
{
position
:
absolute
!important
;
}
.bottom-0
{
bottom
:
0
!important
;
}
.right-0
{
right
:
0
!important
;
}
h1
{
font-size
:
36px
;
}
.main-panel
.panel-body
.odometer-formatting-mark
{
color
:
#648baf
;
}
.icon-rounded
{
display
:
block
;
vertical-align
:
middle
;
max-width
:
100%
;
height
:
auto
;
padding-right
:
10px
;
}
.rounded
{
border-radius
:
7px
!important
;
}
.uppercase
{
text-transform
:
uppercase
!important
;
}
.odoometer-head
{
font-size
:
4.0em
;
}
.sub-odometer
{
font-size
:
2.5em
;
}
.padding-top-sm
{
padding-top
:
.5em
;
}
@media
all
and
(
max-width
:
699px
)
and
(
min-width
:
520px
),
(
min-width
:
1151px
)
{
/* .odoometer-head {
font-size: 2.0em;
}
.odoometer-sub {
font-size: 1.5em;
} */
}
\ No newline at end of file
\ No newline at end of file
eispajak/views/templates/eis-base.pt
View file @
25e040b
...
@@ -46,6 +46,7 @@
...
@@ -46,6 +46,7 @@
height
:
44px
;
height
:
44px
;
width
:
auto
;
width
:
auto
;
margin
:
0
;
margin
:
0
;
margin-left
:
10px
;
}
}
.project-context
.title-page
{
.project-context
.title-page
{
font-size
:
19px
;
font-size
:
19px
;
...
...
eispajak/views/templates/pcpd.pt
View file @
25e040b
<html
metal:use-macro=
"load: eis-base.pt"
tal:define=
"url request.route_url('eis-pcpd-act', act=module);"
>
<html
metal:use-macro=
"load: eis-base.pt"
tal:define=
"url request.route_url('eis-pcpd-act', act=module);"
>
<metal:css
fill-slot=
"css_files"
>
<metal:css
fill-slot=
"css_files"
>
<link
rel=
"stylesheet"
href=
"https://cdn.jsdelivr.net/npm/odometer@0.4.8/themes/odometer-theme-plaza.css"
>
<link
rel=
"stylesheet"
href=
"${home}/eis/static/css/odometer-theme-plaza.css"
>
<link
href=
"${home}/eis/static/css/pcpd.css"
rel=
"stylesheet"
>
</metal:css>
</metal:css>
<style
metal:fill-slot=
"styles"
>
<style
metal:fill-slot=
"styles"
>
div
.col-md-6
{
padding-left
:
7px
!important
;
padding-right
:
7px
!important
;
}
.main-panel
{
--tw-text-opacity
:
1
!important
;
color
:
rgb
(
255
255
255
/
var
(
--tw-text-opacity
,
1
))
!important
;
font-weight
:
bold
;
--tw-bg-opacity
:
1
!important
;
background
:
#00D4FF
;
background
:
linear-gradient
(
90deg
,
rgba
(
0
,
212
,
255
,
1
)
0%
,
rgba
(
23
,
115
,
207
,
1
)
53%
,
rgba
(
0
,
212
,
255
,
1
)
100%
);
border-radius
:
10px
;
}
.panel
,
.panel-heading
{
border-radius
:
10px
;
}
.primary
{
color
:
#1976d2
;
}
.bold
{
font-weight
:
bold
;
}
.panel-default
>
.panel-heading
{
color
:
#333
;
background-color
:
white
;
border-color
:
white
;
}
.icon-color
{
color
:
transparent
;
-webkit-text-stroke-width
:
0.5px
;
-webkit-text-stroke-color
:
#03c5f8
;
font-size
:
22px
;
}
.top-0
{
top
:
68px
!important
;
}
.left-0
{
left
:
8px
!important
;
}
.z-0
{
z-index
:
0
!important
;
}
.absolute
{
position
:
absolute
!important
;
}
.bottom-0
{
bottom
:
0
!important
;
}
.right-0
{
right
:
0
!important
;
}
h1
{
font-size
:
36px
;
}
.main-panel
.panel-body
.odometer-formatting-mark
{
color
:
#648baf
;
}
.icon-rounded
{
display
:
block
;
vertical-align
:
middle
;
max-width
:
100%
;
height
:
auto
;
padding-right
:
10px
;
}
.rounded
{
border-radius
:
7px
!important
;
}
.uppercase
{
text-transform
:
uppercase
!important
;
}
.padding-top-sm
{
padding-top
:
.5em
;
}
</style>
</style>
<div
metal:fill-slot=
"content"
>
<div
metal:fill-slot=
"content"
>
...
@@ -98,11 +12,11 @@
...
@@ -98,11 +12,11 @@
<div
class=
"col-md-12"
>
<div
class=
"col-md-12"
>
<div
class=
"panel panel-default text-center main-panel uppercase"
>
<div
class=
"panel panel-default text-center main-panel uppercase"
>
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<h1><b>
${title}
</b></h1>
<h1
class=
"title-panel"
><b>
${title}
</b></h1>
<div
class=
"padding-top-sm"
>
<div
class=
"padding-top-sm"
>
<h5
id=
"time"
>
Rab, 4 Jun 2025 - 14:11:05
</h5>
<h5
id=
"time"
>
Rab, 4 Jun 2025 - 14:11:05
</h5>
</div>
</div>
<h4
style=
"font-size: 4.0em;
"
>
<h4
class=
"odoometer-head
"
>
<b>
Rp.
<h4
class=
"odometer bold"
id=
"today"
></h4></b>
<b>
Rp.
<h4
class=
"odometer bold"
id=
"today"
></h4></b>
</h4>
</h4>
<h5
class=
"padding-top-sm"
><b><span
id=
"trx"
></span>
Transaksi
</b></h5>
<h5
class=
"padding-top-sm"
><b><span
id=
"trx"
></span>
Transaksi
</b></h5>
...
@@ -123,7 +37,7 @@
...
@@ -123,7 +37,7 @@
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<div
class=
"chart-container"
>
<div
class=
"chart-container"
>
<h2
class=
"primary"
>
<h2
class=
"primary"
>
<b>
Rp.
<h2
class=
"odometer
bold primary"
id=
"ytd"
style=
"font-size: 2.5em;
"
>
0
</h2></b>
<b>
Rp.
<h2
class=
"odometer
sub-odometer bold primary"
id=
"ytd
"
>
0
</h2></b>
</h2>
</h2>
<h3
class=
"primary bold"
><span
id=
"trxYtd"
>
1067
</span>
Transaksi
</h3>
<h3
class=
"primary bold"
><span
id=
"trxYtd"
>
1067
</span>
Transaksi
</h3>
</div>
</div>
...
@@ -175,14 +89,14 @@
...
@@ -175,14 +89,14 @@
<div
class=
"col-md-6"
>
<div
class=
"col-md-6"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<img
src=
"${home}/eis/static/42x42-
statistics
.png"
class=
"icon-rounded"
alt=
""
align=
"left"
>
<img
src=
"${home}/eis/static/42x42-
chart
.png"
class=
"icon-rounded"
alt=
""
align=
"left"
>
<h5
class=
"text-left bold"
>
Tren Realiasi
Transaksi
<h5
class=
"text-left bold"
>
Tren Realiasi
Kumulatif (Rp)
<i
class=
"fa fa-info-circle pull-right icon-color"
></i>
<i
class=
"fa fa-info-circle pull-right icon-color"
></i>
</h5>
</h5>
</div>
</div>
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<div
class=
"chart-container text-center"
style=
"position: relative;"
>
<div
class=
"chart-container text-center"
style=
"position: relative;"
>
<canvas
id=
"chart
RealisasiCnt
"
></canvas>
<canvas
id=
"chart
Kumulatif"
width=
"200"
height=
"200
"
></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -192,14 +106,14 @@
...
@@ -192,14 +106,14 @@
<div
class=
"col-md-6"
>
<div
class=
"col-md-6"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<img
src=
"${home}/eis/static/42x42-
chart
.png"
class=
"icon-rounded"
alt=
""
align=
"left"
>
<img
src=
"${home}/eis/static/42x42-
statistics
.png"
class=
"icon-rounded"
alt=
""
align=
"left"
>
<h5
class=
"text-left bold"
>
Tren
Realiasi Kumulatif (Rp)
<h5
class=
"text-left bold"
>
Tren
Transaksi
<i
class=
"fa fa-info-circle pull-right icon-color"
></i>
<i
class=
"fa fa-info-circle pull-right icon-color"
></i>
</h5>
</h5>
</div>
</div>
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<div
class=
"chart-container text-center"
style=
"position: relative;"
>
<div
class=
"chart-container text-center"
style=
"position: relative;"
>
<canvas
id=
"chart
Kumulatif"
width=
"200"
height=
"200
"
></canvas>
<canvas
id=
"chart
RealisasiCnt
"
></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -208,7 +122,7 @@
...
@@ -208,7 +122,7 @@
<div
class=
"panel panel-default"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<img
src=
"${home}/eis/static/42x42-line-chart-icon.png"
class=
"icon-rounded"
alt=
""
align=
"left"
>
<img
src=
"${home}/eis/static/42x42-line-chart-icon.png"
class=
"icon-rounded"
alt=
""
align=
"left"
>
<h5
class=
"text-left bold"
>
Tren
Realiasi Kumulatif Transaksi
<h5
class=
"text-left bold"
>
Tren
Transaksi Kumulatif
<i
class=
"fa fa-info-circle pull-right icon-color"
></i>
<i
class=
"fa fa-info-circle pull-right icon-color"
></i>
</h5>
</h5>
</div>
</div>
...
@@ -306,7 +220,17 @@
...
@@ -306,7 +220,17 @@
}
}
});
});
var
realisasi_data
=
{
labels
:
[
'H1'
,
'H2'
,
'H3'
,
'H4'
,
'H5'
,
'H6'
,
'H7'
,],
datasets
:
[{
label
:
'Tren Transaksi'
,
data
:
[
100
,
50
,
300
,
250
,
100
,
150
,
2000
],
borderColor
:
'#16a75c'
,
// 'rgb(75, 192, 192)',
backgroundColor
:
'#16a75c8a'
,
fill
:
true
,
tension
:
0.5
}]
};
var
ctx
=
document
.
getElementById
(
'chartRealisasiCnt'
).
getContext
(
'2d'
);
var
ctx
=
document
.
getElementById
(
'chartRealisasiCnt'
).
getContext
(
'2d'
);
var
canvas
=
document
.
getElementById
(
'chartRealisasiCnt'
);
var
canvas
=
document
.
getElementById
(
'chartRealisasiCnt'
);
canvas
.
width
=
window
.
innerWidth
;
canvas
.
width
=
window
.
innerWidth
;
...
@@ -327,7 +251,7 @@
...
@@ -327,7 +251,7 @@
var
kumulatif_data
=
{
var
kumulatif_data
=
{
labels
:
[
'H1'
,
'H2'
,
'H3'
,
'H4'
,
'H5'
,
'H6'
,
'H7'
,],
labels
:
[
'H1'
,
'H2'
,
'H3'
,
'H4'
,
'H5'
,
'H6'
,
'H7'
,],
datasets
:
[{
datasets
:
[{
label
:
'
Realisasi
Kumulatif'
,
label
:
'
Tren
Kumulatif'
,
data
:
[
100
,
150
,
400
,
650
,
900
,
950
,
1100
],
data
:
[
100
,
150
,
400
,
650
,
900
,
950
,
1100
],
borderColor
:
'#ffb900'
,
//'rgb(75, 192, 192)',
borderColor
:
'#ffb900'
,
//'rgb(75, 192, 192)',
backgroundColor
:
'#debd68ad'
,
backgroundColor
:
'#debd68ad'
,
...
@@ -410,6 +334,20 @@
...
@@ -410,6 +334,20 @@
addData
(
trxKumulatifChart
,
trxKumulatifChartData
);
addData
(
trxKumulatifChart
,
trxKumulatifChartData
);
}
}
const
formatter
=
new
Intl
.
DateTimeFormat
(
'id-ID'
,
{
dateStyle
:
'full'
,
timeStyle
:
'medium'
});
const
formatter
=
new
Intl
.
DateTimeFormat
(
'id-ID'
,
{
dateStyle
:
'full'
,
timeStyle
:
'medium'
});
var
today_el
=
document
.
getElementById
(
'today'
);
odtoday
=
new
Odometer
({
el
:
today_el
,
value
:
0
,
format
:
'(.ddd)'
,
});
var
ytd_el
=
document
.
getElementById
(
'ytd'
);
odytd
=
new
Odometer
({
el
:
ytd_el
,
value
:
0
,
format
:
'(.ddd)'
,
});
$
.
fn
.
datarefresh
=
function
()
{
$
.
fn
.
datarefresh
=
function
()
{
console
.
log
(
"data_refresh"
);
console
.
log
(
"data_refresh"
);
console
.
log
(
"${url}"
);
console
.
log
(
"${url}"
);
...
@@ -417,10 +355,10 @@
...
@@ -417,10 +355,10 @@
if
(
status
===
"success"
)
{
if
(
status
===
"success"
)
{
newData
=
data
;
newData
=
data
;
date
=
new
Date
(
newData
.
time
);
date
=
new
Date
(
newData
.
time
);
today
.
innerHTML
=
newData
.
today
;
odtoday
.
update
(
newData
.
today
)
;
trx
.
innerHTML
=
newData
.
trx
;
trx
.
innerHTML
=
parseInt
(
newData
.
trx
).
toLocaleString
(
"id-ID"
)
;
ytd
.
innerHTML
=
newData
.
ytd
;
odytd
.
update
(
newData
.
ytd
)
;
trxYtd
.
innerHTML
=
newData
.
trxYtd
;
trxYtd
.
innerHTML
=
parseInt
(
newData
.
trxYtd
).
toLocaleString
(
"id-ID"
)
;
time
.
innerHTML
=
formatter
.
format
(
date
);
//newData.time;
time
.
innerHTML
=
formatter
.
format
(
date
);
//newData.time;
time
.
style
.
fontWeight
=
'bold'
;
time
.
style
.
fontWeight
=
'bold'
;
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment