- Timestamp:
- 2013/08/26 23:43:24 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13-dev/html/user_data/packages/admin/js/eccube.admin.js
r23080 r23129 21 21 */ 22 22 23 // 親ウィンドウをポストさせる。 24 function fnSubmitParent() { 25 // 親ウィンドウの存在確認 26 if(eccube.isOpener()) { 27 window.opener.document.form1.submit(); 28 } else { 29 window.close(); 23 (function( window, undefined ){ 24 25 // 名前空間の重複を防ぐ 26 if (window.eccube === undefined) { 27 window.eccube = {}; 30 28 } 31 } 32 33 //指定されたidの削除を行うページを実行する。 34 function fnDeleteMember(id, pageno) { 35 url = "./delete.php?id=" + id + "&pageno=" + pageno; 36 if(window.confirm('登録内容を削除しても宜しいでしょうか')){ 37 location.href = url; 38 } 39 } 40 41 // ラジオボタンチェック状態を保存 42 var lstsave = ""; 43 44 // ラジオボタンのチェック状態を取得する。 45 function fnGetRadioChecked() { 46 var max; 47 var cnt; 48 var names = ""; 49 var startname = ""; 50 var ret; 51 max = document.form1.elements.length; 52 lstsave = Array(max); 53 for(cnt = 0; cnt < max; cnt++) { 54 if(document.form1.elements[cnt].type == 'radio') { 55 name = document.form1.elements[cnt].name; 56 /* radioボタンは同じ名前が2回続けて検出されるので、 57 最初の名前の検出であるかどうかの判定 */ 58 // 1回目の検出 59 if(startname != name) { 60 startname = name; 61 ret = document.form1.elements[cnt].checked; 62 if(ret == true){ 63 // 稼働がチェックされている。 64 lstsave[name] = 1; 65 } 66 // 2回目の検出 67 } else { 68 ret = document.form1.elements[cnt].checked; 69 if(ret == true){ 70 // 非稼働がチェックされている。 71 lstsave[name] = 0; 72 } 73 } 74 } 75 } 76 } 77 78 // 管理者メンバーページの切替 79 function fnMemberPage(pageno) { 80 location.href = "?pageno=" + pageno; 81 } 82 83 // ページナビで使用する 84 function fnNaviSearchPage(pageno, mode) { 85 document.form1['search_pageno'].value = pageno; 86 document.form1['mode'].value = mode; 87 document.form1.submit(); 88 } 89 90 // ページナビで使用する(mode = search専用) 91 function fnNaviSearchOnlyPage(pageno) { 92 document.form1['search_pageno'].value = pageno; 93 document.form1['mode'].value = 'search'; 94 document.form1.submit(); 95 } 96 97 // ページナビで使用する(form2) 98 function fnNaviSearchPage2(pageno) { 99 document.form2['search_pageno'].value = pageno; 100 document.form2['mode'].value = 'search'; 101 document.form2.submit(); 102 } 103 104 // 値を代入して指定ページにsubmit 105 function fnSetvalAndSubmit( fname, key, val ) { 106 fm = document[fname]; 107 fm[key].value = val; 108 fm.submit(); 109 } 110 111 // 項目に入った値をクリアする。 112 function fnClearText(name) { 113 document.form1[name].value = ""; 114 } 115 116 // カテゴリの追加 117 function fnAddCat(cat_id) { 118 if(window.confirm('カテゴリを登録しても宜しいでしょうか')){ 119 document.form1['mode'].value = 'edit'; 120 document.form1['cat_id'].value = cat_id; 121 } 122 } 123 124 // カテゴリの編集 125 function fnEditCat(parent_id, cat_id) { 126 document.form1['mode'].value = 'pre_edit'; 127 document.form1['parent_id'].value = parent_id; 128 document.form1['edit_cat_id'].value = cat_id; 129 document.form1.submit(); 130 } 131 132 // 選択カテゴリのチェック 133 function fnCheckCat(obj) { 134 val = obj[obj.selectedIndex].value; 135 if (val == ""){ 136 alert ("親カテゴリは選択できません"); 137 obj.selectedIndex = 0; 138 } 139 } 140 141 // 確認ページから登録ページへ戻る 142 function fnReturnPage() { 143 document.form1['mode'].value = 'return'; 144 document.form1.submit(); 145 } 146 147 // 規格分類登録へ移動 148 function fnClassCatPage(class_id) { 149 location.href = "./classcategory.php?class_id=" + class_id; 150 } 151 152 function fnListCheck(list) { 153 len = list.length; 154 for(cnt = 0; cnt < len; cnt++) { 155 document.form1[list[cnt]].checked = true; 156 } 157 } 158 159 function fnAllCheck(input, selector) { 160 if ($(input).attr('checked')) { 161 $(selector).attr('checked', true); 162 } else { 163 $(selector).attr('checked', false); 164 } 165 } 166 167 //指定されたidの削除を行うページを実行する。 168 function fnDelete(url) { 169 if(window.confirm('登録内容を削除しても宜しいでしょうか')){ 170 location.href = url; 29 30 var eccube = window.eccube; 31 32 //指定されたidの削除を行うページを実行する。 33 eccube.deleteMember = function(id, pageno) { 34 var url = "./delete.php?id=" + id + "&pageno=" + pageno; 35 if(window.confirm('登録内容を削除しても宜しいでしょうか')){ 36 location.href = url; 37 } 38 }; 39 40 // ラジオボタンチェック状態を保存 41 eccube.checkedRadios = ""; 42 43 // ラジオボタンのチェック状態を取得する。 44 eccube.getRadioChecked = function() { 45 var max; 46 var cnt; 47 var startname = ""; 48 var ret; 49 var name; 50 max = document["form1"].elements.length; 51 eccube.checkedRadios = [max]; 52 for(cnt = 0; cnt < max; cnt++) { 53 if(document["form1"].elements[cnt].type === 'radio') { 54 name = document["form1"].elements[cnt].name; 55 /* radioボタンは同じ名前が2回続けて検出されるので、 56 最初の名前の検出であるかどうかの判定 */ 57 // 1回目の検出 58 if(startname !== name) { 59 startname = name; 60 ret = document["form1"].elements[cnt].checked; 61 if(ret === true){ 62 // 稼働がチェックされている。 63 eccube.checkedRadios[name] = 1; 64 } 65 // 2回目の検出 66 } else { 67 ret = document["form1"].elements[cnt].checked; 68 if(ret === true){ 69 // 非稼働がチェックされている。 70 eccube.checkedRadios[name] = 0; 71 } 72 } 73 } 74 } 75 }; 76 77 // 管理者メンバーページの切替 78 eccube.moveMemberPage = function(pageno) { 79 location.href = "?pageno=" + pageno; 80 }; 81 82 // ページナビで使用する 83 eccube.moveNaviPage = function(pageno, mode, form) { 84 if (form === undefined) { 85 form = eccube.defaults.formId; 86 } 87 var formElement = $("form#" + form); 88 formElement.find("input[name='search_pageno']").val(pageno); 89 if (mode !== undefined) { 90 formElement.find("input[name='mode']").val(mode); 91 } 92 formElement.submit(); 93 }; 94 95 // ページナビで使用する(mode = search専用) 96 eccube.moveSearchPage = function(pageno) { 97 eccube.moveNaviPage(pageno, "search"); 98 }; 99 100 // ページナビで使用する(form2) 101 eccube.moveSecondSearchPage = function(pageno) { 102 eccube.moveNaviPage(pageno, "search", "form2"); 103 }; 104 105 // 項目に入った値をクリアする。 106 eccube.clearValue = function(name) { 107 document["form1"][name].value = ""; 108 }; 109 110 // 規格分類登録へ移動 111 eccube.moveClassCatPage = function(class_id) { 112 location.href = "./classcategory.php?class_id=" + class_id; 113 }; 114 115 eccube.checkAllBox = function(input, selector) { 116 if ($(input).attr('checked')) { 117 $(selector).attr('checked', true); 118 } else { 119 $(selector).attr('checked', false); 120 } 121 }; 122 123 //指定されたidの削除を行うページを実行する。 124 eccube.moveDeleteUrl = function(url) { 125 if(window.confirm('登録内容を削除しても宜しいでしょうか')){ 126 location.href = url; 127 } 171 128 return false; 172 } 173 } 174 175 //配送料金を自動入力 176 function fnSetDelivFee(max) { 177 for(cnt = 1; cnt <= max; cnt++) { 178 name = "fee" + cnt; 179 document.form1[name].value = document.form1['fee_all'].value; 180 } 181 } 182 183 // 在庫数制限判定 184 function fnCheckStockLimit(icolor) { 185 if(document.form1['stock_unlimited']) { 186 list = new Array( 187 'stock' 188 ); 189 if(document.form1['stock_unlimited'].checked) { 190 eccube.changeDisabled(list, icolor); 191 document.form1['stock'].value = ""; 129 }; 130 131 //配送料金を自動入力 132 eccube.setDelivFee = function(max) { 133 var name; 134 for(var cnt = 1; cnt <= max; cnt++) { 135 name = "fee" + cnt; 136 document["form1"][name].value = document["form1"]['fee_all'].value; 137 } 138 }; 139 140 // 在庫数制限判定 141 eccube.checkStockLimit = function(icolor) { 142 if(document["form1"]['stock_unlimited']) { 143 var list = ['stock']; 144 if(document["form1"]['stock_unlimited'].checked) { 145 eccube.changeDisabled(list, icolor); 146 document["form1"]['stock'].value = ""; 147 } else { 148 eccube.changeDisabled(list, ''); 149 } 150 } 151 }; 152 153 // 確認メッセージ 154 eccube.doConfirm = function() { 155 return window.confirm('この内容で登録しても宜しいでしょうか'); 156 }; 157 158 // フォームに代入してからサブミットする。 159 eccube.insertValueAndSubmit = function(fm, ele, val, msg){ 160 var ret; 161 if (msg !== undefined){ 162 ret = window.confirm(msg); 192 163 } else { 193 eccube.changeDisabled(list, ''); 194 } 195 } 196 } 197 198 // Form指定のSubmit 199 function fnFormSubmit(form) { 200 document.forms[form].submit(); 201 } 202 203 // 確認メッセージ 204 function fnConfirm() { 205 if(window.confirm('この内容で登録しても宜しいでしょうか')){ 206 return true; 207 } 208 return false; 209 } 210 211 //削除確認メッセージ 212 function fnDeleteConfirm() { 213 if(window.confirm('削除しても宜しいでしょうか')){ 214 return true; 215 } 216 return false; 217 } 218 219 //メルマガ形式変更確認メッセージ 220 function fnmerumagaupdateConfirm() { 221 if(window.confirm("既に登録されているメールアドレスです。\nメルマガの種類が変更されます。宜しいですか?")){ 222 return true; 223 } 224 return false; 225 } 226 227 // フォームに代入してからサブミットする。 228 function fnInsertValAndSubmit( fm, ele, val, msg ){ 229 if ( msg ){ 230 ret = window.confirm(msg); 231 } else { 232 ret = true; 233 } 234 if( ret ){ 235 fm[ele].value = val; 236 fm.submit(); 164 ret = true; 165 } 166 if(ret){ 167 fm[ele].value = val; 168 fm.submit(); 169 return false; 170 } 237 171 return false; 238 } 239 return false; 240 } 241 242 // 自分以外の要素を有効・無効にする 243 function fnSetDisabled ( f_name, e_name, flag ) { 244 fm = document[f_name]; 245 246 // 必須項目のチェック 247 for(cnt = 0; cnt < fm.elements.length; cnt++) { 248 if( fm[cnt].name != e_name && fm[cnt].name != 'subm' && fm[cnt].name != 'mode') { 249 fm[cnt].disabled = flag; 250 if ( flag == true ){ 251 fm[cnt].style.backgroundColor = "#cccccc"; 252 } else { 253 fm[cnt].style.backgroundColor = "#ffffff"; 254 } 255 } 256 } 257 } 258 259 //リストボックス内の項目を移動する 260 function fnMoveCat(sel1, sel2, mode_name) { 261 var fm = document.form1; 262 for(i = 0; i < fm[sel1].length; i++) { 263 if(fm[sel1].options[i].selected) { 264 if(fm[sel2].value != "") { 265 fm[sel2].value += "-" + fm[sel1].options[i].value; 266 } else { 267 fm[sel2].value = fm[sel1].options[i].value; 268 } 269 } 270 } 271 fm["mode"].value = mode_name; 272 fm.submit(); 273 } 274 275 //リストボックス内の項目を削除する 276 function fnDelListContents(sel1, sel2, mode_name) { 277 fm = document.form1; 278 for(j = 0; j < fm[sel1].length; j++) { 279 if(fm[sel1].options[i].selected) { 280 fm[sel2].value = fm[sel2].value.replace(fm[sel1].options[i].value, ""); 281 } 282 } 283 284 fm["mode"].value = mode_name; 285 fm.submit(); 286 } 287 288 // タグの表示非表示切り替え 289 function fnDispChange(disp_id, inner_id, disp_flg){ 290 disp_state = document.getElementById(disp_id).style.display; 291 292 if (disp_state == "") { 293 document.form1[disp_flg].value="none"; 294 document.getElementById(disp_id).style.display="none"; 295 document.getElementById(inner_id).innerHTML = '<FONT Color="#FFFF99"> << 表示 </FONT>'; 296 }else{ 297 document.form1[disp_flg].value=""; 298 document.getElementById(disp_id).style.display=""; 299 document.getElementById(inner_id).innerHTML = ' <FONT Color="#FFFF99"> >> 非表示 </FONT>'; 300 } 301 } 302 303 // ページ読み込み時の処理 304 $(function(){ 305 // ヘッダナビゲーション 306 $("#navi li").hover( 307 function(){ 308 $(this).addClass("sfhover"); 309 }, 310 function(){ 311 $(this).removeClass("sfhover"); 312 } 313 ); 314 }); 315 //制限数判定 316 function fnCheckLimit(elem1, elem2, icolor) { 317 if(document.form1[elem2]) { 318 list = new Array( 319 elem1 320 ); 321 if(document.form1[elem2].checked) { 322 eccube.changeDisabled(list, icolor); 323 document.form1[elem1].value = ""; 172 }; 173 174 //制限数判定 175 eccube.checkLimit = function(elem1, elem2, icolor) { 176 if(document["form1"][elem2]) { 177 var list = [elem1]; 178 if(document["form1"][elem2].checked) { 179 eccube.changeDisabled(list, icolor); 180 document["form1"][elem1].value = ""; 181 } else { 182 eccube.changeDisabled(list, ''); 183 } 184 } 185 }; 186 187 /** 188 * ファイル管理 189 */ 190 eccube.fileManager = { 191 tree:"", // 生成HTML格納 192 arrTreeStatus:[], // ツリー状態保持 193 old_select_id:'', // 前回選択していたファイル 194 selectFileHidden:"", // 選択したファイルのhidden名 195 treeStatusHidden:"", // ツリー状態保存用のhidden名 196 modeHidden:"" // modeセットhidden名 197 }; 198 199 // ツリー表示 200 eccube.fileManager.viewFileTree = function(view_id, arrTree, openFolder, selectHidden, treeHidden, mode) { 201 eccube.fileManager.selectFileHidden = selectHidden; 202 eccube.fileManager.treeStatusHidden = treeHidden; 203 eccube.fileManager.modeHidden = mode; 204 205 var id, level, old_id, old_level, tmp_level, rank_img, display, arrFileSplit, file_name, folder_img; 206 207 for(var i = 0; i < arrTree.length; i++) { 208 id = arrTree[i][0]; 209 level = arrTree[i][3]; 210 211 if(i === 0) { 212 old_id = "0"; 213 old_level = 0; 214 } else { 215 old_id = arrTree[i-1][0]; 216 old_level = arrTree[i-1][3]; 217 } 218 219 // 階層上へ戻る 220 if(level <= (old_level - 1)) { 221 tmp_level = old_level - level; 222 for(var up_roop = 0; up_roop <= tmp_level; up_roop++) { 223 eccube.fileManager.tree += '</div>'; 224 } 225 } 226 227 // 同一階層で次のフォルダへ 228 if(id !== old_id && level === old_level) { 229 eccube.fileManager.tree += '</div>'; 230 } 231 232 // 階層の分だけスペースを入れる 233 for(var space_cnt = 0; space_cnt < arrTree[i][3]; space_cnt++) { 234 eccube.fileManager.tree += " "; 235 } 236 237 // 階層画像の表示・非表示処理 238 if(arrTree[i][4]) { 239 if(arrTree[i][1] === '_parent') { 240 rank_img = eccube.fileManager["IMG_MINUS"]; 241 } else { 242 rank_img = eccube.fileManager["IMG_NORMAL"]; 243 } 244 // 開き状態を保持 245 eccube.fileManager.arrTreeStatus.push(arrTree[i][2]); 246 display = 'block'; 247 } else { 248 if(arrTree[i][1] === '_parent') { 249 rank_img = eccube.fileManager["IMG_PLUS"]; 250 } else { 251 rank_img = eccube.fileManager["IMG_NORMAL"]; 252 } 253 display = 'none'; 254 } 255 256 arrFileSplit = arrTree[i][2].split("/"); 257 file_name = arrFileSplit[arrFileSplit.length-1]; 258 259 // フォルダの画像を選択 260 if(arrTree[i][2] === openFolder) { 261 folder_img = eccube.fileManager["IMG_FOLDER_OPEN"]; 262 file_name = "<b>" + file_name + "</b>"; 263 } else { 264 folder_img = eccube.fileManager["IMG_FOLDER_CLOSE"]; 265 } 266 267 // 階層画像に子供がいたらオンクリック処理をつける 268 if(rank_img !== eccube.fileManager["IMG_NORMAL"]) { 269 eccube.fileManager.tree += '<a href="javascript:eccube.fileManager.toggleTreeMenu(\'tree'+ i +'\',\'rank_img'+ i +'\',\''+ arrTree[i][2] +'\')"><img src="'+ rank_img +'" border="0" name="rank_img'+ i +'" id="rank_img'+ i +'">'; 270 } else { 271 eccube.fileManager.tree += '<img src="'+ rank_img +'" border="0" name="rank_img'+ i +'" id="rank_img'+ i +'">'; 272 } 273 eccube.fileManager.tree += '<a href="javascript:fnFolderOpen(\''+ arrTree[i][2] +'\')"><img src="'+ folder_img +'" border="0" name="tree_img'+ i +'" id="tree_img'+ i +'"> '+ file_name +'</a><br/>'; 274 eccube.fileManager.tree += '<div id="tree'+ i +'" style="display:'+ display +'">'; 275 } 276 document.getElementById(view_id).innerHTML = eccube.fileManager.tree; 277 //document.tree_form.tree_test2.focus(); 278 }; 279 280 // Tree状態をhiddenにセット 281 eccube.fileManager.setTreeStatus = function(name) { 282 var tree_status = ""; 283 for(var i=0; i < eccube.fileManager.arrTreeStatus.length ;i++) { 284 if(i !== 0) { 285 tree_status += '|'; 286 } 287 tree_status += eccube.fileManager.arrTreeStatus[i]; 288 } 289 document["form1"][name].value = tree_status; 290 }; 291 292 // 階層ツリーメニュー表示・非表示処理 293 eccube.fileManager.toggleTreeMenu = function(tName, imgName, path) { 294 var tMenu = $("#" + tName); 295 296 if(tMenu.css("display") === 'none') { 297 $("#" +imgName).attr("src", eccube.fileManager["IMG_MINUS"]); 298 tMenu.show(); 299 // 階層の開いた状態を保持 300 eccube.fileManager.arrTreeStatus.push(path); 324 301 } else { 325 eccube.changeDisabled(list, ''); 326 } 327 } 328 } 302 $("#" +imgName).attr("src", eccube.fileManager["IMG_PLUS"]); 303 tMenu.hide(); 304 // 閉じ状態を保持 305 eccube.fileManager["fnDelTreeStatus"](path); 306 } 307 }; 308 309 // Tree状態を削除する(閉じる状態へ) 310 eccube.fileManager.deleteTreeStatus = function(path) { 311 for(var i=0; i < eccube.fileManager.arrTreeStatus.length ;i++) { 312 if(eccube.fileManager.arrTreeStatus[i] === path) { 313 eccube.fileManager.arrTreeStatus[i] = ""; 314 } 315 } 316 }; 317 318 // ファイルリストダブルクリック処理 319 eccube.fileManager.doubleClick = function(arrTree, path, is_dir, now_dir, is_parent) { 320 if(is_dir) { 321 if(!is_parent) { 322 for(var cnt = 0; cnt < arrTree.length; cnt++) { 323 if(now_dir === arrTree[cnt][2]) { 324 var open_flag = false; 325 for(var status_cnt = 0; status_cnt < eccube.fileManager.arrTreeStatus.length; status_cnt++) { 326 if(eccube.fileManager.arrTreeStatus[status_cnt] === arrTree[cnt][2]) { 327 open_flag = true; 328 } 329 } 330 if(!open_flag) { 331 eccube.fileManager.toggleTreeMenu('tree'+cnt, 'rank_img'+cnt, arrTree[cnt][2]); 332 } 333 } 334 } 335 } 336 eccube.fileManager.openFolder(path); 337 } else { 338 // Download 339 eccube.setModeAndSubmit('download','',''); 340 } 341 }; 342 343 // フォルダオープン処理 344 eccube.fileManager.openFolder = function(path) { 345 // クリックしたフォルダ情報を保持 346 document["form1"][eccube.fileManager.selectFileHidden].value = path; 347 // treeの状態をセット 348 eccube.fileManager.setTreeStatus(eccube.fileManager.treeStatusHidden); 349 // submit 350 eccube.setModeAndSubmit(eccube.fileManager.modeHidden,'',''); 351 }; 352 353 // ファイル選択 354 eccube.fileManager.selectFile = function(id) { 355 eccube.fileManager.old_select_id = id; 356 }; 357 358 // グローバルに使用できるようにする 359 window.eccube = eccube; 360 361 /** 362 * Initialize. 363 */ 364 $(function() { 365 // ヘッダナビゲーション 366 $("#navi").find("li").hover( 367 function(){ 368 $(this).addClass("sfhover"); 369 }, 370 function(){ 371 $(this).removeClass("sfhover"); 372 } 373 ); 374 }); 375 })(window); 329 376 330 377 (function($) { … … 338 385 bread_crumbs: '', 339 386 start_node: '<span>ホーム</span>', 340 anchor_node: '<a onclick="eccube.setModeAndSubmit(\'tree\', \'parent_category_id\', ' 341 +'{category_id}); return false" href="javascript:;" />',387 anchor_node: '<a onclick="eccube.setModeAndSubmit(\'tree\', \'parent_category_id\', ' + 388 '{category_id}); return false" href="javascript:;" />', 342 389 delimiter_node: '<span> > </span>' 343 390 }; … … 352 399 353 400 for (var i = total - 1; i >= 0; i--) { 354 if (i == total -1) $node.append(o.delimiter_node);355 356 var anchor = o.anchor_node357 .replace(/{category_id}/ig, 358 o.bread_crumbs[i].category_id);401 if (i === total -1) { 402 $node.append(o.delimiter_node); 403 } 404 405 var anchor = o.anchor_node.replace(/{category_id}/ig, o.bread_crumbs[i]["category_id"]); 359 406 $(anchor) 360 .text(o.bread_crumbs[i] .category_name)407 .text(o.bread_crumbs[i]["category_name"]) 361 408 .appendTo($node); 362 409 363 if (i > 0) $node.append(o.delimiter_node); 410 if (i > 0) { 411 $node.append(o.delimiter_node); 412 } 364 413 } 365 414 $this.html($node); … … 368 417 }; 369 418 })(jQuery); 370 371 /**372 * ファイル管理373 */374 var tree = ""; // 生成HTML格納375 var count = 0; // ループカウンタ376 var arrTreeStatus = []; // ツリー状態保持377 var old_select_id = ''; // 前回選択していたファイル378 var selectFileHidden = ""; // 選択したファイルのhidden名379 var treeStatusHidden = ""; // ツリー状態保存用のhidden名380 var modeHidden = ""; // modeセットhidden名381 382 // ツリー表示383 function fnTreeView(view_id, arrTree, openFolder, selectHidden, treeHidden, mode) {384 selectFileHidden = selectHidden;385 treeStatusHidden = treeHidden;386 modeHidden = mode;387 388 for(i = 0; i < arrTree.length; i++) {389 id = arrTree[i][0];390 level = arrTree[i][3];391 392 if(i == 0) {393 old_id = "0";394 old_level = 0;395 } else {396 old_id = arrTree[i-1][0];397 old_level = arrTree[i-1][3];398 }399 400 // 階層上へ戻る401 if(level <= (old_level - 1)) {402 tmp_level = old_level - level;403 for(up_roop = 0; up_roop <= tmp_level; up_roop++) {404 tree += '</div>';405 }406 }407 408 // 同一階層で次のフォルダへ409 if(id != old_id && level == old_level) tree += '</div>';410 411 // 階層の分だけスペースを入れる412 for(space_cnt = 0; space_cnt < arrTree[i][3]; space_cnt++) {413 tree += " ";414 }415 416 // 階層画像の表示・非表示処理417 if(arrTree[i][4]) {418 if(arrTree[i][1] == '_parent') {419 rank_img = IMG_MINUS;420 } else {421 rank_img = IMG_NORMAL;422 }423 // 開き状態を保持424 arrTreeStatus.push(arrTree[i][2]);425 display = 'block';426 } else {427 if(arrTree[i][1] == '_parent') {428 rank_img = IMG_PLUS;429 } else {430 rank_img = IMG_NORMAL;431 }432 display = 'none';433 }434 435 arrFileSplit = arrTree[i][2].split("/");436 file_name = arrFileSplit[arrFileSplit.length-1];437 438 // フォルダの画像を選択439 if(arrTree[i][2] == openFolder) {440 folder_img = IMG_FOLDER_OPEN;441 file_name = "<b>" + file_name + "</b>";442 } else {443 folder_img = IMG_FOLDER_CLOSE;444 }445 446 // 階層画像に子供がいたらオンクリック処理をつける447 if(rank_img != IMG_NORMAL) {448 tree += '<a href="javascript:fnTreeMenu(\'tree'+ i +'\',\'rank_img'+ i +'\',\''+ arrTree[i][2] +'\')"><img src="'+ rank_img +'" border="0" name="rank_img'+ i +'" id="rank_img'+ i +'">';449 } else {450 tree += '<img src="'+ rank_img +'" border="0" name="rank_img'+ i +'" id="rank_img'+ i +'">';451 }452 tree += '<a href="javascript:fnFolderOpen(\''+ arrTree[i][2] +'\')"><img src="'+ folder_img +'" border="0" name="tree_img'+ i +'" id="tree_img'+ i +'"> '+ file_name +'</a><br/>';453 tree += '<div id="tree'+ i +'" style="display:'+ display +'">';454 }455 fnDrow(view_id, tree);456 //document.tree_form.tree_test2.focus();457 }458 459 // Tree状態をhiddenにセット460 function setTreeStatus(name) {461 var tree_status = "";462 for(i=0; i < arrTreeStatus.length ;i++) {463 if(i != 0) tree_status += '|';464 tree_status += arrTreeStatus[i];465 }466 document.form1[name].value = tree_status;467 }468 469 // Tree状態を削除する(閉じる状態へ)470 function fnDelTreeStatus(path) {471 for(i=0; i < arrTreeStatus.length ;i++) {472 if(arrTreeStatus[i] == path) {473 arrTreeStatus[i] = "";474 }475 }476 }477 // ツリー描画478 function fnDrow(id, tree) {479 // ブラウザ取得480 MyBR = fnGetMyBrowser();481 // ブラウザ事に処理を切り分け482 switch(myBR) {483 // IE4の時の表示484 case 'I4':485 document.all(id).innerHTML = tree;486 break;487 // NN4の時の表示488 case 'N4':489 document.layers[id].document.open();490 document.layers[id].document.write("<div>");491 document.layers[id].document.write(tree);492 document.layers[id].document.write("</div>");493 document.layers[id].document.close();494 break;495 default:496 document.getElementById(id).innerHTML=tree;497 break;498 }499 }500 501 // 階層ツリーメニュー表示・非表示処理502 function fnTreeMenu(tName, imgName, path) {503 tMenu = $("#" + tName);504 505 if(tMenu.css("display") == 'none') {506 fnChgImg(IMG_MINUS, imgName);507 tMenu.show();508 // 階層の開いた状態を保持509 arrTreeStatus.push(path);510 } else {511 fnChgImg(IMG_PLUS, imgName);512 tMenu.hide();513 // 閉じ状態を保持514 fnDelTreeStatus(path);515 }516 }517 518 // ファイルリストダブルクリック処理519 function fnDbClick(arrTree, path, is_dir, now_dir, is_parent) {520 if(is_dir) {521 if(!is_parent) {522 for(cnt = 0; cnt < arrTree.length; cnt++) {523 if(now_dir == arrTree[cnt][2]) {524 open_flag = false;525 for(status_cnt = 0; status_cnt < arrTreeStatus.length; status_cnt++) {526 if(arrTreeStatus[status_cnt] == arrTree[cnt][2]) open_flag = true;527 }528 if(!open_flag) fnTreeMenu('tree'+cnt, 'rank_img'+cnt, arrTree[cnt][2]);529 }530 }531 }532 fnFolderOpen(path);533 } else {534 // Download535 eccube.setModeAndSubmit('download','','');536 }537 }538 539 // フォルダオープン処理540 function fnFolderOpen(path) {541 // クリックしたフォルダ情報を保持542 document.form1[selectFileHidden].value = path;543 // treeの状態をセット544 setTreeStatus(treeStatusHidden);545 // submit546 eccube.setModeAndSubmit(modeHidden,'','');547 }548 549 // 閲覧ブラウザ取得550 function fnGetMyBrowser() {551 myOP = window.opera; // OP552 myN6 = document.getElementById; // N6553 myIE = document.all; // IE554 myN4 = document.layers; // N4555 if (myOP) myBR="O6"; // OP6以上556 else if (myIE) myBR="I4"; // IE4以上557 else if (myN6) myBR="N6"; // NS6以上558 else if (myN4) myBR="N4"; // NN4559 else myBR=""; // その他560 561 return myBR;562 }563 564 // imgタグの画像変更565 function fnChgImg(fileName,imgName){566 $("#" + imgName).attr("src", fileName);567 }568 569 // ファイル選択570 function fnSelectFile(id, val) {571 old_select_id = id;572 }
Note: See TracChangeset
for help on using the changeset viewer.