/**
* 呼び出すとDIV:id名:feedblog_drawpanel_info上に、処理完了の記事を表示します
*/
-function executingEffectComplete() {
+function executingEffectCompleteEffect() {
$("#feedblog_drawpanel_info").html('<div id="feedblog_drawitem_info" class="feedblog_drawitem"> <\/div><\/div>');
// 検索処理完了用のパネルを生成
systemEntry.title = "検索完了";
systemEntry.content = '<br/>検索処理が完了しました。(該当記事:' + fetchEntriesSemaphore.entryCount + '件)<br/><br/>';
generateSystemPanel(systemEntry, "feedblog_drawitem_info", "feedblog_drawpanel_info", false);
+}
- // 状況に応じて「全件表示」パネルを生成
- if (fetchEntriesSemaphore.showLimit == true && fetchEntriesSemaphore.entryIndex != fetchEntriesSemaphore.entryCount) {
- $("#feedblog_writearea").html($("#feedblog_writearea").html() + '<div id="feedblog_drawpanel_abort" class="feedblog_drawpanel"><div id="feedblog_drawitem_abort" class="feedblog_drawitem"> <\/div><\/div>');
- systemEntry = new SystemEntry();
- systemEntry.title = "以降、" + (fetchEntriesSemaphore.entryCount - fetchEntriesSemaphore.entryIndex) + "件の記事が省略されています。";
- systemEntry.content = '<br/><a style="cursor: pointer;" onclick="javascript: var tag = getParamFromUrl(\'tag\'); searchTagMode(tag, false);">全ての記事を表示する。</a><br/><br/>';
- generateSystemPanel(systemEntry, "feedblog_drawitem_abort", "feedblog_drawpanel_abort", false);
- }
+/**
+ * 呼び出すとDIV:id名:feedblog_drawpanel_abort上に、省略記事がある旨を描画します
+ */
+function showLimitedInfoEffect() {
+ $("#feedblog_writearea").html($("#feedblog_writearea").html() + '<div id="feedblog_drawpanel_abort" class="feedblog_drawpanel"><div id="feedblog_drawitem_abort" class="feedblog_drawitem"> <\/div><\/div>');
+
+ // 記事省略用のパネルを生成
+ var systemEntry = new SystemEntry();
+ systemEntry.title = "以降、" + (fetchEntriesSemaphore.entryCount - fetchEntriesSemaphore.entryIndex) + "件の記事が省略されています。";
+ systemEntry.content = '<br/><a style="cursor: pointer;" onclick="javascript: fetchTagHiddenEntries();">全ての記事を表示する。</a><br/><br/>';
+ generateSystemPanel(systemEntry, "feedblog_drawitem_abort", "feedblog_drawpanel_abort", false);
+}
+
+/**
+ * 呼び出すとDIV:id名:feedblog_drawpanel_abortを消去します
+ */
+function showLimitedInfoRemoveEffect() {
+ $("#feedblog_drawpanel_abort").remove();
}
/**
* 記事データのエラー時の処理を行います
*/
-function showError() {
+function showErrorEffect() {
$("#feedblog_writearea").html('<div id="feedblog_drawpanel" class="feedblog_drawpanel"><div id="feedblog_drawitem" class="feedblog_drawitem"> <\/div><\/div>');
// エラー内容をパネルに描画
/**
* 記事データのエラー時の処理を行います
*/
-function notFoundError() {
+function notFoundErrorEffect() {
$("#feedblog_writearea").html('<div id="feedblog_drawpanel" class="feedblog_drawpanel"><div id="feedblog_drawitem" class="feedblog_drawitem"> <\/div><\/div>');
// エラー内容をパネルに描画
jQuery.ajax({
url : logXmlUrl + '?time=' + urlSuffix,
method : "GET",
- error : showError,
+ error : showErrorEffect,
success : function(xmlData) {
var separateTag = xmlData.getElementsByTagName("file");
// 表示ロジック呼び出し
showEntriesRange(showLength, 0);
},
- error : showError
+ error : showErrorEffect
});
}
var loader = new jQuery.ajax({
url : logXmlUrl + '?time=' + urlSuffix,
method : "GET",
- error : showError,
+ error : showErrorEffect,
success : function(xmlData) {
// ファイルパスの要素のみを抽出する
var separateTag = xmlData.getElementsByTagName("file");
var entries = fetchEntriesSemaphore.buf;
if (entries.length == 0) {
- notFoundError();
+ notFoundErrorEffect();
return false;
}
}
var loader = new jQuery.ajax({
url : logXmlUrl + '?time=' + urlSuffix,
method : "GET",
- error : showError,
+ error : showErrorEffect,
success : function(xmlData) {
// ファイルパスの要素のみを抽出する
var separateTag = xmlData.getElementsByTagName("file");
var entries = fetchEntriesSemaphore.buf;
if (entries.length == 0) {
- notFoundError();
+ notFoundErrorEffect();
return false;
}
}
var loader = new jQuery.ajax({
url : logXmlUrl + '?time=' + urlSuffix,
method : "GET",
- error : showError,
+ error : showErrorEffect,
success : function(xmlData) {
// ファイルパスの要素のみを抽出する
var separateTag = xmlData.getElementsByTagName("file");
fetchEntriesSemaphore.entryIndex = 0;
fetchEntriesSemaphore.entryCount = 0;
fetchEntriesSemaphore.showLimit = showLimit;
+ fetchEntriesSemaphore.hiddenEntries = [];
// ファイルパス配列に格納されているすべての記事に対し、探索を開始する
for (var i = 0; i < separateTag.length; i++) {
if (fetchEntriesSemaphore.showLimit == true && fetchEntriesSemaphore.entryIndex >= showLength) {
// 検索一致件数をカウント
fetchEntriesSemaphore.entryCount++;
+ // entryを非表示配列に格納する
+ fetchEntriesSemaphore.hiddenEntries.push(entry);
} else {
// 検索一致件数をカウント
fetchEntriesSemaphore.entryCount++;
if (fetchEntriesSemaphore.count == 0) {
if (fetchEntriesSemaphore.entryIndex == 0) {
- notFoundError();
+ notFoundErrorEffect();
return false;
} else {
- executingEffectComplete();
+ executingEffectCompleteEffect();
+ // 省略記事がある場合は、省略パネルを表示する
+ if (fetchEntriesSemaphore.entryIndex != fetchEntriesSemaphore.entryCount) {
+ showLimitedInfoEffect();
+ }
return true;
}
}
}
/**
+ * 省略表示されている記事一覧を描画します
+ */
+function fetchTagHiddenEntries() {
+ // 省略パネルを消去する
+ showLimitedInfoRemoveEffect();
+
+ // 省略されている記事を描画する
+ for (var i = 0; i < fetchEntriesSemaphore.hiddenEntries.length; i++) {
+ fetchEntriesSemaphore.entryIndex = showEntriesAdd(fetchEntriesSemaphore.hiddenEntries[i], fetchEntriesSemaphore.entryIndex);
+ }
+}
+
+/**
* 検索結果を分割して表示します
* class - div.feedblog_pager, ul.feedblog_pager, li.feedblog_pager などなど
* @param {int} showLength 一回の画面に表示する記事数
// 表示インデックスが範囲外の場合はエラーパネルを表示して終了
if (startIndex < 0 || (entries.length <= startIndex && entries.length != 0)) {
- showError();
+ showErrorEffect();
return;
}
/**
* 記事データのエラー時の処理を行います
*/
-function showError() {
+function showErrorEffect() {
$("#feedblog_writearea").html('<div id="feedblog_drawpanel" class="feedblog_drawpanel"><div id="feedblog_drawitem" class="feedblog_drawitem"> <\/div><\/div>');
// エラー内容をパネルに描画
/**
* 記事データのエラー時の処理を行います
*/
-function notFoundError() {
+function notFoundErrorEffect() {
$("#feedblog_writearea").html('<div id="feedblog_drawpanel" class="feedblog_drawpanel"><div id="feedblog_drawitem" class="feedblog_drawitem"> <\/div><\/div>');
$("#feedblog_drawitem").html('<br/>検索条件に一致する記事は見つかりませんでした。<br/><br/>');
jQuery.ajax({
url : logXmlUrl + '?time=' + urlSuffix,
method : "GET",
- error : showError,
+ error : showErrorEffect,
success : function(xmlData) {
var separateTag = xmlData.getElementsByTagName("file");
logData = new Array(separateTag.length);
// 表示インデックスが範囲外の場合はエラーパネルを表示して終了
if (startIndex < 0 || entries.length <= startIndex) {
- showError();
+ showErrorEffect();
return;
}
// 一軒も検索にヒットしなかった場合は専用のパネルを表示して終了
if (entries.length == 0) {
- notFoundError();
+ notFoundErrorEffect();
return;
}
method : "GET",
async : true,
success : fetchEntries,
- error : showError
+ error : showErrorEffect
});
fetchEntriesSemaphore.xhrs.push(xhr);
}