Index: /branches/version-2_13-dev/html/user_data/packages/admin/js/eccube.admin.js
===================================================================
--- /branches/version-2_13-dev/html/user_data/packages/admin/js/eccube.admin.js (revision 23080)
+++ /branches/version-2_13-dev/html/user_data/packages/admin/js/eccube.admin.js (revision 23129)
@@ -21,310 +21,357 @@
*/
-// 親ウィンドウをポストさせる。
-function fnSubmitParent() {
- // 親ウィンドウの存在確認
- if(eccube.isOpener()) {
- window.opener.document.form1.submit();
- } else {
- window.close();
+(function( window, undefined ){
+
+ // 名前空間の重複を防ぐ
+ if (window.eccube === undefined) {
+ window.eccube = {};
}
-}
-
-//指定されたidの削除を行うページを実行する。
-function fnDeleteMember(id, pageno) {
- url = "./delete.php?id=" + id + "&pageno=" + pageno;
- if(window.confirm('登録内容を削除しても宜しいでしょうか')){
- location.href = url;
- }
-}
-
-// ラジオボタンチェック状態を保存
-var lstsave = "";
-
-// ラジオボタンのチェック状態を取得する。
-function fnGetRadioChecked() {
- var max;
- var cnt;
- var names = "";
- var startname = "";
- var ret;
- max = document.form1.elements.length;
- lstsave = Array(max);
- for(cnt = 0; cnt < max; cnt++) {
- if(document.form1.elements[cnt].type == 'radio') {
- name = document.form1.elements[cnt].name;
- /* radioボタンは同じ名前が2回続けて検出されるので、
- 最初の名前の検出であるかどうかの判定 */
- // 1回目の検出
- if(startname != name) {
- startname = name;
- ret = document.form1.elements[cnt].checked;
- if(ret == true){
- // 稼働がチェックされている。
- lstsave[name] = 1;
- }
- // 2回目の検出
- } else {
- ret = document.form1.elements[cnt].checked;
- if(ret == true){
- // 非稼働がチェックされている。
- lstsave[name] = 0;
- }
- }
- }
- }
-}
-
-// 管理者メンバーページの切替
-function fnMemberPage(pageno) {
- location.href = "?pageno=" + pageno;
-}
-
-// ページナビで使用する
-function fnNaviSearchPage(pageno, mode) {
- document.form1['search_pageno'].value = pageno;
- document.form1['mode'].value = mode;
- document.form1.submit();
-}
-
-// ページナビで使用する(mode = search専用)
-function fnNaviSearchOnlyPage(pageno) {
- document.form1['search_pageno'].value = pageno;
- document.form1['mode'].value = 'search';
- document.form1.submit();
-}
-
-// ページナビで使用する(form2)
-function fnNaviSearchPage2(pageno) {
- document.form2['search_pageno'].value = pageno;
- document.form2['mode'].value = 'search';
- document.form2.submit();
-}
-
-// 値を代入して指定ページにsubmit
-function fnSetvalAndSubmit( fname, key, val ) {
- fm = document[fname];
- fm[key].value = val;
- fm.submit();
-}
-
-// 項目に入った値をクリアする。
-function fnClearText(name) {
- document.form1[name].value = "";
-}
-
-// カテゴリの追加
-function fnAddCat(cat_id) {
- if(window.confirm('カテゴリを登録しても宜しいでしょうか')){
- document.form1['mode'].value = 'edit';
- document.form1['cat_id'].value = cat_id;
- }
-}
-
-// カテゴリの編集
-function fnEditCat(parent_id, cat_id) {
- document.form1['mode'].value = 'pre_edit';
- document.form1['parent_id'].value = parent_id;
- document.form1['edit_cat_id'].value = cat_id;
- document.form1.submit();
-}
-
-// 選択カテゴリのチェック
-function fnCheckCat(obj) {
- val = obj[obj.selectedIndex].value;
- if (val == ""){
- alert ("親カテゴリは選択できません");
- obj.selectedIndex = 0;
- }
-}
-
-// 確認ページから登録ページへ戻る
-function fnReturnPage() {
- document.form1['mode'].value = 'return';
- document.form1.submit();
-}
-
-// 規格分類登録へ移動
-function fnClassCatPage(class_id) {
- location.href = "./classcategory.php?class_id=" + class_id;
-}
-
-function fnListCheck(list) {
- len = list.length;
- for(cnt = 0; cnt < len; cnt++) {
- document.form1[list[cnt]].checked = true;
- }
-}
-
-function fnAllCheck(input, selector) {
- if ($(input).attr('checked')) {
- $(selector).attr('checked', true);
- } else {
- $(selector).attr('checked', false);
- }
-}
-
-//指定されたidの削除を行うページを実行する。
-function fnDelete(url) {
- if(window.confirm('登録内容を削除しても宜しいでしょうか')){
- location.href = url;
+
+ var eccube = window.eccube;
+
+ //指定されたidの削除を行うページを実行する。
+ eccube.deleteMember = function(id, pageno) {
+ var url = "./delete.php?id=" + id + "&pageno=" + pageno;
+ if(window.confirm('登録内容を削除しても宜しいでしょうか')){
+ location.href = url;
+ }
+ };
+
+ // ラジオボタンチェック状態を保存
+ eccube.checkedRadios = "";
+
+ // ラジオボタンのチェック状態を取得する。
+ eccube.getRadioChecked = function() {
+ var max;
+ var cnt;
+ var startname = "";
+ var ret;
+ var name;
+ max = document["form1"].elements.length;
+ eccube.checkedRadios = [max];
+ for(cnt = 0; cnt < max; cnt++) {
+ if(document["form1"].elements[cnt].type === 'radio') {
+ name = document["form1"].elements[cnt].name;
+ /* radioボタンは同じ名前が2回続けて検出されるので、
+ 最初の名前の検出であるかどうかの判定 */
+ // 1回目の検出
+ if(startname !== name) {
+ startname = name;
+ ret = document["form1"].elements[cnt].checked;
+ if(ret === true){
+ // 稼働がチェックされている。
+ eccube.checkedRadios[name] = 1;
+ }
+ // 2回目の検出
+ } else {
+ ret = document["form1"].elements[cnt].checked;
+ if(ret === true){
+ // 非稼働がチェックされている。
+ eccube.checkedRadios[name] = 0;
+ }
+ }
+ }
+ }
+ };
+
+ // 管理者メンバーページの切替
+ eccube.moveMemberPage = function(pageno) {
+ location.href = "?pageno=" + pageno;
+ };
+
+ // ページナビで使用する
+ eccube.moveNaviPage = function(pageno, mode, form) {
+ if (form === undefined) {
+ form = eccube.defaults.formId;
+ }
+ var formElement = $("form#" + form);
+ formElement.find("input[name='search_pageno']").val(pageno);
+ if (mode !== undefined) {
+ formElement.find("input[name='mode']").val(mode);
+ }
+ formElement.submit();
+ };
+
+ // ページナビで使用する(mode = search専用)
+ eccube.moveSearchPage = function(pageno) {
+ eccube.moveNaviPage(pageno, "search");
+ };
+
+ // ページナビで使用する(form2)
+ eccube.moveSecondSearchPage = function(pageno) {
+ eccube.moveNaviPage(pageno, "search", "form2");
+ };
+
+ // 項目に入った値をクリアする。
+ eccube.clearValue = function(name) {
+ document["form1"][name].value = "";
+ };
+
+ // 規格分類登録へ移動
+ eccube.moveClassCatPage = function(class_id) {
+ location.href = "./classcategory.php?class_id=" + class_id;
+ };
+
+ eccube.checkAllBox = function(input, selector) {
+ if ($(input).attr('checked')) {
+ $(selector).attr('checked', true);
+ } else {
+ $(selector).attr('checked', false);
+ }
+ };
+
+ //指定されたidの削除を行うページを実行する。
+ eccube.moveDeleteUrl = function(url) {
+ if(window.confirm('登録内容を削除しても宜しいでしょうか')){
+ location.href = url;
+ }
return false;
- }
-}
-
-//配送料金を自動入力
-function fnSetDelivFee(max) {
- for(cnt = 1; cnt <= max; cnt++) {
- name = "fee" + cnt;
- document.form1[name].value = document.form1['fee_all'].value;
- }
-}
-
-// 在庫数制限判定
-function fnCheckStockLimit(icolor) {
- if(document.form1['stock_unlimited']) {
- list = new Array(
- 'stock'
- );
- if(document.form1['stock_unlimited'].checked) {
- eccube.changeDisabled(list, icolor);
- document.form1['stock'].value = "";
+ };
+
+ //配送料金を自動入力
+ eccube.setDelivFee = function(max) {
+ var name;
+ for(var cnt = 1; cnt <= max; cnt++) {
+ name = "fee" + cnt;
+ document["form1"][name].value = document["form1"]['fee_all'].value;
+ }
+ };
+
+ // 在庫数制限判定
+ eccube.checkStockLimit = function(icolor) {
+ if(document["form1"]['stock_unlimited']) {
+ var list = ['stock'];
+ if(document["form1"]['stock_unlimited'].checked) {
+ eccube.changeDisabled(list, icolor);
+ document["form1"]['stock'].value = "";
+ } else {
+ eccube.changeDisabled(list, '');
+ }
+ }
+ };
+
+ // 確認メッセージ
+ eccube.doConfirm = function() {
+ return window.confirm('この内容で登録しても宜しいでしょうか');
+ };
+
+ // フォームに代入してからサブミットする。
+ eccube.insertValueAndSubmit = function(fm, ele, val, msg){
+ var ret;
+ if (msg !== undefined){
+ ret = window.confirm(msg);
} else {
- eccube.changeDisabled(list, '');
- }
- }
-}
-
-// Form指定のSubmit
-function fnFormSubmit(form) {
- document.forms[form].submit();
-}
-
-// 確認メッセージ
-function fnConfirm() {
- if(window.confirm('この内容で登録しても宜しいでしょうか')){
- return true;
- }
- return false;
-}
-
-//削除確認メッセージ
-function fnDeleteConfirm() {
- if(window.confirm('削除しても宜しいでしょうか')){
- return true;
- }
- return false;
-}
-
-//メルマガ形式変更確認メッセージ
-function fnmerumagaupdateConfirm() {
- if(window.confirm("既に登録されているメールアドレスです。\nメルマガの種類が変更されます。宜しいですか?")){
- return true;
- }
- return false;
-}
-
-// フォームに代入してからサブミットする。
-function fnInsertValAndSubmit( fm, ele, val, msg ){
- if ( msg ){
- ret = window.confirm(msg);
- } else {
- ret = true;
- }
- if( ret ){
- fm[ele].value = val;
- fm.submit();
+ ret = true;
+ }
+ if(ret){
+ fm[ele].value = val;
+ fm.submit();
+ return false;
+ }
return false;
- }
- return false;
-}
-
-// 自分以外の要素を有効・無効にする
-function fnSetDisabled ( f_name, e_name, flag ) {
- fm = document[f_name];
-
- // 必須項目のチェック
- for(cnt = 0; cnt < fm.elements.length; cnt++) {
- if( fm[cnt].name != e_name && fm[cnt].name != 'subm' && fm[cnt].name != 'mode') {
- fm[cnt].disabled = flag;
- if ( flag == true ){
- fm[cnt].style.backgroundColor = "#cccccc";
- } else {
- fm[cnt].style.backgroundColor = "#ffffff";
- }
- }
- }
-}
-
-//リストボックス内の項目を移動する
-function fnMoveCat(sel1, sel2, mode_name) {
- var fm = document.form1;
- for(i = 0; i < fm[sel1].length; i++) {
- if(fm[sel1].options[i].selected) {
- if(fm[sel2].value != "") {
- fm[sel2].value += "-" + fm[sel1].options[i].value;
- } else {
- fm[sel2].value = fm[sel1].options[i].value;
- }
- }
- }
- fm["mode"].value = mode_name;
- fm.submit();
-}
-
-//リストボックス内の項目を削除する
-function fnDelListContents(sel1, sel2, mode_name) {
- fm = document.form1;
- for(j = 0; j < fm[sel1].length; j++) {
- if(fm[sel1].options[i].selected) {
- fm[sel2].value = fm[sel2].value.replace(fm[sel1].options[i].value, "");
- }
- }
-
- fm["mode"].value = mode_name;
- fm.submit();
-}
-
-// タグの表示非表示切り替え
-function fnDispChange(disp_id, inner_id, disp_flg){
- disp_state = document.getElementById(disp_id).style.display;
-
- if (disp_state == "") {
- document.form1[disp_flg].value="none";
- document.getElementById(disp_id).style.display="none";
- document.getElementById(inner_id).innerHTML = ' << 表示 ';
- }else{
- document.form1[disp_flg].value="";
- document.getElementById(disp_id).style.display="";
- document.getElementById(inner_id).innerHTML = ' >> 非表示 ';
- }
-}
-
-// ページ読み込み時の処理
-$(function(){
-// ヘッダナビゲーション
- $("#navi li").hover(
- function(){
- $(this).addClass("sfhover");
- },
- function(){
- $(this).removeClass("sfhover");
- }
- );
-});
-//制限数判定
-function fnCheckLimit(elem1, elem2, icolor) {
- if(document.form1[elem2]) {
- list = new Array(
- elem1
- );
- if(document.form1[elem2].checked) {
- eccube.changeDisabled(list, icolor);
- document.form1[elem1].value = "";
+ };
+
+ //制限数判定
+ eccube.checkLimit = function(elem1, elem2, icolor) {
+ if(document["form1"][elem2]) {
+ var list = [elem1];
+ if(document["form1"][elem2].checked) {
+ eccube.changeDisabled(list, icolor);
+ document["form1"][elem1].value = "";
+ } else {
+ eccube.changeDisabled(list, '');
+ }
+ }
+ };
+
+ /**
+ * ファイル管理
+ */
+ eccube.fileManager = {
+ tree:"", // 生成HTML格納
+ arrTreeStatus:[], // ツリー状態保持
+ old_select_id:'', // 前回選択していたファイル
+ selectFileHidden:"", // 選択したファイルのhidden名
+ treeStatusHidden:"", // ツリー状態保存用のhidden名
+ modeHidden:"" // modeセットhidden名
+ };
+
+ // ツリー表示
+ eccube.fileManager.viewFileTree = function(view_id, arrTree, openFolder, selectHidden, treeHidden, mode) {
+ eccube.fileManager.selectFileHidden = selectHidden;
+ eccube.fileManager.treeStatusHidden = treeHidden;
+ eccube.fileManager.modeHidden = mode;
+
+ var id, level, old_id, old_level, tmp_level, rank_img, display, arrFileSplit, file_name, folder_img;
+
+ for(var i = 0; i < arrTree.length; i++) {
+ id = arrTree[i][0];
+ level = arrTree[i][3];
+
+ if(i === 0) {
+ old_id = "0";
+ old_level = 0;
+ } else {
+ old_id = arrTree[i-1][0];
+ old_level = arrTree[i-1][3];
+ }
+
+ // 階層上へ戻る
+ if(level <= (old_level - 1)) {
+ tmp_level = old_level - level;
+ for(var up_roop = 0; up_roop <= tmp_level; up_roop++) {
+ eccube.fileManager.tree += '';
+ }
+ }
+
+ // 同一階層で次のフォルダへ
+ if(id !== old_id && level === old_level) {
+ eccube.fileManager.tree += '';
+ }
+
+ // 階層の分だけスペースを入れる
+ for(var space_cnt = 0; space_cnt < arrTree[i][3]; space_cnt++) {
+ eccube.fileManager.tree += " ";
+ }
+
+ // 階層画像の表示・非表示処理
+ if(arrTree[i][4]) {
+ if(arrTree[i][1] === '_parent') {
+ rank_img = eccube.fileManager["IMG_MINUS"];
+ } else {
+ rank_img = eccube.fileManager["IMG_NORMAL"];
+ }
+ // 開き状態を保持
+ eccube.fileManager.arrTreeStatus.push(arrTree[i][2]);
+ display = 'block';
+ } else {
+ if(arrTree[i][1] === '_parent') {
+ rank_img = eccube.fileManager["IMG_PLUS"];
+ } else {
+ rank_img = eccube.fileManager["IMG_NORMAL"];
+ }
+ display = 'none';
+ }
+
+ arrFileSplit = arrTree[i][2].split("/");
+ file_name = arrFileSplit[arrFileSplit.length-1];
+
+ // フォルダの画像を選択
+ if(arrTree[i][2] === openFolder) {
+ folder_img = eccube.fileManager["IMG_FOLDER_OPEN"];
+ file_name = "" + file_name + "";
+ } else {
+ folder_img = eccube.fileManager["IMG_FOLDER_CLOSE"];
+ }
+
+ // 階層画像に子供がいたらオンクリック処理をつける
+ if(rank_img !== eccube.fileManager["IMG_NORMAL"]) {
+ eccube.fileManager.tree += '';
+ } else {
+ eccube.fileManager.tree += '';
+ }
+ eccube.fileManager.tree += ' '+ file_name +'
';
+ eccube.fileManager.tree += '