릴리스: v1.3.74 관리자 선택 제약과 카피라이트 추가
This commit is contained in:
@@ -620,6 +620,7 @@ const imageDiagnosticsCards = computed(() => {
|
||||
const visibleLinkedGames = computed(() =>
|
||||
(modalTargetCustomItem.value?.linkedGames || []).filter((game) => game?.id && game.id !== 'freeform')
|
||||
)
|
||||
const linkedCustomItemGameIds = computed(() => new Set(visibleLinkedGames.value.map((game) => game.id).filter(Boolean)))
|
||||
|
||||
const imageStatsPeriodLabel = computed(() => (imageStatsMonth.value ? `${imageStatsMonth.value} 기준` : '전체 기간'))
|
||||
const imageStatsYearOptions = computed(() => {
|
||||
@@ -1309,6 +1310,7 @@ async function chooseGameFromPicker(gameId) {
|
||||
return
|
||||
}
|
||||
if (gamePickerMode.value === 'custom-item-target') {
|
||||
if (linkedCustomItemGameIds.value.has(gameId)) return
|
||||
customItemModalTargetGameId.value = gameId
|
||||
closeGamePickerModal()
|
||||
return
|
||||
@@ -2035,12 +2037,21 @@ function userAvatarFallback(user) {
|
||||
v-for="game in filteredGamePickerGames"
|
||||
:key="game.id"
|
||||
class="adminGamePicker__item"
|
||||
:class="{ 'adminGamePicker__item--active': gamePickerMode === 'tierlists-filter' ? adminTierListGameId === game.id : selectedGameId === game.id }"
|
||||
:class="{
|
||||
'adminGamePicker__item--active': gamePickerMode === 'tierlists-filter'
|
||||
? adminTierListGameId === game.id
|
||||
: gamePickerMode === 'custom-item-target'
|
||||
? customItemModalTargetGameId === game.id
|
||||
: selectedGameId === game.id,
|
||||
'adminGamePicker__item--disabled': gamePickerMode === 'custom-item-target' && linkedCustomItemGameIds.has(game.id),
|
||||
}"
|
||||
type="button"
|
||||
:disabled="gamePickerMode === 'custom-item-target' && linkedCustomItemGameIds.has(game.id)"
|
||||
@click="chooseGameFromPicker(game.id)"
|
||||
>
|
||||
<span class="adminGamePicker__name">{{ game.name }}</span>
|
||||
<span class="adminGamePicker__meta">{{ game.id }}</span>
|
||||
<span v-if="gamePickerMode === 'custom-item-target' && linkedCustomItemGameIds.has(game.id)" class="adminGamePicker__state">이미 추가됨</span>
|
||||
</button>
|
||||
<div v-if="!filteredGamePickerGames.length" class="hint hint--tight">검색 결과가 없어요.</div>
|
||||
</div>
|
||||
@@ -2378,6 +2389,7 @@ function userAvatarFallback(user) {
|
||||
</div>
|
||||
</section>
|
||||
</aside>
|
||||
<div v-show="globalRightRailOpen" class="adminSidebarFooter adminUiScope">Copyright © 2026 zenn. All rights reserved.</div>
|
||||
</Teleport>
|
||||
</template>
|
||||
|
||||
@@ -2456,6 +2468,15 @@ function userAvatarFallback(user) {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
}
|
||||
.adminUiScope.adminSidebarFooter {
|
||||
margin-top: 6px;
|
||||
padding: 0 4px 2px;
|
||||
font-size: 9px;
|
||||
line-height: 1.4;
|
||||
text-align: center;
|
||||
color: var(--theme-text-faint);
|
||||
opacity: 0.72;
|
||||
}
|
||||
.adminUiScope .adminSidebar__panel {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
@@ -2572,6 +2593,11 @@ function userAvatarFallback(user) {
|
||||
border-color: rgba(77, 127, 233, 0.58);
|
||||
background: rgba(77, 127, 233, 0.12);
|
||||
}
|
||||
.adminUiScope .adminGamePicker__item--disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.58;
|
||||
border-style: dashed;
|
||||
}
|
||||
.adminUiScope .adminGamePicker__name {
|
||||
font-size: 13px;
|
||||
font-weight: 800;
|
||||
@@ -2583,6 +2609,11 @@ function userAvatarFallback(user) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.adminUiScope .adminGamePicker__state {
|
||||
margin-top: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--theme-text-faint);
|
||||
}
|
||||
.adminUiScope .gamePickerModalList {
|
||||
margin-top: 14px;
|
||||
display: grid;
|
||||
|
||||
Reference in New Issue
Block a user