2022-10-29 18:28:24 +09:00
{% extends "base.html" %}
{% block content %}
2026-01-01 00:32:59 +09:00
< div id = "linkkf_setting_wrapper" class = "container-fluid mt-4 mx-auto content-cloak" style = "max-width: 100%; padding-left: 5px; padding-right: 5px;" >
2025-12-29 23:12:44 +09:00
< div class = "glass-card p-4" >
< div class = "d-flex justify-content-between align-items-center mb-4" >
< h2 class = "text-white font-weight-bold" > < i class = "bi bi-gear-fill mr-2" > < / i > Linkkf 설정< / h2 >
{{ macros.m_button_group([['globalSettingSaveBtn', '설정 저장']])}}
2022-10-29 18:28:24 +09:00
< / div >
2025-12-29 23:12:44 +09:00
{{ macros.m_row_start('5') }}
{{ macros.m_row_end() }}
< nav >
{{ macros.m_tab_head_start() }}
{{ macros.m_tab_head('normal', '일반', true) }}
{{ macros.m_tab_head('auto', '홈화면 자동', false) }}
{{ macros.m_tab_head('action', '기타', false) }}
{{ macros.m_tab_head_end() }}
< / nav >
< form id = "setting" class = "mt-4" >
< div class = "tab-content" id = "nav-tabContent" >
{{ macros.m_tab_content_start('normal', true) }}
{{ macros.setting_input_text_and_buttons('linkkf_url', 'linkkf URL', [['go_btn', 'GO']], value=arg['linkkf_url']) }}
2026-01-01 16:57:48 +09:00
<!-- 저장 폴더 (탐색 버튼 포함) -->
< div class = "row" style = "padding-top: 10px; padding-bottom:10px; align-items: center;" >
< div class = "col-sm-3 set-left" >
< strong > 저장 폴더< / strong >
< / div >
< div class = "col-sm-9" >
< div class = "input-group col-sm-9" >
< input type = "text" class = "form-control form-control-sm" id = "linkkf_download_path" name = "linkkf_download_path" value = "{{arg['linkkf_download_path']}}" >
< div class = "btn-group btn-group-sm flex-wrap mr-2" role = "group" style = "padding-left:5px; padding-top:0px" >
< button type = "button" class = "btn btn-sm btn-outline-primary" id = "browse_folder_btn" title = "폴더 탐색" >
< i class = "bi bi-folder2-open" > < / i > 탐색
< / button >
< / div >
< / div >
< div style = "padding-left:20px; padding-top:5px;" >
< em > 정상적으로 다운 완료 된 파일이 이동할 폴더 입니다.< / em >
< / div >
< / div >
< / div >
2026-01-01 00:32:59 +09:00
{{ macros.setting_input_int('linkkf_max_ffmpeg_process_count', '동시 다운로드 에피소드 수', value=arg['linkkf_max_ffmpeg_process_count'], desc='동시에 다운로드할 에피소드 개수입니다.') }}
{{ macros.setting_select('linkkf_download_method', '다운로드 방법', [['ffmpeg', 'ffmpeg (기본)'], ['ytdlp', 'yt-dlp (단일쓰레드)'], ['aria2c', 'yt-dlp (멀티쓰레드/aria2c)']], col='3', value=arg['linkkf_download_method'], desc='aria2c 선택 시 병렬 다운로드로 속도가 향상됩니다.') }}
{{ macros.setting_input_int('linkkf_download_threads', '멀티쓰레드 갯수', value=arg['linkkf_download_threads'], desc='yt-dlp/aria2c 사용 시 적용될 병렬 다운로드 쓰레드 수입니다. (기본 16)') }}
2025-12-29 23:12:44 +09:00
{{ macros.setting_checkbox('linkkf_order_desc', '요청 화면 최신순 정렬', value=arg['linkkf_order_desc'], desc='On : 최신화부터, Off : 1화부터') }}
{{ macros.setting_checkbox('linkkf_auto_make_folder', '제목 폴더 생성', value=arg['linkkf_auto_make_folder'], desc='제목으로 폴더를 생성하고 폴더 안에 다운로드합니다.') }}
< div id = "linkkf_auto_make_folder_div" class = "collapse pl-4 border-left ml-3" style = "border-color: rgba(255,255,255,0.1) !important;" >
{{ macros.setting_input_text('linkkf_finished_insert', '완결 표시', col='3', value=arg['linkkf_finished_insert'], desc=['완결된 컨텐츠 폴더명 앞에 넣을 문구입니다.']) }}
{{ macros.setting_checkbox('linkkf_auto_make_season_folder', '시즌 폴더 생성', value=arg['linkkf_auto_make_season_folder'], desc=['On : Season 번호 폴더를 만듭니다.']) }}
< / div >
{{ macros.setting_checkbox('linkkf_uncompleted_auto_enqueue', '자동으로 다시 받기', value=arg['linkkf_uncompleted_auto_enqueue'], desc=['On : 플러그인 로딩시 미완료인 항목은 자동으로 다시 받습니다.']) }}
{{ macros.m_tab_content_end() }}
{{ macros.m_tab_content_start('auto', false) }}
{{ macros.global_setting_scheduler_button(arg['scheduler'], arg['is_running']) }}
{{ macros.setting_input_text('linkkf_interval', '스케쥴링 실행 정보', value=arg['linkkf_interval'], col='3', desc=['Inverval(minute 단위)이나 Cron 설정']) }}
{{ macros.setting_checkbox('linkkf_auto_start', '시작시 자동실행', value=arg['linkkf_auto_start'], desc='On : 시작시 자동으로 스케쥴러에 등록됩니다.') }}
{{ macros.setting_input_textarea('linkkf_auto_code_list', '자동 다운로드할 작품 코드', desc=['all 입력시 모두 받기', '구분자 | 또는 엔터'], value=arg['linkkf_auto_code_list'], row='10') }}
{{ macros.setting_checkbox('linkkf_auto_mode_all', '에피소드 모두 받기', value=arg['linkkf_auto_mode_all'], desc=['On : 이전 에피소드를 모두 받습니다.', 'Off : 최신 에피소드만 받습니다.']) }}
{{ macros.m_tab_content_end() }}
< / div > <!-- tab - content -->
< / form >
< / div >
2022-10-29 18:28:24 +09:00
< / div > <!-- 전체 -->
2026-01-01 16:57:48 +09:00
<!-- 폴더 탐색 모달 -->
< div class = "modal fade" id = "folderBrowserModal" tabindex = "-1" role = "dialog" aria-labelledby = "folderBrowserModalLabel" aria-hidden = "true" >
< div class = "modal-dialog modal-lg" role = "document" >
< div class = "modal-content" style = "background: #1e293b; border: 1px solid rgba(255,255,255,0.1);" >
< div class = "modal-header" style = "border-color: rgba(255,255,255,0.1);" >
< h5 class = "modal-title text-white" id = "folderBrowserModalLabel" >
< i class = "bi bi-folder2-open mr-2" > < / i > 폴더 선택
< / h5 >
< button type = "button" class = "close text-white" data-dismiss = "modal" aria-label = "Close" >
< span aria-hidden = "true" > × < / span >
< / button >
< / div >
< div class = "modal-body" >
< div class = "d-flex align-items-center mb-3" >
< button type = "button" class = "btn btn-sm btn-outline-secondary mr-2" id = "folder_go_up" title = "상위 폴더" >
< i class = "bi bi-arrow-up" > < / i >
< / button >
< div class = "flex-grow-1 px-3 py-2 rounded" style = "background: rgba(0,0,0,0.3); font-family: monospace; color: #94a3b8;" >
< span id = "current_path_display" > /< / span >
< / div >
< / div >
< div id = "folder_list" style = "min-height: 300px; max-height: 600px; overflow-y: auto; background: rgba(0,0,0,0.2); border-radius: 8px; padding: 4px;" >
< div class = "text-center text-muted py-4" >
< i class = "bi bi-arrow-repeat spin" > < / i > 로딩 중...
< / div >
< / div >
< / div >
< div class = "modal-footer" style = "border-color: rgba(255,255,255,0.1);" >
< button type = "button" class = "btn btn-secondary" data-dismiss = "modal" > 취소< / button >
< button type = "button" class = "btn btn-primary" id = "folder_select_btn" >
< i class = "bi bi-check-lg mr-1" > < / i > 선택
< / button >
< / div >
< / div >
< / div >
< / div >
2025-12-29 23:12:44 +09:00
< link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" >
< style >
/* Global Background */
body {
font-family : 'NamumSquareNeo' , system-ui , - apple-system , Segoe UI , Roboto , Helvetica Neue , Noto Sans , Liberation Sans , Arial , sans-serif ;
background-image : linear-gradient ( 135 deg , #1f2937 , #111827 , #0f172a ) ;
color : #e2e8f0 ;
min-height : 100 vh ;
}
/* Glass Card Container */
. glass-card {
background : rgba ( 30 , 41 , 59 , 0.7 ) ;
backdrop-filter : blur ( 12 px ) ;
border : 1 px solid rgba ( 255 , 255 , 255 , 0.08 ) ;
border-radius : 16 px ;
box-shadow : 0 4 px 6 px -1 px rgba ( 0 , 0 , 0 , 0.1 ) , 0 2 px 4 px -1 px rgba ( 0 , 0 , 0 , 0.06 ) ;
}
/* Tabs Styling */
. nav-tabs {
border-bottom : 2 px solid rgba ( 255 , 255 , 255 , 0.1 ) ;
}
. nav-tabs . nav-link {
color : #94a3b8 ;
border : none ;
font-weight : 600 ;
padding : 10 px 20 px ;
border-radius : 8 px 8 px 0 0 ;
transition : all 0.2 s ;
}
. nav-tabs . nav-link : hover {
color : #e2e8f0 ;
background : rgba ( 255 , 255 , 255 , 0.05 ) ;
}
. nav-tabs . nav-link . active {
color : #60a5fa !important ;
background : rgba ( 30 , 41 , 59 , 0.8 ) !important ;
border-bottom : 2 px solid #60a5fa !important ;
}
/* Navigation Menu Override (Top Sub-menu) */
ul . nav . nav-pills . bg-light {
background-color : rgba ( 30 , 41 , 59 , 0.6 ) !important ;
backdrop-filter : blur ( 10 px ) ;
border : 1 px solid rgba ( 255 , 255 , 255 , 0.08 ) ;
border-radius : 50 rem !important ; /* Pill shape container */
padding : 6 px !important ;
box-shadow : 0 4 px 20 px rgba ( 0 , 0 , 0 , 0.2 ) !important ;
display : inline-flex !important ; /* Fit content */
flex-wrap : wrap ; /* allow wrap on small screens */
justify-content : center ;
width : auto !important ; /* Prevent full width */
margin-bottom : 20 px ;
}
2026-01-01 00:32:59 +09:00
/* Navigation (Tabs) Optimization */
2026-01-01 02:19:22 +09:00
/* Navigation Menu Override */
ul . nav . nav-pills . bg-light {
background-color : rgba ( 6 , 78 , 59 , 0.4 ) !important ;
backdrop-filter : blur ( 10 px ) ;
border : 1 px solid rgba ( 16 , 185 , 129 , 0.1 ) ;
border-radius : 50 rem !important ;
2026-01-01 00:32:59 +09:00
padding : 6 px !important ;
2026-01-01 02:19:22 +09:00
box-shadow : 0 4 px 20 px rgba ( 0 , 0 , 0 , 0.2 ) !important ;
2026-01-01 00:32:59 +09:00
display : inline-flex !important ;
2026-01-01 02:19:22 +09:00
gap : 4 px ;
margin-bottom : 20 px ;
2025-12-29 23:12:44 +09:00
}
2026-01-01 02:19:22 +09:00
ul . nav . nav-pills . nav-link {
2026-01-01 00:32:59 +09:00
color : #d1fae5 !important ;
font-weight : 600 !important ;
2026-01-01 02:19:22 +09:00
padding : 8 px 20 px !important ;
border-radius : 50 rem !important ;
2026-01-01 00:32:59 +09:00
transition : all 0.3 s ease !important ;
border : 1 px solid transparent !important ;
2025-12-29 23:12:44 +09:00
}
2026-01-01 02:19:22 +09:00
ul . nav . nav-pills . nav-link : hover {
background-color : rgba ( 16 , 185 , 129 , 0.1 ) !important ;
2025-12-29 23:12:44 +09:00
color : #fff !important ;
transform : translateY ( -1 px ) ;
}
2026-01-01 02:19:22 +09:00
ul . nav . nav-pills . nav-link . active {
2026-01-01 00:32:59 +09:00
background : linear-gradient ( 135 deg , #10b981 0 % , #059669 100 % ) !important ;
2025-12-29 23:12:44 +09:00
color : #fff !important ;
2026-01-01 00:32:59 +09:00
box-shadow : 0 4 px 12 px rgba ( 16 , 185 , 129 , 0.3 ) !important ;
2025-12-29 23:12:44 +09:00
}
/* Form Controls */
. form-control , . custom-select , textarea {
background-color : rgba ( 0 , 0 , 0 , 0.3 ) !important ;
border : 1 px solid rgba ( 255 , 255 , 255 , 0.1 ) !important ;
color : #f1f5f9 !important ;
border-radius : 8 px !important ;
}
. form-control : focus , . custom-select : focus , textarea : focus {
background-color : rgba ( 0 , 0 , 0 , 0.5 ) !important ;
2026-01-01 00:32:59 +09:00
border-color : #10b981 !important ;
box-shadow : 0 0 0 2 px rgba ( 16 , 185 , 129 , 0.25 ) !important ;
2025-12-29 23:12:44 +09:00
}
/* Labels & Text */
label , . col-form-label {
font-weight : 600 ;
color : #cbd5e1 ;
}
. text-muted {
color : #94a3b8 !important ;
}
/* Buttons */
. btn {
border : none ;
border-radius : 8 px ;
font-weight : 600 ;
transition : all 0.3 s ease ;
padding : 8 px 16 px ;
text-transform : uppercase ;
letter-spacing : 0.5 px ;
}
. btn-primary , # globalSettingSaveBtn {
2026-01-01 00:32:59 +09:00
background : linear-gradient ( 135 deg , #10b981 0 % , #059669 100 % ) ;
2025-12-29 23:12:44 +09:00
color : white ;
2026-01-01 00:32:59 +09:00
box-shadow : 0 4 px 15 px rgba ( 16 , 185 , 129 , 0.4 ) ;
2025-12-29 23:12:44 +09:00
}
. btn-primary : hover , # globalSettingSaveBtn : hover {
2026-01-01 00:32:59 +09:00
background : linear-gradient ( 135 deg , #34d399 0 % , #10b981 100 % ) ;
2025-12-29 23:12:44 +09:00
transform : translateY ( -2 px ) ;
2026-01-01 00:32:59 +09:00
box-shadow : 0 6 px 20 px rgba ( 16 , 185 , 129 , 0.6 ) ;
2025-12-29 23:12:44 +09:00
}
/* GO Button specific (Input Group) */
# go_btn {
background : linear-gradient ( 135 deg , #10b981 0 % , #059669 100 % ) ;
color : white ;
box-shadow : 0 4 px 15 px rgba ( 16 , 185 , 129 , 0.4 ) ;
border-radius : 0 8 px 8 px 0 !important ; /* Fix for input group */
margin-left : -1 px ;
}
# go_btn : hover {
background : linear-gradient ( 135 deg , #34d399 0 % , #10b981 100 % ) ;
transform : translateY ( -1 px ) ;
box-shadow : 0 6 px 20 px rgba ( 16 , 185 , 129 , 0.6 ) ;
z-index : 5 ;
}
. btn-outline-primary {
color : #60a5fa ;
border : 1 px solid #60a5fa ;
background : transparent ;
}
. btn-outline-primary : hover {
background : rgba ( 96 , 165 , 250 , 0.1 ) ;
color : #93c5fd ;
box-shadow : 0 0 15 px rgba ( 96 , 165 , 250 , 0.3 ) ;
}
. btn : active {
transform : translateY ( 0 ) !important ;
box-shadow : inset 0 2 px 4 px rgba ( 0 , 0 , 0 , 0.2 ) !important ;
}
/* Custom Checkbox/Switch Override (if Bootstrap switch is used) */
. custom-control-label :: before {
background-color : rgba ( 0 , 0 , 0 , 0.3 ) ;
border-color : rgba ( 255 , 255 , 255 , 0.2 ) ;
}
. custom-control-input : checked ~ . custom-control-label :: before {
2026-01-01 00:32:59 +09:00
background-color : #10b981 ;
border-color : #10b981 ;
2025-12-29 23:12:44 +09:00
}
/* Collapse Borders */
2026-01-01 22:58:25 +09:00
/* Folder Browser Modal Styles */
. folder-item {
cursor : pointer ;
transition : background 0.2 s ;
border-bottom : 1 px solid rgba ( 255 , 255 , 255 , 0.05 ) ;
display : flex !important ;
align-items : center ;
width : 100 % ;
overflow : hidden ;
}
. folder-item : hover {
background : rgba ( 255 , 255 , 255 , 0.05 ) ;
}
. folder-item span {
white-space : nowrap ;
overflow : hidden ;
text-overflow : ellipsis ;
flex : 1 ;
min-width : 0 ;
}
. folder-item . selected {
background : rgba ( 16 , 185 , 129 , 0.3 ) !important ;
2025-12-29 23:12:44 +09:00
}
< / style >
2022-10-29 18:28:24 +09:00
< script type = "text/javascript" >
var package _name = "{{arg['package_name'] }}" ;
var sub = "{{arg['sub'] }}" ;
var current _data = null ;
$ ( document ) . ready ( function ( ) {
2025-12-29 23:12:44 +09:00
// Width Fix
$ ( "#main_container" ) . removeClass ( "container" ) . addClass ( "container-fluid" ) ;
2022-10-29 18:28:24 +09:00
use _collapse ( 'linkkf_auto_make_folder' ) ;
} ) ;
$ ( '#ani365_auto_make_folder' ) . change ( function ( ) {
use _collapse ( 'linkkf_auto_make_folder' ) ;
} ) ;
$ ( "body" ) . on ( 'click' , '#go_btn' , function ( e ) {
e . preventDefault ( ) ;
let url = document . getElementById ( "linkkf_url" ) . value
window . open ( url , "_blank" ) ;
} ) ;
2026-01-01 16:57:48 +09:00
// ======================================
// 폴더 탐색 기능
// ======================================
var currentBrowsePath = '' ;
var parentPath = null ;
$ ( '#browse_folder_btn' ) . on ( 'click' , function ( ) {
var initialPath = $ ( '#linkkf_download_path' ) . val ( ) || '' ;
loadFolderList ( initialPath ) ;
$ ( '#folderBrowserModal' ) . modal ( 'show' ) ;
} ) ;
function loadFolderList ( path ) {
$ ( '#folder_list' ) . html ( '<div class="text-center text-muted py-4"><i class="bi bi-arrow-repeat"></i> 로딩 중...</div>' ) ;
$ . ajax ( {
url : '/' + package _name + '/ajax/' + sub + '/browse_dir' ,
type : 'POST' ,
data : { path : path } ,
dataType : 'json' ,
success : function ( ret ) {
if ( ret . ret === 'success' ) {
currentBrowsePath = ret . current _path ;
parentPath = ret . parent _path ;
$ ( '#current_path_display' ) . text ( currentBrowsePath ) ;
$ ( '#folder_go_up' ) . prop ( 'disabled' , ! parentPath ) ;
var html = '' ;
if ( parentPath ) {
html += '<div class="folder-item folder-parent d-flex align-items-center p-2 rounded" data-path="' + escapeHtml ( parentPath ) + '" style="cursor: pointer; border-bottom: 1px solid rgba(255,255,255,0.1);">' ;
html += '<i class="bi bi-folder-symlink text-info mr-2"></i><span class="text-light">..</span><span class="text-muted ml-2">(상위 폴더)</span></div>' ;
}
html += '<div class="folder-item folder-current d-flex align-items-center p-2 rounded" data-path="' + escapeHtml ( currentBrowsePath ) + '" style="cursor: pointer; border-bottom: 1px solid rgba(255,255,255,0.05);">' ;
html += '<i class="bi bi-folder-check text-success mr-2"></i><span class="text-light">.</span><span class="text-muted ml-2">(현재 폴더)</span></div>' ;
if ( ret . directories . length === 0 ) {
html += '<div class="text-center text-muted py-3"><small>하위 폴더 없음</small></div>' ;
} else {
for ( var i = 0 ; i < ret . directories . length ; i ++ ) {
var dir = ret . directories [ i ] ;
html += '<div class="folder-item d-flex align-items-center p-2 rounded" data-path="' + escapeHtml ( dir . path ) + '" style="cursor: pointer;">' ;
html += '<i class="bi bi-folder-fill text-warning mr-2"></i><span class="text-light">' + escapeHtml ( dir . name ) + '</span></div>' ;
}
}
$ ( '#folder_list' ) . html ( html ) ;
} else {
$ ( '#folder_list' ) . html ( '<div class="text-center text-danger py-4">로드 실패: ' + ( ret . error || '알 수 없는 오류' ) + '</div>' ) ;
}
} ,
error : function ( xhr , status , error ) {
$ ( '#folder_list' ) . html ( '<div class="text-center text-danger py-4">에러: ' + error + '</div>' ) ;
}
} ) ;
}
$ ( '#folder_list' ) . on ( 'dblclick' , '.folder-item' , function ( ) { loadFolderList ( $ ( this ) . data ( 'path' ) ) ; } ) ;
$ ( '#folder_list' ) . on ( 'click' , '.folder-item' , function ( ) {
$ ( '.folder-item' ) . removeClass ( 'selected' ) . css ( 'background' , '' ) ;
$ ( this ) . addClass ( 'selected' ) . css ( 'background' , 'rgba(16, 185, 129, 0.3)' ) ;
currentBrowsePath = $ ( this ) . data ( 'path' ) ;
$ ( '#current_path_display' ) . text ( currentBrowsePath ) ;
} ) ;
$ ( '#folder_go_up' ) . on ( 'click' , function ( ) { if ( parentPath ) loadFolderList ( parentPath ) ; } ) ;
$ ( '#folder_select_btn' ) . on ( 'click' , function ( ) {
$ ( '#linkkf_download_path' ) . val ( currentBrowsePath ) ;
$ ( '#folderBrowserModal' ) . modal ( 'hide' ) ;
$ . notify ( '저장 폴더가 설정되었습니다: ' + currentBrowsePath , { type : 'success' } ) ;
} ) ;
function escapeHtml ( text ) { var div = document . createElement ( 'div' ) ; div . appendChild ( document . createTextNode ( text ) ) ; return div . innerHTML ; }
2025-12-30 00:50:13 +09:00
< / script >
< style >
/* Smooth Load Transition */
. content-cloak ,
# menu_module_div ,
# menu_page_div {
opacity : 0 ;
transition : opacity 0.5 s ease-out ;
}
/* Staggered Delays for Natural Top-Down Flow */
# menu_module_div . visible {
opacity : 1 ;
transition-delay : 0 ms ;
}
# menu_page_div . visible {
opacity : 1 ;
transition-delay : 150 ms ;
}
. content-cloak . visible {
opacity : 1 ;
transition-delay : 300 ms ;
}
/* Navigation Menu Override (Top Sub-menu) */
ul . nav . nav-pills . bg-light {
background-color : rgba ( 30 , 41 , 59 , 0.6 ) !important ;
backdrop-filter : blur ( 10 px ) ;
border : 1 px solid rgba ( 255 , 255 , 255 , 0.08 ) ;
border-radius : 50 rem !important ;
padding : 6 px !important ;
box-shadow : 0 4 px 20 px rgba ( 0 , 0 , 0 , 0.2 ) !important ;
display : inline-flex !important ;
flex-wrap : wrap ;
justify-content : center ;
width : auto !important ;
margin-bottom : 20 px ;
}
ul . nav . nav-pills . nav-item { margin : 0 2 px ; }
ul . nav . nav-pills . nav-link {
border-radius : 50 rem !important ;
padding : 8 px 20 px !important ;
color : #94a3b8 !important ;
font-weight : 600 ;
transition : all 0.3 s ease ;
}
ul . nav . nav-pills . nav-link : hover {
background-color : rgba ( 255 , 255 , 255 , 0.1 ) ;
color : #fff !important ;
transform : translateY ( -1 px ) ;
}
ul . nav . nav-pills . nav-link . active {
2026-01-01 02:19:22 +09:00
background : linear-gradient ( 135 deg , #10b981 0 % , #059669 100 % ) !important ;
2025-12-30 00:50:13 +09:00
color : #fff !important ;
2026-01-01 02:19:22 +09:00
box-shadow : 0 4 px 12 px rgba ( 16 , 185 , 129 , 0.3 ) !important ;
2025-12-30 00:50:13 +09:00
}
< / style >
< script type = "text/javascript" >
$ ( document ) . ready ( function ( ) {
// Smooth Load Trigger
setTimeout ( function ( ) {
$ ( '.content-cloak, #menu_module_div, #menu_page_div' ) . addClass ( 'visible' ) ;
} , 100 ) ;
} ) ;
2022-10-29 18:28:24 +09:00
< / script >
{% endblock %}