/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	アサイン更新処理　アサインメニュー作成処理Actionクラス
//
//		変更履歴
//			2005.02.16  新規作成  氏名 石崎賢太郎
//
//	機能
//
//	アサインメニュー作成処理Actionクラスです。
//
/////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.xmf.actions.xmo.Assignments;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jp.co.ntt.lms.xmo.util.MailUsable;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * アサインメニュー作成処理Actionクラスです。
 * 
 * @author Kentaro Ishizaki (UNITEC)
 * @version 1.0
 */
public class AssignmentsGetMenuAction extends Action
{
	/**
	 * strutsフレームワークから呼ばれるメソッドです。
	 * 
	 * @param mapping マッピングオブジェクト。
	 * @param form アクションフォームオブジェクト。
	 * @param request リクエストオブジェクト。
	 * @param response レスポンスオブジェクト。
	 * @return ActionForward アクションフォワードオブジェクト。
	 * @throws Exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
	{
		////////////////////////////////////////////////////////////////
		// パラメータ取得
		// 	・SelectID			選択ID	必須
		////////////////////////////////////////////////////////////////
		String strSelectID = request.getParameter( "SelectID" ); // tree_view_type
		if( strSelectID != null ) {
			// 初期メニューをURLエンコードします
			strSelectID = java.net.URLEncoder.encode( new String( strSelectID.getBytes( "8859_1" ), "Windows-31J" ), "UTF-8" );
		}else{
			request.setAttribute("strMenu", "ERR");
			return mapping.findForward("success");
		}

		///////////////////////////////////////////
		// セッション変数の取得
		// ・loginId		ログインID	必須
		///////////////////////////////////////////
		String strLoginID = (String)request.getSession().getAttribute("userId");

		///////////////////////////////////////////
		// セッション変数のチェック
		///////////////////////////////////////////
		if( strLoginID == null ) {
			request.setAttribute("strMenu", "ERR");
			return mapping.findForward("success");
		}

		try {
			// メール権限を取得します。
			MailUsable objMailUsable = new MailUsable();

			// Assignmentsメニューリストを組み立てます
			StringBuffer sbMenu = new StringBuffer();
			
			String strRoleMail = null;
			if(MailUsable.isUsable(strLoginID, strSelectID)){
				strRoleMail = "true";
			}else{
				strRoleMail = "false";
			}

			sbMenu.append("学習アサイン" + "$");
			sbMenu.append("javascript:parent.function_List.learn_assign()" + "$");
			sbMenu.append("Function" + ";");
			sbMenu.append("管理アサイン" + "$");
			sbMenu.append("javascript:parent.function_List.manage_assign()" + "$");
			sbMenu.append("Function" + ";");
			sbMenu.append("学習・管理アサイン" + "$");
			sbMenu.append("javascript:parent.function_List.learnmanage_assign()" + "$");
			sbMenu.append("Function" + ";");
			sbMenu.append("カスタムアサイン" + "$");
			sbMenu.append("javascript:parent.function_List.custom_assign(0)" + "$");
			sbMenu.append("Function" + ";");

			if(strRoleMail.equals("true")){
				sbMenu.append("学習アサイン(メール送信)" + "$");
				sbMenu.append("javascript:parent.function_List.learn_assign_mail()" + "$");
				sbMenu.append("Function" + ";");
				sbMenu.append("管理アサイン(メール送信)" + "$");
				sbMenu.append("javascript:parent.function_List.manage_assign_mail()" + "$");
				sbMenu.append("Function" + ";");
				sbMenu.append("学習・管理アサイン(メール送信)" + "$");
				sbMenu.append("javascript:parent.function_List.learnmanage_assign_mail()" + "$");
				sbMenu.append("Function" + ";");
			}

			request.setAttribute("strMenu", sbMenu.toString());
			return mapping.findForward("success");
		}
		catch( Exception e ) {
			e.printStackTrace();
			request.setAttribute("strMenu", "ERR");
			return mapping.findForward("success");
		}
	}
}
