| | |
| | | } |
| | | |
| | | ?> |
| | | <aside id="queue" class="left col start btw main" aria-expanded="false" > |
| | | <div class="status-actions row start nowrap"> |
| | | <div class="refresh row btw"> |
| | | <span class="countdown row" title="Will refresh again...">5</span> |
| | | <button class="refreshNow row" title="Check now"> |
| | | <?= jvbIcon('arrows-clockwise', ['title'=> 'Check now']) ?> |
| | | </button> |
| | | </div> |
| | | <aside id="queue" class="left col top main" aria-expanded="false" > |
| | | <div class="m-actions row left nowrap"> |
| | | <button class="refresh row" title="Check now"> |
| | | <?= jvbIcon('arrows-clockwise', ['title'=> 'Check now']) ?> |
| | | <span class="countdown row indicator" title="Will refresh again...">5</span> |
| | | </button> |
| | | <div class="popup row"><span></span></div> |
| | | </div> |
| | | |
| | | <div class="header col start"> |
| | | <h3>Queue Status</h3> |
| | | <div class="header col top"> |
| | | <h2>Queue Status</h2> |
| | | <nav class="filters"> |
| | | <?php |
| | | $filters = [ |
| | |
| | | $active = ($i === 0) ? ' active': ''; |
| | | ?> |
| | | <input type="radio" id="qfilter-<?=$filter?>" name="qfilter" class="btn filter<?=$active?>" data-filter="<?=$filter?>"> |
| | | <label for="qfilter-<?=$filter?>" data-count="0"><span class="count row"></span><?=$title?></label> |
| | | <label for="qfilter-<?=$filter?>" data-count="0"><span class="count indicator row"></span><?=$title?></label> |
| | | <?php |
| | | $i++; |
| | | } |
| | |
| | | ?> |
| | | </nav> |
| | | </div> |
| | | <div class="qitems col a-start nowrap"> |
| | | <div class="qitems item-grid col left nowrap"> |
| | | </div> |
| | | <div class="queue-actions row btw nowrap"> |
| | | <div class="queue-actions row x-btw nowrap"> |
| | | <button class="dismiss-all">Clear Completed</button> |
| | | <button class="retry-all">Retry Failed</button> |
| | | </div> |
| | | </aside> |
| | | <button class="qtoggle row" title="Show Queue" aria-controls="queue" > |
| | | <button class="qtoggle sticky" title="Show Queue" aria-controls="queue" > |
| | | <?= jvbIcon('floppy-disk') ?> |
| | | <span class="screen-reader-text"></span> |
| | | <span class="indicator"></span> |
| | |
| | | </button> |
| | | <template class="queueItem"> |
| | | <div class="item"> |
| | | <div class="header row btw"> |
| | | <div class="header row x-btw"> |
| | | <span class="type"></span> |
| | | <span class="status row"><?= jvbIcon('arrows-clockwise') ?><span class="screen-reader-text"></span></span> |
| | | </div> |
| | | <?php jvbRenderProgressBar('',false,false) ?> |
| | | <div class="info"> |
| | | <div class="details"></div> |
| | | <div class="time row start"> |
| | | <div class="time row left"> |
| | | <?= jvbIcon('clock') ?> |
| | | <span class="started">Started: <time></time></span> |
| | | <span class="completed" hidden><span>Completed: </span><time></time></span> |
| | | </div> |
| | | </div> |
| | | <div class="actions row end"> |
| | | <div class="actions row right"> |
| | | <button class="retry" data-action="retry"><span>Retry</span><?= jvbIcon('arrows-clockwise')?></button> |
| | | <button class="cancel" data-action="cancel"><span>Cancel</span><?= jvbIcon('x-square')?></button> |
| | | <button class="refresh" data-action="refresh" title="Refresh to see changes"><span>Refresh</span><?= jvbIcon('arrows-clockwise')?></button> |
| | |
| | | <button></button> |
| | | </template> |
| | | <template class="emptyQueue"> |
| | | <div class="empty-queue row">Everything is up to date.</div> |
| | | <div class="empty queue row">Everything is up to date.</div> |
| | | </template> |
| | | <?php |
| | | } |
| | |
| | | * Outputs the search bar (likely don't need anymore) |
| | | * @return string |
| | | */ |
| | | function jvbSearch(string $placeholder = 'Search...', string $id = 'search'):string |
| | | function jvbSearch(string $placeholder = 'Search...', string $id = 'search', string $label = '', string $buttonText = '', bool $buttonInside = false, bool $hideSearch = false):string |
| | | { |
| | | return Form::search($placeholder, $id); |
| | | return Form::search($placeholder, $id, $label, $buttonText, $buttonInside, $hideSearch); |
| | | } |
| | | |
| | | |
| | |
| | | </aside> |
| | | <template class="notificationPopup"> |
| | | <div class="toast" role="status" aria-live="polite"> |
| | | <div class="toast-content row btw"> |
| | | <div class="toast-content row x-btw"> |
| | | <p></p> |
| | | <button type="button" class="close-toast" aria-label="Close"> |
| | | <?= jvbIcon('x') ?> |
| | |
| | | echo ''; |
| | | return ''; |
| | | } |
| | | $header = '<nav class="tabs row start" role="tablist">'; |
| | | $header = '<nav class="tabs row left" role="tablist">'; |
| | | $content = ''; |
| | | $i = 0; |
| | | |
| | |
| | | $active = ($i === 0) ? ' active' : ''; |
| | | $selected = ($i === 0) ? 'true' : 'false'; |
| | | $hidden = (array_key_exists('hidden', $config)) ? ' hidden' : ''; |
| | | $header .= '<button type="button" class="button tab'.$active.'" data-tab="'.$slug.'" role="tab" aria-selected="'.$selected.'"'.$hidden.'> |
| | | <h2 class="row">'; |
| | | $header .= '<button type="button" class="button tab'.$active.'" data-tab="'.$slug.'" role="tab" aria-selected="'.$selected.'"'.$hidden.'>'; |
| | | if (array_key_exists('icon', $config)) { |
| | | $header .= jvbIcon($config['icon']); |
| | | } |
| | | $header .= $config['title'].'</h2> |
| | | $header .= $config['title'].' |
| | | </button>'; |
| | | |
| | | //Content |
| | |
| | | if ($i !== 0) { |
| | | $content .= ' hidden'; |
| | | } |
| | | $content .= '> |
| | | <h2>'.$config['title'].'</h2>'; |
| | | $content .= '>'; |
| | | |
| | | if (array_key_exists('header', $config)) { |
| | | $content .= $config['header']; |
| | | } else { |
| | | $content .= '<h2>'.$config['title'].'</h2>'; |
| | | if ( array_key_exists('description', $config)) { |
| | | if (!is_array($config['description'])) { |
| | | $content .= jvb_filter_content( $config['description']); |
| | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | $content .= $config['content'].' |
| | | </div>'; |
| | |
| | | <div class="bar"> |
| | | <div class="fill"></div> |
| | | </div> |
| | | <div class="row btw"> |
| | | <div class="row x-btw"> |
| | | %s |
| | | <div class="details"> |
| | | %s |
| | |
| | | return $bar; |
| | | } |
| | | |
| | | function jvbFormStatus(string $message = '') { |
| | | return '<div class="restore-form col" hidden> |
| | | <h3>Looks like we left things hanging...</h3> |
| | | <p>We\'ve filled in the fields with what you put last time.</p> |
| | | <div class="actions"> |
| | | <button type="button" data-action="clear-form"> |
| | | '.jvbIcon('arrows-clockwise').' |
| | | <span>Start Over</span> |
| | | </button> |
| | | <button type="button" data-action="dismiss-restore"> |
| | | '.jvbIcon('x').' |
| | | <span>Dismiss</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | | function jvbFormStatus(string $message = ''):string |
| | | { |
| | | return sprintf( |
| | | '%s |
| | | <div class="fstatus row" hidden> |
| | | <div class="spinner"></div> |
| | | <i class="icon"></i> |
| | | <p class="message">'.$message.'</p> |
| | | </div>'; |
| | | <p class="message">%s</p> |
| | | </div>', |
| | | jvbFormRestore(), |
| | | $message |
| | | ); |
| | | } |
| | | function jvbFormRestore():string |
| | | { |
| | | return sprintf( |
| | | '<div class="restore-form col" hidden> |
| | | <h3>Looks like we left things hanging...</h3> |
| | | <p>Would you like to continue where you left off?</p> |
| | | <div class="actions"> |
| | | <button class="restore" type="button" data-action="restore">%s<span>Restore</span></button> |
| | | <button type="button" class="discard" data-action="clear"> |
| | | %s |
| | | <span>Discard</span> |
| | | </button> |
| | | </div> |
| | | </div>', |
| | | jvbFormIcon('clock-clockwise'), |
| | | jvbFormIcon('x'), |
| | | ); |
| | | } |
| | | |
| | | |
| | | function jvbDarkModeToggle():string |
| | | { |
| | | $checked = (is_user_logged_in() && current_user_can('prefers_dark_theme', true)) ? ' checked' : ''; |
| | | $title = ($checked == '') ? 'Toggle Dark Mode' : 'Toggle Light Mode'; |
| | | $showThemeSwitch = (bool)apply_filters('jvb_show_theme_switch', true); |
| | | $themeSwitch = sprintf( |
| | | '<label title="%s" id="theme-switch" class="switch" for="theme-switcher"> |
| | | <input class="theme-switch row" id="theme-switcher" name="theme-switcher" type="checkbox"%s data-setting="theme" data-theme role="switch" name="dark-mode" aria-label="Toggle dark mode"> |
| | | <span class="slider">%s%s</span> |
| | | </label>', |
| | | $title, |
| | | $checked, |
| | | jvbIcon('sun-dim', ['title'=> 'Light Mode']), |
| | | jvbIcon('moon', ['title'=>'Dark Mode']) |
| | | ); |
| | | return ($showThemeSwitch) ? $themeSwitch : ''; |
| | | } |