groupTree.js.ダウンロード 9.59 KB
Newer Older
Jung Kwangkyu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
//全グループを開く
function groupAllOpen(){
	$("li.group").show();
	groupOpenImgCheck();

	// 一覧に合わせてウィンドウの高さ調整
	resizeWindow();
}
//全グループを閉じる(level0,1は除外)
function groupAllClose(){
	$("li.group").hide();
	$("li.level0").show();
	$("li.level1").show();
	groupOpenImgCheck();

	// 一覧に合わせてウィンドウの高さ調整
	resizeWindow();
}
//グループ検索
function groupSearch(){
	
	$("li.group").css("background-color","#ffffff");
	if($("#groupInput").val() != ""){
		var keyWord = $("#groupInput").val().toLowerCase();
		$("[id=groupID]").each( function() {
			if (this.name.toLowerCase().indexOf(keyWord) != -1) {
				$(this).parent().show().css("background-color","#ffc0cb");
			}
		});
		for(var i=($("li.group").length-1); i>=0; i--){
			if($("li.group")[i].style.display != "none"){
				$("li.group[id='" +$("li.group")[i].lang+ "'],li.group[lang='" +$("li.group")[i].lang+ "']").show();
			}
		}
	}
	groupOpenImgCheck();
}
//Groupクリック:フォルダ全開
function groupClick(obj){
	var openFlg = false;
	var groupLevel = parseInt($(obj).parent().parent().attr("value"));
	var parentId = $(obj).parent().parent().attr("id");
	var closeImg = $("#groupCloseImage").val();
	if (obj.src.search(closeImg) >= 0) {
		openFlg = true;
	}
	
	if (openFlg) {
		showGroupList(parentId, false);
		hideGroupList($("li.group[lang=" + parentId + "]").attr("id"), true);
	} else {
		hideGroupList(parentId, true);
	}
	
	groupOpenImgCheck();

	// 一覧に合わせてウィンドウの高さ調整
	resizeWindow();
}


// 対象グループIDの子グループリストを表示する
function showGroupList(id, recursiveFlg) {
	if ( $("li.group[lang=" + id + "]")[0] ) {
		$("li.group[lang=" + id + "]").show();
		
		if (recursiveFlg) {
			$("li.group[lang=" + id + "]").each(function(){
				showGroupList($(this).attr("id"), true);
			});
		}
	}
}

// 対象グループIDの親グループリストを表示する
function showParentsGroupList(id, recursiveFlg) {
	var parentId = $("#" + id).attr("lang");
	if ( $("li.group[lang=" + parentId + "]")[0] ) {
		$("li.group[lang=" + parentId + "]").show();
		
		if (recursiveFlg) {
			showParentsGroupList(parentId, true);
		}
	}
}

// 対象グループIDの子グループリストを非表示にする
function hideGroupList(id, recursiveFlg) {
	if ( $("li.group[lang=" + id + "]")[0] ) {
		$("li.group[lang=" + id + "]").hide();
		
		if (recursiveFlg) {
			$("li.group[lang=" + id + "]").each(function(){
				hideGroupList($(this).attr("id"), true);
			});
		}
	}
}

//全グループOPEN or Closeイメージ変換
function groupOpenImgCheck(){
	var closeImg = $("#groupCloseImage").val();
	var openImg = $("#groupOpenImage").val();
	$("[name=groupOpenCloseImg]").each(function(){
		var li_idx = $("li.group").index($(this).parent().parent());
		if (li_idx >= 0 && $("li.group")[li_idx+1]) {
			if ($("li.group")[li_idx].value < $("li.group")[li_idx+1].value) {
				if ($("li.group")[li_idx+1].style.display == "none") {
					this.src = closeImg;
				} else {
					this.src = openImg;
				}
			}
		}
	});
}
//Group選択の時(各checkboxをチェックする際:同じIDのグループ一括チェック)
function checkDup(obj){
	$(":checkbox[value=" +obj.value+ "]").prop("checked",obj.checked);
}

// #parentDispにチェックボックスのグループ要素を追加
function addCheckGroupToParentDisp(groupList, checkIDList, parentId, imagesPath) {
	var linkHtml = "";
	var groupNum = groupList.length;
	for (var i = 0; i < groupNum; i++) {
		if (groupList[i][2] != "0") {
			if (Number(groupList[i][3]) == parentId) {
				if (groupList[i][5] != "") {
					linkHtml = "<span><img id='img" + groupList[i][0] + "' src='" + imagesPath + "/close_group.gif' class='ocicon cursorHand' name='groupOpenCloseImg' onclick='javascript:groupClick2(this); return false;'/></span>";
				} else {
					linkHtml = "<span><img src='" + imagesPath + "/no_group.gif' class='ocicon'/></span>";
				}
				linkHtml += "<label><input type='checkbox' name='" + groupList[i][1] + "' id='" +groupList[i][6]+ "' value='" +groupList[i][0]+ "' class='groupCheck nobdr mid' onclick='javascript:checkDup(this);'";
				if (jQuery.inArray(groupList[i][0], checkIDList) > -1) {
					linkHtml += " checked ";
				}
				linkHtml += "'/> ";
				linkHtml += groupList[i][1] + "</label>";
				// 下記の「<li>...</li>」で一番前にあるスペースは絶対に削除しないようにすること。(IE6でそのスペースがなければ、ポップアップのグループ一覧で展開ボタンを押した時、デザインがずれています。)
				linkHtml = " <li id='" + groupList[i][0] + "' lang='" + groupList[i][3] + "' class='group level" + groupList[i][2] + "' style='margin-left:" + (groupList[i][2]*40) + "px; display:none; white-space:nowrap;' value='" + groupList[i][2] + "'>" + linkHtml + "</li><div id='parentDisp" + groupList[i][0] + "'></div>";
				$("#parentDisp" + parentId).append(linkHtml);
			}
		}
	}
}

// #parentDispにラジオボタンのグループ要素を追加
function addRadioGroupToParentDisp(groupList, checkIDList, parentId, imagesPath) {
	var linkHtml = "";
	var groupNum = groupList.length;
	for (var i = 0; i < groupNum; i++) {
		if (groupList[i][2] != "0") {
			if (Number(groupList[i][3]) == parentId) {
				if (groupList[i][5] != "") {
					linkHtml = "<span><img id='img" + groupList[i][0] + "' src='" + imagesPath + "/close_group.gif' class='ocicon cursorHand' name='groupOpenCloseImg' onclick='javascript:groupClick2(this); return false;'/></span>";
				} else {
					linkHtml = "<span><img src='" + imagesPath + "/no_group.gif' class='ocicon'/></span>";
				}
				linkHtml += "<label><input type='radio' name='groupID' id='" +groupList[i][6]+ "' value='" +groupList[i][0]+ "' alt='" +groupList[i][1]+ "' class='groupCheck nobdr mid' onclick='javascript:checkDup(this);'";
				if (jQuery.inArray(groupList[i][0], checkIDList) > -1) {
					linkHtml += " checked ";
				}
				linkHtml += "'/> ";
				linkHtml = linkHtml + groupList[i][1] + "</label>";
				// 下記の「<li>...</li>」で一番前にあるスペースは絶対に削除しないようにすること。(IE6でそのスペースがなければ、ポップアップのグループ一覧で展開ボタンを押した時、デザインがずれています。)
				linkHtml = " <li id='" + groupList[i][0] + "' lang='" + groupList[i][3] + "' class='group level" + groupList[i][2] + "' style='margin-left:" + (groupList[i][2]*40) + "px; display:none; white-space:nowrap;' value='" + groupList[i][2] + "'>" + linkHtml + "</li><div id='parentDisp" + groupList[i][0] + "'></div>";
				$("#parentDisp" + parentId).append(linkHtml);
			}
		}
	}
}

//#groupDispにチェックボックスのグループ要素を追加
function addCheckGroupToGroupDisp(groupList, imagesPath) {
	var linkHtml = "";
	var groupNum = groupList.length;
	for (var i = 0; i < groupNum; i++) {
		if (groupList[i][2] < 2) {
			if (groupList[i][5] != "") {
				linkHtml = "<span><img id='img" + groupList[i][0] + "' src='" + imagesPath + "/close_group.gif' class='ocicon cursorHand' name='groupOpenCloseImg' onclick='javascript:groupClick2(this); return false;'/></span>";
			} else {
				linkHtml = "<span><img src='" + imagesPath + "/no_group.gif' class='ocicon'/></span>";
			}
			linkHtml = linkHtml + "<label><input type='checkbox' name='" + groupList[i][1] + "' id='" + groupList[i][6] + "' value='" +groupList[i][0]+ "' class='groupCheck nobdr mid' onclick='javascript:checkDup(this);'> ";
			linkHtml = linkHtml + groupList[i][1] + "</label>";
			// 下記の「<li>...</li>」で一番前にあるスペースは絶対に削除しないようにすること。(IE6でそのスペースがなければ、ポップアップのグループ一覧で展開ボタンを押した時、デザインがずれています。)
			linkHtml = " <li id='" + groupList[i][0] + "' lang='" + groupList[i][3] + "' class='group level" + groupList[i][2] + "' style='margin-left:" + (groupList[i][2]*40) + "px; display:none; white-space:nowrap;' value='" + groupList[i][2] + "'>" + linkHtml + "</li><div id='parentDisp" + groupList[i][0] + "'></div>";
			$("#groupDisp").append(linkHtml);
		}
	}
}

// #groupDispにラジオボタンのグループ要素を追加
function addRadioGroupToGroupDisp(groupList, imagesPath) {
	var linkHtml = "";
	var groupNum = groupList.length;
	for (var i = 0; i < groupNum; i++) {
		if (groupList[i][2] < 2) {
			if (groupList[i][5] != "") {
				linkHtml = "<span><img id='img" + groupList[i][0] + "' src='" + imagesPath + "/close_group.gif' class='ocicon cursorHand' name='groupOpenCloseImg' onclick='javascript:groupClick2(this); return false;'/></span>";
			} else {
				linkHtml = "<span><img src='" + imagesPath + "/no_group.gif' class='ocicon'/></span>";
			}
			linkHtml = linkHtml + "<label><input type='radio' name='groupID' id='" +groupList[i][6]+ "' value='" +groupList[i][0]+ "' alt='" +groupList[i][1]+ "' class='groupCheck nobdr mid' onclick='javascript:checkDup(this);'> ";
			linkHtml = linkHtml + groupList[i][1] + "</label>";
			// 下記の「<li>...</li>」で一番前にあるスペースは絶対に削除しないようにすること。(IE6でそのスペースがなければ、ポップアップのグループ一覧で展開ボタンを押した時、デザインがずれています。)
			linkHtml = " <li id='" + groupList[i][0] + "' lang='" + groupList[i][3] + "' class='group level" + groupList[i][2] + "' style='margin-left:" + (groupList[i][2]*40) + "px; display:none; white-space:nowrap;' value='" + groupList[i][2] + "'>" + linkHtml + "</li><div id='parentDisp" + groupList[i][0] + "'></div>";
			$("#groupDisp").append(linkHtml);
		}
	}
}