Frontend admin support for Peace
This commit is contained in:
parent
25adc43696
commit
2983ee2926
@ -1,5 +1,5 @@
|
|||||||
# vim: set fileencoding=utf-8
|
# vim: set fileencoding=utf-8
|
||||||
from typing import Dict, Tuple
|
from typing import Any, Dict, Tuple
|
||||||
|
|
||||||
from bemani.backend.popn.base import PopnMusicBase
|
from bemani.backend.popn.base import PopnMusicBase
|
||||||
from bemani.backend.popn.common import PopnMusicModernBase
|
from bemani.backend.popn.common import PopnMusicModernBase
|
||||||
@ -27,9 +27,134 @@ class PopnMusicPeace(PopnMusicModernBase):
|
|||||||
def previous_version(self) -> PopnMusicBase:
|
def previous_version(self) -> PopnMusicBase:
|
||||||
return PopnMusicUsaNeko(self.data, self.config, self.model)
|
return PopnMusicUsaNeko(self.data, self.config, self.model)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_settings(cls) -> Dict[str, Any]:
|
||||||
|
"""
|
||||||
|
Return all of our front-end modifiably settings.
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
'ints': [
|
||||||
|
{
|
||||||
|
'name': 'Music Open Phase',
|
||||||
|
'tip': 'Default music phase for all players.',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'music_phase',
|
||||||
|
'values': {
|
||||||
|
# The value goes to 23 now, but it starts where usaneko left off at 11
|
||||||
|
# Unlocks a total of 53 songs
|
||||||
|
12: 'No music unlocks',
|
||||||
|
13: 'Phase 1',
|
||||||
|
14: 'Phase 2',
|
||||||
|
15: 'Phase 3',
|
||||||
|
16: 'Phase 4',
|
||||||
|
17: 'Phase 5',
|
||||||
|
18: 'Phase 6',
|
||||||
|
19: 'Phase 7',
|
||||||
|
20: 'Phase 8',
|
||||||
|
21: 'Phase 9',
|
||||||
|
22: 'Phase 10',
|
||||||
|
23: 'Phase MAX',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'NAVI-Kun Event Phase',
|
||||||
|
'tip': 'NAVI-Kun event phase for all players.',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'navikun_phase',
|
||||||
|
'values': {
|
||||||
|
# The value goes to 30 now, but it starts where usaneko left off at 15
|
||||||
|
# Unlocks a total of 89 songs
|
||||||
|
15: 'Phase 1',
|
||||||
|
16: 'Phase 2',
|
||||||
|
17: 'Phase 3',
|
||||||
|
18: 'Phase 4',
|
||||||
|
19: 'Phase 5',
|
||||||
|
20: 'Phase 6',
|
||||||
|
21: 'Phase 7',
|
||||||
|
22: 'Phase 8',
|
||||||
|
23: 'Phase 9',
|
||||||
|
24: 'Phase 10',
|
||||||
|
25: 'Phase 11',
|
||||||
|
26: 'Phase 12',
|
||||||
|
27: 'Phase 13',
|
||||||
|
28: 'Phase 14',
|
||||||
|
29: 'Phase 15',
|
||||||
|
30: 'Phase MAX',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# For festive times, it's possible to change the welcome greeting. I'm not sure why you would want to change this, but now you can.
|
||||||
|
'name': 'Holiday Greeting',
|
||||||
|
'tip': 'Changes the payment selection confirmation sound.',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'holiday_greeting',
|
||||||
|
'values': {
|
||||||
|
0: 'Okay!',
|
||||||
|
1: 'Merry Christmas!',
|
||||||
|
2: 'Happy New Year!',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# The following values control the pop'n music event archive. Setting the flag to the following values has the
|
||||||
|
# corresponding effect. Each value will include the events above it, for example setting it to 5 gives you the
|
||||||
|
# pop'n 15 event, as well as SP, 12, and 11 events. Setting it to 0 disabled the event and skips the entire screen,
|
||||||
|
#setting it to 20 makes all of the events available for selection. Completing the minigame unlocks the associated content.
|
||||||
|
|
||||||
|
'name': 'Event Archive Phase',
|
||||||
|
'tip': 'Event Archive mini-game phase for all players.',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'event_archive_phase',
|
||||||
|
'values': {
|
||||||
|
0: 'Event Archive disabled',
|
||||||
|
1: 'pop\'n music 11 - The Latest Space Station',
|
||||||
|
2: 'pop\'n music 11 & 12 Iroha - The Southernmost Point of the Universe / Ninja Otasuke Cheat Sheet in Trouble',
|
||||||
|
3: 'pop\'n music Sunny Park - I Love Walking in Happiness Park',
|
||||||
|
4: 'pop\'n music 12 Iroha - Ninja Code: April 1st Volume',
|
||||||
|
5: 'pop\'n music 15 ADVENTURE - Route to Awaken the Soul',
|
||||||
|
6: 'pop\'n music 20 fantasia - A Braided Fantasy Song',
|
||||||
|
7: 'EXTRA',
|
||||||
|
8: 'pop\'n music 15 ADVENTURE - A Route with a Faint Bell Sound',
|
||||||
|
9: 'pop\'n music 13 Carnival - Bunny Magician Attraction',
|
||||||
|
10: 'pop\'n music 14 FEVER! - That Burning Special Attack, again!',
|
||||||
|
11: 'pop\'n music Sunny Park - Festival Nightfall Park',
|
||||||
|
12: 'pop\'n music 20 fantasia - A Fantasy Song by the Bladed Warrior',
|
||||||
|
13: 'pop\'n music 19 TUNE STREET - A Town Where the Sound of the Brass Band Rings After School',
|
||||||
|
14: 'pop\'n music éclale - Fun Rag Hour',
|
||||||
|
15: 'pop\'n music 13 Carnival - Ghost Piano Attraction',
|
||||||
|
16: 'pop\'n music 14 FEVER! - That Warrior Defending Peace, again!',
|
||||||
|
17: 'pop\'n music 18 Sengoku Retsuden - A Territory with a Glamorous Cultural Flavor',
|
||||||
|
18: 'pop\'n music éclale - Runaway Guitarist in the Starry Sky',
|
||||||
|
19: 'pop\'n music 17 THE MOVIE - A Blockbuster Uncovering a Conspiracy in the Peaceful City',
|
||||||
|
20: 'pop\'n music lapistoria - God\'s Forgotten Things',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'bools': [
|
||||||
|
# Enable Net Taisen, including win/loss display on song select (0-1)
|
||||||
|
{
|
||||||
|
'name': 'Net Taisen',
|
||||||
|
'tip': 'Enable Net Taisen, including win/loss display on song select',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'enable_net_taisen',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Force Song Unlock',
|
||||||
|
'tip': 'Force unlock all songs.',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'force_unlock_songs',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
def get_common_config(self) -> Tuple[Dict[int, int], bool, int]:
|
def get_common_config(self) -> Tuple[Dict[int, int], bool, int]:
|
||||||
|
game_config = self.get_game_config()
|
||||||
|
music_phase = game_config.get_int('music_phase')
|
||||||
|
event_archive_phase = game_config.get_int('event_archive_phase')
|
||||||
|
holiday_greeting = game_config.get_int('holiday_greeting')
|
||||||
|
enable_net_taisen = game_config.get_bool('enable_net_taisen')
|
||||||
|
navikun_phase = game_config.get_int('navikun_phase')
|
||||||
|
|
||||||
# Event phases
|
# Event phases
|
||||||
# TODO: Hook event mode settings up to the front end.
|
|
||||||
return (
|
return (
|
||||||
{
|
{
|
||||||
# Default song phase availability (0-23)
|
# Default song phase availability (0-23)
|
||||||
@ -58,17 +183,17 @@ class PopnMusicPeace(PopnMusicModernBase):
|
|||||||
# 21 - 1818
|
# 21 - 1818
|
||||||
# 22 - 1825
|
# 22 - 1825
|
||||||
# 23 - 1858, 1857
|
# 23 - 1858, 1857
|
||||||
0: 23,
|
0: music_phase,
|
||||||
# Unknown event (0-4)
|
# Unknown event (0-4)
|
||||||
1: 4,
|
1: 4,
|
||||||
# Unknown event (0-2)
|
# Holiday Greeting (0-2)
|
||||||
2: 2,
|
2: holiday_greeting,
|
||||||
# Unknown event (0-4)
|
# Unknown event (0-4)
|
||||||
3: 4,
|
3: 4,
|
||||||
# Unknown event (0-1)
|
# Unknown event (0-1)
|
||||||
4: 1,
|
4: 1,
|
||||||
# Enable Net Taisen, including win/loss display on song select (0-1)
|
# Enable Net Taisen, including win/loss display on song select (0-1)
|
||||||
5: 1,
|
5: enable_net_taisen,
|
||||||
# Enable NAVI-kun shunkyoku toujou, allows song 1608 to be unlocked (0-1)
|
# Enable NAVI-kun shunkyoku toujou, allows song 1608 to be unlocked (0-1)
|
||||||
6: 1,
|
6: 1,
|
||||||
# Unknown event (0-1)
|
# Unknown event (0-1)
|
||||||
@ -109,14 +234,14 @@ class PopnMusicPeace(PopnMusicModernBase):
|
|||||||
# 28 - 1692, 1693, 1694
|
# 28 - 1692, 1693, 1694
|
||||||
# 29 - 1696, 1697, 1698, 1699, 1700, 1701, 1702
|
# 29 - 1696, 1697, 1698, 1699, 1700, 1701, 1702
|
||||||
# 30 - 1682, 1683, 1684
|
# 30 - 1682, 1683, 1684
|
||||||
10: 30,
|
10: navikun_phase,
|
||||||
# Unknown event (0-1)
|
# Unknown event (0-1)
|
||||||
11: 1,
|
11: 1,
|
||||||
# Unknown event (0-2)
|
# Unknown event (0-2)
|
||||||
12: 2,
|
12: 2,
|
||||||
# Enable Pop'n Peace preview song (0-1)
|
# Enable Pop'n Peace preview song (0-1)
|
||||||
13: 1,
|
13: 1,
|
||||||
# Unknown event (0-39)
|
# Stamp Card Rally (0-39)
|
||||||
14: 39,
|
14: 39,
|
||||||
# Unknown event (0-2)
|
# Unknown event (0-2)
|
||||||
15: 2,
|
15: 2,
|
||||||
@ -124,11 +249,11 @@ class PopnMusicPeace(PopnMusicModernBase):
|
|||||||
16: 3,
|
16: 3,
|
||||||
# Unknown event (0-8)
|
# Unknown event (0-8)
|
||||||
17: 8,
|
17: 8,
|
||||||
# Appears to be floor infection (0-1)
|
# FLOOR INFECTION event (0-1)
|
||||||
# The following songs are linked to this event:
|
# The following songs are linked to this event:
|
||||||
# 1 - 1223, 1224, 1225, 1239, 1240, 1241, 1245, 1247, 1340, 1342, 1394, 1523, 1524, 1525, 1598, 1667, 1668, 1666
|
# 1 - 1223, 1224, 1225, 1239, 1240, 1241, 1245, 1247, 1340, 1342, 1394, 1523, 1524, 1525, 1598, 1667, 1668, 1666
|
||||||
18: 1,
|
18: 1,
|
||||||
# Appears to be pop'n music × NOSTALGIA kyouenkai (0-1)
|
# pop'n music × NOSTALGIA kyouenkai (0-1)
|
||||||
# Setting this to 1 is linked to the song 1695
|
# Setting this to 1 is linked to the song 1695
|
||||||
19: 1,
|
19: 1,
|
||||||
# Event archive event (0-13)
|
# Event archive event (0-13)
|
||||||
@ -148,7 +273,7 @@ class PopnMusicPeace(PopnMusicModernBase):
|
|||||||
# 13 - 1833, 1824
|
# 13 - 1833, 1824
|
||||||
20: 13,
|
20: 13,
|
||||||
# Pop'n event archive song phase availability (0-20)
|
# Pop'n event archive song phase availability (0-20)
|
||||||
21: 20,
|
21: event_archive_phase,
|
||||||
# バンめし♪ ふるさとグランプリunlocks (split into two rounds) (0-2)
|
# バンめし♪ ふるさとグランプリunlocks (split into two rounds) (0-2)
|
||||||
# The following songs are linked to this event:
|
# The following songs are linked to this event:
|
||||||
# 1 - 1851, 1852, 1853, 1854
|
# 1 - 1851, 1852, 1853, 1854
|
||||||
|
@ -54,6 +54,18 @@ class PopnMusicUsaNeko(PopnMusicModernBase):
|
|||||||
11: 'Phase MAX',
|
11: 'Phase MAX',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
# For festive times, it's possible to change the welcome greeting. I'm not sure why you would want to change this, but now you can.
|
||||||
|
'name': 'Holiday Greeting',
|
||||||
|
'tip': 'Changes the payment selection confirmation sound.',
|
||||||
|
'category': 'game_config',
|
||||||
|
'setting': 'holiday_greeting',
|
||||||
|
'values': {
|
||||||
|
0: 'Okay!',
|
||||||
|
1: 'Merry Christmas!',
|
||||||
|
2: 'Happy New Year!',
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'name': 'Active Event',
|
'name': 'Active Event',
|
||||||
'tip': 'Active event for all players.',
|
'tip': 'Active event for all players.',
|
||||||
@ -103,6 +115,7 @@ class PopnMusicUsaNeko(PopnMusicModernBase):
|
|||||||
def get_common_config(self) -> Tuple[Dict[int, int], bool, int]:
|
def get_common_config(self) -> Tuple[Dict[int, int], bool, int]:
|
||||||
game_config = self.get_game_config()
|
game_config = self.get_game_config()
|
||||||
music_phase = game_config.get_int('music_phase')
|
music_phase = game_config.get_int('music_phase')
|
||||||
|
holiday_greeting = game_config.get_int('holiday_greeting')
|
||||||
active_event = game_config.get_int('active_event')
|
active_event = game_config.get_int('active_event')
|
||||||
navikun_phase = game_config.get_int('navikun_phase')
|
navikun_phase = game_config.get_int('navikun_phase')
|
||||||
|
|
||||||
@ -128,8 +141,8 @@ class PopnMusicUsaNeko(PopnMusicModernBase):
|
|||||||
0: music_phase,
|
0: music_phase,
|
||||||
# Unknown event (0-2)
|
# Unknown event (0-2)
|
||||||
1: 2,
|
1: 2,
|
||||||
# Unknown event (0-2)
|
# Holiday Greeting (0-2)
|
||||||
2: 2,
|
2: holiday_greeting,
|
||||||
# Unknown event (0-4)
|
# Unknown event (0-4)
|
||||||
3: 4,
|
3: 4,
|
||||||
# Unknown event (0-1)
|
# Unknown event (0-1)
|
||||||
|
35
bemani/frontend/static/themes/dark/color.css
Normal file
35
bemani/frontend/static/themes/dark/color.css
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
.bishi.border {
|
||||||
|
border-color: #EF6A32;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mga.border {
|
||||||
|
border-color: #ff0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ddr.border {
|
||||||
|
border-color: #017351;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iidx.border {
|
||||||
|
border-color: #A12A5E;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jubeat.border {
|
||||||
|
border-color: #FBBF45;
|
||||||
|
}
|
||||||
|
|
||||||
|
.museca.border {
|
||||||
|
border-color: #AAD962;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pnm.border {
|
||||||
|
border-color: #ED0345;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reflec.border {
|
||||||
|
border-color: #03C383;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sdvx.border {
|
||||||
|
border-color: #710162;
|
||||||
|
}
|
BIN
bemani/frontend/static/themes/dark/favicon.png
Normal file
BIN
bemani/frontend/static/themes/dark/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
130
bemani/frontend/static/themes/dark/form.css
Normal file
130
bemani/frontend/static/themes/dark/form.css
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
form.inline {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.inline label {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.inline label.inline {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.inline div.row {
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.inline select {
|
||||||
|
vertical-align: bottom;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.inline {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button::-moz-focus-inner, input::-moz-focus-inner {
|
||||||
|
border:0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
form div.action {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
option.placeholder {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.buttons {
|
||||||
|
padding-top:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="submit"] {
|
||||||
|
border: 1px solid #cddcc1;
|
||||||
|
background: #49B979;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="button"], button.nav, button.toggle, button.edit, button.add, button.viewmore, button.btn-default {
|
||||||
|
border: 1px solid #dadada;
|
||||||
|
color: #b0b1b2;
|
||||||
|
background: #282828;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="submit"], input[type="button"], button {
|
||||||
|
border-radius: 0px;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
padding-left: 12px;
|
||||||
|
padding-right: 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"], input[type="password"], textarea {
|
||||||
|
border: 1px solid #dadada;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 0px;
|
||||||
|
background-color: #b3b4b5;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
border: 1px solid #dadada;
|
||||||
|
padding: 4px 4px 3px 4px;
|
||||||
|
border-radius: 0px;
|
||||||
|
background: #dadada;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="button"] {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.toggle:not(:last-child):not(:only-child), button.edit:not(:last-child):not(:only-child), button.delete:not(:last-child):not(:only-child), button.add:not(:last-child):not(:only-child), button.nav:not(:last-child):not(:only-child) {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span + button.edit, span + button.toggle, span + button.delete, span + button.add,
|
||||||
|
div + button.edit, div + button.toggle, div + button.delete, div + button.add {
|
||||||
|
margin-left: 15px;
|
||||||
|
background-color: #282828;
|
||||||
|
color: #b3b3b3;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.nav {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-right: 0px;
|
||||||
|
border: 1px solid #dadada;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.prev::before {
|
||||||
|
content: "\2190";
|
||||||
|
font-weight: bold;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.next::after {
|
||||||
|
content: "\2192";
|
||||||
|
font-weight: bold;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.active {
|
||||||
|
text-shadow: 0.33px 0.33px #000000;
|
||||||
|
border: 1px solid #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
color: #b3b3b3;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.delete {
|
||||||
|
border: 1px solid #d6caca;
|
||||||
|
background: #B94949;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popn-nav button, .settings-nav button {
|
||||||
|
height: 32px;
|
||||||
|
}
|
187
bemani/frontend/static/themes/dark/section.css
Normal file
187
bemani/frontend/static/themes/dark/section.css
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
div.container div.section:not(:first-child) {
|
||||||
|
padding-top: 20px;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.container div.floating.right {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.separator {
|
||||||
|
font-size: large;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.horizontal {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.vertical {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.horizontal:not(:last-child):not(:only-child) {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection div.label {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection div.content {
|
||||||
|
margin: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.centered div.content, div.labelledsection.centered div.label {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.padded {
|
||||||
|
text-align: center;
|
||||||
|
width: 150px;
|
||||||
|
padding-top: 20px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.filled {
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
border: 1px dashed #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.separator {
|
||||||
|
font-size: large;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.iidx.themeoption select {
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.iidx.qprooption select {
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.labelledsection.ddr.option select {
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.iidx.menuoption label, div.arcade.menuoption label {
|
||||||
|
position: relative;
|
||||||
|
vertical-align: middle;
|
||||||
|
bottom: 3px;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.iidx.menuoption, div.arcade.menuoption {
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.arcade.menuoption label {
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.score span.label {
|
||||||
|
font-size: smaller;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.score span.status {
|
||||||
|
font-size: smaller;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.score span.score {
|
||||||
|
padding-left: 3px;
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.score span.grade {
|
||||||
|
font-weight: bold;
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.songname {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: large;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.songartist, div.songgenre, div.songdifficulty, div.songplays {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.file {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ownerlist {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ownerlist li {
|
||||||
|
margin-left: 25px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.card {
|
||||||
|
display: inline-block;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.placeholder, span.placeholder {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.timestamp {
|
||||||
|
font-style: italic;
|
||||||
|
font-size: small;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.loading {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.raised {
|
||||||
|
font-style: italic;
|
||||||
|
font-size: small;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin: 0px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.longmessage {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.longmessage pre {
|
||||||
|
border: 1px solid rgba(128, 128, 128, 0.33);
|
||||||
|
background: rgb(232, 232, 232);
|
||||||
|
padding: 5px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.filter:not(:last-child) {
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
274
bemani/frontend/static/themes/dark/site.css
Normal file
274
bemani/frontend/static/themes/dark/site.css
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
body {
|
||||||
|
font-family: Helvetica;
|
||||||
|
color: #b3b3b3;
|
||||||
|
margin: 0px;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
background-color: #121212;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #878889;
|
||||||
|
}
|
||||||
|
div.messages {
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.container {
|
||||||
|
padding-top: 15px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 30px;
|
||||||
|
padding-right: 30px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.loading {
|
||||||
|
margin-left: 50%;
|
||||||
|
margin-right: 50%;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.navigation {
|
||||||
|
background-color: whitesmoke;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tinynav {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 600px) {
|
||||||
|
.tinynav {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
#nav {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (hover: none) {
|
||||||
|
.tinynav {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
#nav {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages li {
|
||||||
|
padding: 5px;
|
||||||
|
margin-top: 10px;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages div.close {
|
||||||
|
font-size: smaller;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
color: #000000;
|
||||||
|
float: right;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages li.error {
|
||||||
|
border: 1px solid #e2afb6;
|
||||||
|
background-color: #ffced5;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages li.warning {
|
||||||
|
border: 1px solid #e6deb4;
|
||||||
|
background-color: #fff7ce;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages li.success {
|
||||||
|
border: 1px solid #cddcc1;
|
||||||
|
background: #e7ffd4;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.messages li.info {
|
||||||
|
border: 1px solid #b0b0d2;
|
||||||
|
background-color: #d0d0ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation {
|
||||||
|
list-style: none;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
position: relative;
|
||||||
|
text-align: right;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation li {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation_sub {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
background-color: #e4e4e4;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
min-width: 150px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation_sub li {
|
||||||
|
float: none;
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation_sub li a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.cursor {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation li:hover ul.navigation_sub {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation li.left {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation div.separator {
|
||||||
|
cursor: default;
|
||||||
|
width: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation li a {
|
||||||
|
border: 0px solid #676767;
|
||||||
|
display: block;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 10px;
|
||||||
|
color: #676767;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation li a:hover {
|
||||||
|
background-color: #d2d2d2;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation li a:active {
|
||||||
|
background-color: #d2d2d2;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation > li > a.current {
|
||||||
|
border-bottom-width: 1.6px;
|
||||||
|
border-bottom-style: solid;
|
||||||
|
padding-bottom: 8.4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.navigation > li > ul.navigation_sub > li > a.current {
|
||||||
|
border-left-width: 2px;
|
||||||
|
border-left-style: solid;
|
||||||
|
padding-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5 {
|
||||||
|
padding-top: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.loading {
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tooltip {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.nav span.alert {
|
||||||
|
padding-left: 5px;
|
||||||
|
color: #459900;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tooltip span.tooltiptext {
|
||||||
|
visibility: hidden;
|
||||||
|
background-color: #555;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
padding: 5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
width: 300px;
|
||||||
|
|
||||||
|
/* Position the tooltip text */
|
||||||
|
position: absolute;
|
||||||
|
top: -5px;
|
||||||
|
left: 105%;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tooltip span.tooltiptext::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 15px;
|
||||||
|
right: 100%;
|
||||||
|
margin-top: -5px;
|
||||||
|
border-width: 5px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: transparent #555 transparent transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tooltip:hover span.tooltiptext {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.pill {
|
||||||
|
display: inline-block;
|
||||||
|
border: 1px solid red;
|
||||||
|
background: pink;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
margin-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.sort {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.checkbox {
|
||||||
|
padding-right: 5px;
|
||||||
|
cursor: default;
|
||||||
|
}
|
135
bemani/frontend/static/themes/dark/table.css
Normal file
135
bemani/frontend/static/themes/dark/table.css
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
table.list, table.add {
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead tr th {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.add th {
|
||||||
|
text-align: left;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list th {
|
||||||
|
background-color: #192021;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: left;
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list th.action {
|
||||||
|
background-color: #808080;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list tbody td, table.add tbody td {
|
||||||
|
padding: 5px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list tbody td {
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td.center {
|
||||||
|
word-break: break-word;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list input[type="text"], table.add input[type="text"] {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list select, table.add select {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list tbody tr:nth-child(odd) td {
|
||||||
|
background-color: #242526;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list tbody tr:nth-child(even) td {
|
||||||
|
background-color: #3a3b3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td.subheader {
|
||||||
|
background-color: #e7e7e7 ! important;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table tfoot td {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.records, table.attempts, table.topscores, table.players, table.events {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.records a, table.attempts a, table.topscores a, table.players a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.edit {
|
||||||
|
background-color: #808080 ! important;
|
||||||
|
border: none ! important;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.nochart {
|
||||||
|
background-color: #181818 ! important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.list input[type="checkbox"], table.add input[type="checkbox"] {
|
||||||
|
width: 26px;
|
||||||
|
height: 26px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events div.circle {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
border-radius: 8px;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-bottom: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.details div.inline {
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.details pre.inline {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.exception div.circle {
|
||||||
|
background-color: rgb(214, 72, 72);
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.unhandled div.circle {
|
||||||
|
background-color: rgb(255, 165, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.unauthorized div.circle {
|
||||||
|
background-color: rgb(119, 0, 119);
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.scheduled div.circle {
|
||||||
|
background-color: #2d6ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.pcbevent div.circle {
|
||||||
|
background-color: #26a226;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.events td.transaction div.circle {
|
||||||
|
background-color: #f9ed00;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user