Ignore:
Timestamp:
2013/08/17 01:05:37 (11 years ago)
Author:
pineray
Message:

#2341 EC-CUBE独自のJSをまとめる
管理画面.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/html/user_data/packages/admin/js/admin.js

    r23066 r23079  
    327327    } 
    328328} 
     329 
     330(function($) { 
     331    /** 
     332     * パンくず 
     333     */ 
     334    var o; 
     335 
     336    $.fn.breadcrumbs = function(options) { 
     337        var defaults = { 
     338            bread_crumbs: '', 
     339            start_node: '<span>ホーム</span>', 
     340            anchor_node: '<a onclick="eccube.setModeAndSubmit(\'tree\', \'parent_category_id\', ' 
     341                + '{category_id}); return false" href="javascript:;" />', 
     342            delimiter_node: '<span>&nbsp;&gt;&nbsp;</span>' 
     343        }; 
     344 
     345        return this.each(function() { 
     346            if (options) { 
     347                o = $.fn.extend(defaults, options); 
     348            } 
     349            var $this = $(this); 
     350            var total = o.bread_crumbs.length; 
     351            var $node = $(o.start_node); 
     352 
     353            for (var i = total - 1; i >= 0; i--) { 
     354                if (i == total -1) $node.append(o.delimiter_node); 
     355 
     356                var anchor = o.anchor_node 
     357                    .replace(/{category_id}/ig, 
     358                        o.bread_crumbs[i].category_id); 
     359                $(anchor) 
     360                    .text(o.bread_crumbs[i].category_name) 
     361                    .appendTo($node); 
     362 
     363                if (i > 0) $node.append(o.delimiter_node); 
     364            } 
     365            $this.html($node); 
     366            return this; 
     367        }); 
     368    }; 
     369})(jQuery); 
     370 
     371/** 
     372 * ファイル管理 
     373 */ 
     374var tree = "";                      // 生成HTML格納 
     375var count = 0;                      // ループカウンタ 
     376var arrTreeStatus = [];             // ツリー状態保持 
     377var old_select_id = '';             // 前回選択していたファイル 
     378var selectFileHidden = "";          // 選択したファイルのhidden名 
     379var treeStatusHidden = "";          // ツリー状態保存用のhidden名 
     380var modeHidden = "";                // modeセットhidden名 
     381 
     382// ツリー表示 
     383function 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 += "&nbsp;&nbsp;&nbsp;"; 
     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 +'">&nbsp;'+ 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にセット 
     460function 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状態を削除する(閉じる状態へ) 
     470function fnDelTreeStatus(path) { 
     471    for(i=0; i < arrTreeStatus.length ;i++) { 
     472        if(arrTreeStatus[i] == path) { 
     473            arrTreeStatus[i] = ""; 
     474        } 
     475    } 
     476} 
     477// ツリー描画 
     478function 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// 階層ツリーメニュー表示・非表示処理 
     502function 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// ファイルリストダブルクリック処理 
     519function 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        // Download 
     535        eccube.setModeAndSubmit('download','',''); 
     536    } 
     537} 
     538 
     539// フォルダオープン処理 
     540function fnFolderOpen(path) { 
     541    // クリックしたフォルダ情報を保持 
     542    document.form1[selectFileHidden].value = path; 
     543    // treeの状態をセット 
     544    setTreeStatus(treeStatusHidden); 
     545    // submit 
     546    eccube.setModeAndSubmit(modeHidden,'',''); 
     547} 
     548 
     549// 閲覧ブラウザ取得 
     550function fnGetMyBrowser() { 
     551    myOP = window.opera;            // OP 
     552    myN6 = document.getElementById; // N6 
     553    myIE = document.all;            // IE 
     554    myN4 = document.layers;         // N4 
     555    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";       // NN4 
     559    else           myBR="";         // その他 
     560 
     561    return myBR; 
     562} 
     563 
     564// imgタグの画像変更 
     565function fnChgImg(fileName,imgName){ 
     566    $("#" + imgName).attr("src", fileName); 
     567} 
     568 
     569// ファイル選択 
     570function fnSelectFile(id, val) { 
     571    old_select_id = id; 
     572} 
Note: See TracChangeset for help on using the changeset viewer.