$plain_search_link = '<a href="' . $script . '?cmd=search' . '">' . htmlsc($_btn_search) . '</a>';
$alt_msg = str_replace('$1', $plain_search_link, $_msg_use_alternative_link);
+ $status_span_text = '<span class="_plugin_search2_search_status_text1"></span>' .
+ '<span class="_plugin_search2_search_status_text2"></span>';
$form =<<<EOD
<form action="$script" method="GET" class="_plugin_search2_form">
<div>
EOD;
$second_form =<<<EOD
<div class="_plugin_search2_second_form" style="display:none;">
-<div class="_plugin_search2_search_status"></div>
+<div class="_plugin_search2_search_status">$status_span_text</span></div>
<div class="_plugin_search2_message"></div>
$form
</div>
<noscript>
<p>$_msg_unsupported_webbrowser $alt_msg</p>
</noscript>
+<style>
+input#_plugin_search2_detail:checked ~ ul > div.search-result-detail {
+ display:block;
+}
+input#_plugin_search2_detail ~ ul > div.search-result-detail {
+ display:none;
+}
+._plugin_search2_search_status {
+ min-height:1.5em;
+}
+@keyframes plugin-search2-searching {
+ 10% { opacity: 1; }
+ 40% { opacity: 0; }
+ 70% { opacity: 0; }
+ 90% { opacity: 1; }
+}
+span.plugin-search2-progress {
+ animation: plugin-search2-searching 1.5s infinite ease-out;
+}
+span.plugin-search2-progress1 {
+ animation-delay: -1s;
+}
+span.plugin-search2-progress2 {
+ animation-delay: -0.8s;
+}
+span.plugin-search2-progress3 {
+ animation-delay: -0.6s;
+}
+</style>
<p class="_plugin_search2_nosupport_message" style="display:none;">
$_msg_unsupported_webbrowser $alt_msg
</p>
$search_props
$form
-<div class="_plugin_search2_search_status"></div>
+<div class="_plugin_search2_search_status">$status_span_text</div>
<div class="_plugin_search2_message"></div>
$result_page_panel
$second_form
/**
* @param {string} statusText
*/
- function setSearchStatus(statusText) {
+ function setSearchStatus(statusText, statusText2) {
var statusList = document.querySelectorAll('._plugin_search2_search_status');
forEach(statusList, function(statusObj) {
- statusObj.textContent = statusText;
+ var textObj1 = statusObj.querySelector('._plugin_search2_search_status_text1');
+ var textObj2 = statusObj.querySelector('._plugin_search2_search_status_text2');
+ if (textObj1) {
+ var prevText = textObj1.getAttribute('data-text');
+ if (prevText !== statusText) {
+ textObj1.setAttribute('data-text', statusText);
+ if (statusText.substr(statusText.length - 3) === '...') {
+ var firstHalf = statusText.substr(0, statusText.length - 3);
+ textObj1.textContent = firstHalf;
+ var span = document.createElement('span');
+ span.innerHTML = '<span class="plugin-search2-progress plugin-search2-progress1">.</span>'
+ + '<span class="plugin-search2-progress plugin-search2-progress2">.</span>'
+ + '<span class="plugin-search2-progress plugin-search2-progress3">.</span>';
+ textObj1.appendChild(span);
+ } else {
+ textObj1.textContent = statusText;
+ }
+ }
+ }
+ if (textObj2) {
+ if (statusText2) {
+ textObj2.textContent = ' ' + statusText2;
+ } else {
+ textObj2.textContent = '';
+ }
+ }
});
}
/**
if (prevTimestamp) {
setSearchStatus(searchProps.searchingMsg);
} else {
- setSearchStatus(searchProps.searchingMsg + ' ' +
+ setSearchStatus(searchProps.searchingMsg,
getSearchProgress(session));
}
if (searchDone) {
if (singlePageResult) {
setSearchStatus('');
} else {
- setSearchStatus(searchProps.showingResultMsg + ' ' + progress);
+ setSearchStatus(searchProps.showingResultMsg, progress);
}
}, 2000);
}
localStorage[key] = JSON.stringify(session);
// Stop API calling
setSearchMessage(msg + ' ' + getOffsetLinks(session, maxResults));
- setSearchStatus(searchProps.showingResultMsg + ' ' +
+ setSearchStatus(searchProps.showingResultMsg,
getSearchProgress(session));
} else {
setTimeout(function() {
var moreResultHtml = getOffsetLinks(session, maxResults);
setSearchMessage(msg + ' ' + moreResultHtml);
var progress = getSearchProgress(session);
- setSearchStatus(searchProps.showingResultMsg + ' ' + progress);
+ setSearchStatus(searchProps.showingResultMsg, progress);
} else {
setSearchStatus('');
}