/// <summary> /// 버튼(메뉴권한추가) /// </summary> /// <param name="helper"></param> /// <param name="id"></param> /// <param name="text"></param> /// <param name="btnType"></param> /// <param name="size"></param> /// <param name="htmlAttributes"></param> /// <returns></returns> public static MvcHtmlString Semantic_Button2(this HtmlHelper helper, string id, string text, SemanticUIHelper.enButtonType btnType, SemanticUIHelper.Size size, object htmlAttributes = null, string buttonpageURL = null, string iconName = null) { var chkurl = "/" + helper.ViewContext.RouteData.Values["controller"].ToString().ToLower() + "/" + helper.ViewContext.RouteData.Values["action"].ToString().ToLower(); if (!string.IsNullOrEmpty(buttonpageURL)) { chkurl = buttonpageURL; } LOGIN_WEBMENU data = SessionHelper.LoginInfo.WebMemu.Where(w => w.MENU_URL.ToLower().Contains(chkurl)).FirstOrDefault(); data = (data == null) ? new LOGIN_WEBMENU() { INSERT_AUTH = true, UPDATE_AUTH = true, EXCEL_AUTH = true, PRINT_AUTH = true } : data; /*자신의 메뉴에 없을 경우 버튼 비활성화*/ StringBuilder sbHtml = new StringBuilder(); sbHtml.Append(" <button "); //// Type가 지정 안되었을 경우 기본 설정 var arrType = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes).Where(w => w.Key.ToLower() == "type").ToList(); if (arrType.Count > 0) { sbHtml.Append(arrType[0].Key).Append("='").Append(arrType[0].Value).Append("'"); } else { sbHtml.Append("type='button'"); } sbHtml.Append(" class='ui "); var arrClass = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes).Where(w => w.Key.ToLower() == "class").ToList(); foreach (var cssData in arrClass) { sbHtml.Append(" ").Append(cssData.Value).Append(" "); } sbHtml.Append(" ").Append(btnType.ToString()).Append(" "); switch (btnType) { case SemanticUIHelper.enButtonType.Del: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.red.ToString()).Append(" "); break; case SemanticUIHelper.enButtonType.Cancel: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.orange.ToString()).Append(" "); break; case SemanticUIHelper.enButtonType.New: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.teal.ToString()).Append(" "); break; case SemanticUIHelper.enButtonType.Request: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.olive.ToString()).Append(" "); break; case SemanticUIHelper.enButtonType.Save: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.blue.ToString()).Append(" "); break; case SemanticUIHelper.enButtonType.Excel: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.green.ToString()).Append(" "); break; case SemanticUIHelper.enButtonType.ToList: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.grey.ToString()).Append(" "); sbHtml.Append(" "); break; case SemanticUIHelper.enButtonType.Check: sbHtml.Append(" check "); break; case SemanticUIHelper.enButtonType.Print: sbHtml.Append(" ").Append(SemanticUIHelper.enColor.brown.ToString()).Append(" "); break; default: break; } switch (btnType) { case SemanticUIHelper.enButtonType.New: if (!data.INSERT_AUTH) { sbHtml.Append(" hide "); } else if (SessionHelper.LoginInfo.EDIT_MODE == enEditMode.READ) { sbHtml.Append(" hide "); } break; case SemanticUIHelper.enButtonType.Save: case SemanticUIHelper.enButtonType.Del: case SemanticUIHelper.enButtonType.Cancel: if (!data.UPDATE_AUTH) { sbHtml.Append(" hide "); } else if (SessionHelper.LoginInfo.EDIT_MODE == enEditMode.READ) { sbHtml.Append(" hide "); } break; case SemanticUIHelper.enButtonType.Excel: if (!data.EXCEL_AUTH) { sbHtml.Append(" hide "); } break; case SemanticUIHelper.enButtonType.Print: if (!data.PRINT_AUTH) { sbHtml.Append(" hide "); } break; default: break; } sbHtml.Append(size.ToString()).Append(" button' id='").Append(id).Append("' name='").Append(id).Append("'").Append(SemanticUIHelper.GetHtmlAttributeString(htmlAttributes)).Append("> ").Append("\n"); sbHtml.Append(text).Append("\n"); if (!string.IsNullOrEmpty(iconName)) { sbHtml.Append("<i class='").Append(iconName).Append("'></i>"); } sbHtml.Append(" </button>").Append("\n"); return(new MvcHtmlString(sbHtml.ToString().Trim())); }